PREME/G/MU598051

0214423631728763627700404891760691382889334976785653217502260649065157311131736516865792013278277683316679402923668038447953774086592823749798315613577535343852763762310441379871653734406147795657991664763803825738806851464621312324332384503596295609723557408355529590687495804216592086485658337338982029727242394496195290401663114204488458298343531051497704773754541158034138286773821418552893014280434175748538404482985603998200623989305180377636568985839280163756011349463198975908517178793742799701203199310973537566282922091718347924369654881235238749588317235637850060726099072116403406935423968362337678818034535635373175093557395371700889807111793168681544979089670102896401147333283402549180968125308266423004178802049026349185458048853047129852993074071440278675539864902975599075597381421068291505535886942572542235246471912570749911271374401303462816065568745382650458219500647805397974752182073361964928876914986182412976582276800330913449173163767425568438569943531687153412602701242882837280159361786448804060783117818827038333929070002673285130857489908931667316139608280376266062892458632076322259521306068104658727013900305087624224920622735980416033768093195203235579898982954750281819947689774921262139749244422399281372075996555545456633567193910150613663311697573842220829274286053733398854367787586049260838038817118967020318415886190692619290867239197342454723204530009679429465665753550972332727618150941206613436986724097322436686551001255408662333645243860692088105128283037936349254219363477210689943839273886176114777536769917118800987661353947237319939683755664152969050992415244191591890900023977498457540339993554490224197681064988280374773962843941327808750188560870600831739132353862284885992690009668016724040106331959003136204726687259229721232054473856440658513112879558390198642639887161106201318352649932854063654124679311178693277155530010535485162279449387978584766509688901841822083438869575964954164454251179826551284490889815061082834900256978869782093962091640471513335591964824825739010628976783630845325807568361187645791143025475494718723536389727957370808282523873891191918358977630586925054772362757821664964885121564176908060852263217321790171455070082224238408718875174111160844447453297296044532003753395249255292144956080751064160923057991084744096601510795403492207121807611597211408417210210648254040582366798980794475877995323105757844774162915584473965988517300618716912441581313280502677026123382427851289273843472959420281897845496064474126323290259278808604689928640081428311402136149669242167455214095016802793702702089169929538770645695752743644492527081532022657426410644948682701967060162679742030952953072714541175735233497493989299313871042157641214159833851254052095521852990546077940751721386490793766751360106202321790654615159778741399152990330552767230452270554310597143530956192363851747790146171892996794904621442421785765066131361274232181841594542431031845486775191088007121989602055350444283054554778727635239039785661997730829223571304293006410924890209305565599144487556620410460956144937456596480404205926935144787039602013859542320111129254450475270966439498900966516497146040454665827714812671340484378594466658175138984241261696462171659605355886434905980219331304704381730970610485085180592524690894389348256353489599860763747704788634841654241545784373252666247725362744366381605972954552042537612346754295249694289923065222475231779501418797203462613490601130583028040099459876312351074326615242684019992993282073841962261071490971256950762880603435038591710519300259826173221601229510841660282073523876648066098786349963056905683217351355197460683401321485020730440774680192365812132181950295246738262739559329212286780048994357738192093841745243817702006923680195814161170367806688676462060555696788742785001534188186776356133795200378021566733115886476470766637069922087666319293119175403464320955719413108690411856828844447116947163967259815577497001914605723652286471926217677376879220329786290485064652498610478988221986502493267632964281600643050631018825458490673699365828760734492187134534322206098965403691659989058268041897583759688979610597922412767964606444871884460263217793099807904578196970876071101632375235456353685164627952021641834744371541847839846056691566482226052060638632750794962671371675071210303352284651368912905561838491268294035926987471348159416785702051075137598020347091364988669216740382422071523908239555517544822116756234136888778379620465380429313670890709635247336678367123266572650310615946409761777374173889229232846460557368429752163791946332416318279137101765789318149711116629941545445834785019471213731853022045088594285046706288697946076253115764407713442896102035510326136736859565980049187968683321779387063019422903112361480239040598284365887909710615804318772789879360177759484928238983400381709113966114295548581511039213276908560857502662856196368321470149264438974369498838675329655181864595545652061227602713510177450823148026891375625508382046473458096758559545738615192207100805306913767646808986156138172926799717172866765318416406807694781066105382583724400256786447676779966502099976818113148732509987330645185355456646305202853495069896187565154917625436389280212224179647038733484715595933940087158221487714163920832421735757743462338840143567625796159211876289537120040822054788965610676470329743966021209574337668738561760136728537825839928420055257118697884410427383603392512993763586598100359749259441304247446464749159767899016530943868536938044497227823027751672931301909071445340441236841505449442068959127448589493777955192860874814292124453764597997607253123690416343690019634987747421553193008231434959892228314745597609944111627522112924174876823230624560881470221956247288851069964398124201102839774976132820321954250352820125960260440021178061515844535088030782096625844386082526921273320467062635940246819481931282309791720975926064163781715646469690787621605221353736106343594263622091072493629072365375919318011400537262863975048295198446813158321603830737964430039805707792641107099844808245663330089937559780820764173942584190630119309715477620874519017982647373264468079170692089488202427653580022171076059760083798032708522508096988094254653542509883872947010900828959236674514443997343369101827452207406865982200264718807599555377510182246661656941348099266142011587971385341615237651563239746421243953351869201070106664476164254495657627586049564050595060125854164465029633322943050624763957174471826992935982808140977319222854412274174434889866255030911125872458242072896422381778865050280969038164050755150406813341077810738143876644607447773839095194625513635812817495947796354621481516852939287190263329169137384070542335825258293913438922770325193811495967481246416402870669669246274934686484590019908534144220524432164701974695099498157424076436442076180400143758040363487336831002161782990597175974688698415294875836708661140974564909279578230669307140492375448219897468184824704700933084429186839874767542893438983673876572269732513300810975877502529579194493309958938433171752436630455642661442539595965306347664119186942119043113147360178605337112291453632509583662523287772964075810060090222229545544633873597743361266897942239850178418263228803659881941562436591649245244239585051576625185425967418617011366815170500998432294460850079564499663604911218982976385092077289982591359148646519757672539155840005521722953903939036891244324610079725605787957598178158030236379438121127167381332240656987282665936055587786877728189033972644682212378189172102205893422897643017394934948909732601568062676535021471176456484080758024935657358021296842493320727610966396276071133389419643707104165906354427179337465935270501627361705976503055815307928904958712335502535014298658808240506895213269783734149646513953355066076990881462850606083305013959990525695858833929278806155612371685312777110464488573194588728472860469951389391287681615380467519169205799219079002107913978176195019200486692601149879961865396860985033541848675155897736206010930569946293011641730033466209270218229586079205289781932360955677405654612078795428867643181461131661416439691686093440434982181463153110168984382016859612412284932241819909554989704958939117454908061766831869187970822162992880027344680263592997305762004897555229550936216754065799602612974924625874836580857544069477148419195559192427483700397051854634180372878084610773797928682953396348258246883848872161593300419890839193246459359505324156143667140508815317549601987497206480914035109357951327172527913125824989580566244992491702777648013172182630026596550318057521762522926442430859508747045553381814807428165266125194498791804732308648294939132638751730013631177616393460940736394261204225688941437033834943442262312255223861458187763805465481753210626022679471785909063251954184054753492134942985728005953932834490702701729658168914743758176697340364470599210407249993877145741092986539881559727755009796444408020276684096057689258990775521819030005460701035579404647303934673134699400225843708277269680357199890328418015263185727486579955753851063523934262804435664936108248629730325049540271438259177518529326405389323142854666654825114707130922648315986328260533502504091176237287853758533776070769895525151070910231711078689540858856559372304500741237914695021079881263031362567303571479794674856952984368179695565001819617595267475412031085409206327870782823859314159421515919771705559751052593488598197789447351563113384581985631355131355088555103672843840627812549329788783478608715938778995825951651806367571577077328348250442809976296306594400985881008992694185819463308119425978920233654680829870835614997797622096514497165513229800441648090100726083672024225010284178706691262176248939955576768755181304975968504709006637042465736648175070103235734822327075592510872905182271986248448060642527844931270806530830669600549454406655408407283016268530369906815968891010235889562384610247429443301261500469538926939239129135614776572159020769325895452316464964215551662985608764333875731936763367186474192014267276849708159529255863512943829153432180215743082701763023107263539033742114202765457397355697079313442372060996485356160854783584408494973348037420677370969551230416929916650006904141452645331908899586784306393452372044409456966663802483508159031965842854135370955318414061683403169633523490334634392448172468141221179157635748640486138760143969336735070107747643904426723031433581776579707688656008260595451209319508997747253931431050076238985030508532661191119819689279623844742806500702115210854256264880231762960721855723852807355607639447034242888676285830759337959641429179156444905753395690237865189859414205456153419782862211700391536929874329707980840176460866515339880288205974536092740518896268638412673976507383495818779992853890315141109460724832400145312355732102528809791785173170556235195384589892009782591382542957192046225351295099496626487347488037737876813221671344592715148293283252222674933423419729968261614318568122704538777959013944778131149424691176276405908790287400666605385470521470572833742678888616934686624117007350140256483408753692733133467261091666022300869194640346963996975076272982529738212007463485696273680711438110070746698563660718990518268392557830964669859883161090871057326343026599124099418221585914738200076124349399283987287047513635109377779209275119060484094534350400745644384940954097785499526061694739646226287713213800926968762588949087868986635962064359471374225516799161050614483402370338071529181817371240667878139842985146652167283808732784963011606620488448758610796225511291218534993647086415788654857778316307827697925549849383852690927608943945074922762545832524835190262075468762822023348727541288998348016735658216710987041760352171130535484179612599299683649779793601487678730632838034738675135094580405802496736789055951178991403581722398372757426156526397552572263212059436108765699078996402984923841589608440289332094332297088958083980099605659548901580437074211753994503777328024675299549802946480497077379330526805715129949443501106116067627143805979945822369971901771099722112829637160951695498771244218926295284554945566677519753871664438304163177513296741001281045270068308256139798078423907047156207586194841974417988900329731577443901788133425860411238043473012322851496462899863505783550478203565102438618072415969511759207466835063762360625097907695689141919621939001041479495296430340150377487128021857647390479992175177918512001846316620851663429491251803385260360987419522248355879126077570188301832049466625107949541431215049980167336323021263096499793842819246720854092421719632751456051922311181731029506176696596587563691568365903811404215715986586718141843162698034717872218022844372371867694257658161606012985612916318802150460765557274498277357149593519102524573215746436427715952116173599258357339444851003465414075023866888169073767069952573778237476394276628641887733388784150295732939669324716611981814878741175724221399824883228767752995687837634640971225503107245002058176178135719070577819161216277972354952659237866586071086169308484794893117110265421126148820118685433730035843712583399391373709637247125860497992171263425076346346947296548578452816851553407612461059368754440329877691488005123684711428497887240113733520207953262940617978966379418710711175583735240840432566124298296673662437055699026970499295978000300835017285088769654096470268743300100610742269585384028727260859511876421703403506761440026683587003412309648542590162268974702578074067090563400444990455651491520700108611717409651555520166617407824825849898928648893654409904313872585618741178282655537502792119529884902141219777650715984586927728095233346095403082771799553866929559336348165855887318661281228201640797143758720796734775439209395481529986365452211474354992035415517110072610062025925613080658373388550891365548746169141293516019912097630931887378689101605676352384303861945342989974625176248190199408959194118194107038335532580846718552413599102188186158743333406891192680783806099837317950424193896822512234654759285837982744852305764772061080350604419467114693985211620615711359636520962626936972465116404048918496539048679094467813155939503109463376419654471926489689396655368939224052607190770766871353861634807885042119519564602688572518104450789578651169722412045756609339169213980417496563039160536491427213383534228694546500654840075852056791409067653053460375471488706358443146800349324109307063018282186274744352548239064154672828759093815123293799045391415296535605688920453571160177183109590155752304937009806236201196107241512475935955596428645257291204560513184932560519767790934724003333229134256105237159247359459382248044522546813528993453458053268615255148651040783087500319733991099597092599460873498718258454351638745695155712448289185246932703093358044594575891327869979426733563703310501145451597380210000190164486341347058584805137168489913513933540715340070557299307044572333762154460460095223547229304762964153925645033355669277972136327392438988181618912071432292871106477811918767841822028332629668474992731727037906439983185980298501324531353410058180817162261628331327562889264516398131265666470283874956166131986180176855325586037990297473099236951006232904588911492374061877604706346649712385333886265187142397003542233990593103450202297577094210559006392820378200825046268702926918928511360918370455549612683941040771057105148906272394444039513504431063115700747992319216932352061796469661773396115701837275723134320891580632479911217396904906779881574480686454196332175832600778785352705289470524921491720814341368279652541385108058929216721953038926597911036095099686680134831282951630521688549780745763216633222936324973359499258721145335800464091498281575913680802711561766532760588250207145045523295067213060027251530504401942974022610868183007309309914432827148821875169013705603312417853145569711529890091185548469695684881771142482899307170083672309238054432515997306861860057342453762608429283076811082963686918573573957919474448876535165792190762742690262369806393632683636218402613434420431198691675925339590382611501364781678921201320225618605905084423950971330239079483306786794759411156355115019406111369782759192483137578714032924464956030751644434805455063541524403500936237442969477027064012173215724113771265742647357533995598110274345619292828698083158241296846829085989084897767820640500072693959827268802507130799079719117380129898196351385572352596600059743324363504685194483425030465316237397355085194007576232846494767795402119545682054346459153342863391365972078142685331731058225152326467448237923353359820892613798697528076164023774624040760471199569211722700908181125596699121632404424645683936073889779416856383148366139693162954947445260970275877538563901238395210159756576109751567303418854237173686726493740749860894132557140813052322921211127127510909641162199066002871923884575166988231646700233504683172107071374555641577359693254361592453552522672425152484390905160561400147354454683076884189203078103542161962617672140255199048949217513010618468556665691917640846346682874838451148155988668965928852962007743236618120810763029494914355198507375955976243545451682000912721891229461951182080723999816988591495518073663193569362285266512193008593903737386915570921602421203752228440579297117782776799580030156448796835171787703583961141930099367331383510822301352869367858204309169918322710827226318752224221511389251289864867475492626346508827819958977323029586287973122597113605897061945329097709638134816721215823721042030243698573879064885692978980991851731555840282788360291683052870707759555651465533750336770758134149253844931637362553987448192339354328597443676560481889761153351167879873090297365383422382389514261488399214071128323311318140394564761267409834697886638314734058719774809392728775405720330746531095442160804439812390729723960396130091812240924865871763340922438465935496086376818029823141264065038426803587799720977044018607011262669502947528234623550873798567436501079673889588253671132962616419367274961581522031719597887933176715087907390738917523380252311039810155298938224989190984810696195087586647477894984110707901512019117306983367699882399488374331338898661418895409253446366560753309478693599666131564529828805072213233011039552009146632019167472642087260790607482827477970035513349662043183620674276263737972659077552591989155538461647538837131700501296709971819376159205128133019667706062961197851047688277182849359910572694021351918775219582309314095641615865677725193669412512180195953757952855216193288123006690481276959294385832397685209794218247756751095279409919833483251689562272982697032874619226708956602719545255941915303575177154066108149749706447108352655510339444347447341955860827685896835407292980792587782654678409364791320387382431363341774340466835296191185833710141264922144062809319677671148319334027866534093974770659853838991858379742922900725380068471757662950561189553827947884743952293408240898794880779646699261791366099458897445956678045088966784298075708760076185466172495409906814853871053673584938955471940453706346619835760707107255836377437026140602661203324018840586875198056265473606685218217164425021293367541466182746608546980727830098498379823487412597849813052899343102151662683371492370567022627007864120286443258057081688414611497279599451100771010675317593437562074431092091477163603608342899584099738145687993561289887590433855567488265600372129450096090872251287048727266492383648740976223846133006904742392738206174583235131323065429522774383247362324459451057241365803759090790745396547507152619142079748989986129001375231193335783417752673307588382474260707492208918756202480859080916976818038189362600416614291950169646729408222170313108853752990969368441967541117597266403563589046036600262981551180843300859004483940736743304522267568025462295102426209114494307487588233531688601557662826566918239205052298008945311671672020196195829834633582594518657408973704127955279894279627971036972446521099703216102102509847329562435445047129318366243695951988940949876853893965691077845445987958691447588400541473942331748596919948703092059825855256778437224836317905359050916422170505994361050391646643452597645237854119602574613596642357510572731828745240172990406878800516223840493436161239757014453210792850535594827179915582502104058064664763623200406040459768222519803120399342997102068022831702523654426914128623205572076244994813727735319737511697396800376052556563070238681905419647637744845008690613205527182975390415852946059934710932598742193919969404611585928715174730516392341117900388981438051051025333461928868570612036842556047162198556574127075848713636862897467487577847897648710943727129585483941366650594460664227184983416467336313747309203410105350420057930046799561194225824347030671613402781465990715703809710055748539703435238556164398673757692973542896968255449134281745668784385296727142859921686745714189564233342759682860351919981332962837304111465113921833659566808238420747263260990085914187822501498037325870691311036476982458238407425130628655273628282695057143015554197117725122980009048378875514731422426990187569334961510058064428895088137812368595429420045984050143231187276072887764097810263933928183201862179973957825968867815824439664641591416739325129878197260243858815202606884228994560706222666649307167154403632920496231350715423412694300535152420148358843769557909762973262771019091346648040675127188770958308699720005778438195954357812818499502734169524599903586034862512249555688072124830741486074926429704655534320323257516750476171400361142952381825327114605671579022633719803328464114015980737249429288899018322949833957977783048057014147274829777090485616139287483673125996471779072200059633025906134219610108723517432721098908133423227064278969392608215414497982212261775284586009795170589688917695046303380761942373568674884416605947878568914560443362050929466296980724488636390955203072190271628565500435618000505966212845987802936561596276315129162466074281315850365958335194270803459740151707425886883066511334390603927051909506431092761379469754266279833339642582086676871270266943009217624764999011432179809540243511736686510317186007900792327330514159449863870615289969321518241825615520368204109850800215882575179122981714537937888895663352369487970559155231502351844526485474783580873061642041192219605454612234996597503240226203901208548247821199308160584637098926413102075733124844438660184783970622699687863072721192642937035341044301060360194528701343715772126114424579881185177141796182622280160349782052123711882885882017409484675560844455295667166646527698509672548667526548374653934545368511848310047261752170592681465598095863623988178754473584657569619868806068407919393574587969818071537814168143158043436721381870619149807699295402521255506771580026690864623401517556284395843478716648829159461096271566134987838834147306083167673944541978100998608594116989270749902826487146633858320043537979730103998027162394223872452098707773806772349468022943172854167570837640742475670603533985492026550262955688127716138842055997059481613860633590009393047344956427188801425516998097476587447466011273514007357661812668920674632061760077730832680186212009371520782578029311627607056075592556806626753722174144044545595351767147851877024855972973504806771461482143673628581284674521215867459983554267418377079672751461979134450388900120485810736474501289956530831508784742754722176839110783726463912380033799604022808260890122555275761835601904271548262526924537373820978527505828509314758216677319067643992058299113746367017697209720772775943176087320252552900233411374393446880636993561134137906616109970161968666961912699914207484031533519147830740992083319112189686664320604333203070033878999510605043700937002175155560600404758207160566823646441710498742586307929340800947451943722566706451019733034064638500481595638216341582096511897587751268612932882073935116717418530696598737780904403033084951684667212599437974624344180936093730547311572551246126813086454869581877214616222292816177866076541669474974288137987543393156369379968902427232140170228869228199499129503010751095897237608522463403731612635358774428052312652313667318456643307643877820709257221930922201227047987541967377560022419061803136380564548801440456309537340811240806431527599851859307820342959157201550108602833974689415411025131644713540709114066827466282822705577556361307178518403858109304698798164727819060046646467652251128116693566529895244186251544368223335677348425968537954560258538642806944382479290718227466526646796549654884945047440058471901542967143392162254716808402020906510507530881953142860334184216395129713470475771358896653605756398818270706704331666687209004232195382188064974828296949708279305046257430771328597364911244884870575033141158543205627809317373099396859511872774951369678323655523886256932554752707385889228830403167931837880271933838396363833505017892204049572343499899600282753034037036614004953982007062253908005229261762531410612931444732110564623713390997340599050759701471129553535790579788161608773053987209163974915582523016726562066341653486819992074745437390050221721839510919888326439439384760389645271505300314988682201900949414715290875777483775587089465366104469089156666017772836741183413813015165325538561146594847949604580113358481869736206286087014219882524517969732071052559910704007624392402880087073575497837734410808849706860430171648554747060170275015693462840509570806385773792693495425261830734528169168671138912927042264981489548398340335783752551377507576771303785689676178551505003900190734550541536229239719949500435092015816413228359172864960656122013137946826453153620105694644562997053151978380358253071752982826571149312196157548294968239388329786037967160545148667920687092229457194136218026623926814448288994565486544290068444428130932838891844160693065338715210687893222337048206415692505229529554006850605121615284778955574931144111616365535424592346120735925358550708146821361647421375795143098007038716487785184619645302977288457979609094094145727392363766053151754149690531153790855985448159810147270270446076928121140567884732432388266906467308924711665432849502951816002735062720797842585152557980781492273918837895609663696305708383628898796757097836166464034747761624655832584333656418565650320047947623444738918658743005356813791511933094218368465983266366220184862471569986899710354805935788310043387185245645390176132414658619625939896140727056646974998004827621855016006533275256596166118968588948207833158182555633631537019644174899190544358614062569962646148580254947510411550818628306212263671524492593156161915382452749817679085841699076101472630901467774993519361692589719142191297935380697232921414447267228961234720914482413646728129351094725499691405342966534186592674965040340542508733490426260069807181822601868088211546835961799795384352930346574285506326499802569732488073614768377941279631900447471518081356097509399135989151984860211753262219395861490735462258437771176993084822189020330424998278576873271369888897101139285888257717521075467577818599991794499713306982627376803269343266693409165442197193109429204530235667071431715781650408017287167548506042839101929419768606105840695121306143276514653805796251218462455835662831080754023808013911836577650107366319883725565597046316627207912250585965776450624587110411994511800043624898556596003162420575771091241318037263840599536063147836299150992765648512111749737358239592361213367811461415267328857493940886209246501571375150968263105329686298002520946863241802134049103588511116814533178550054722518224249627555762803358808914121635521539175508683892788417459860465211336396230749540155668589728546301916821941261775907444923774382109205912359189462064657013727383529839852475778195541653177999223834893308764142528807752355525897706892592146165419370113930477332445027381909276951944888152211221589994716153832161429091605454518463615927381345082622784139262442700694491548188186941814243225003688415700467452573800885154369245569594251433204731878022975104204876550786014768621291957105699904123596262829245451234867551091124464550182641796581663736880110112431743296968069819566730571819900033425922663220986846745802293519695409838090420550917139705489707014007144701948210412499144651236946266260852388229449714373063241331438308128081476778259952728611131262442031357639845360655324522035778918263882646658389529569518043286877322863591858477120291868639212278169547812438773633877965236830310303274499176352680840249791004251962940508940884873478670957208732396715619504982495485866321327526803611740646338816350805029539771642846047108076950285833350307930500922371214276082604569097597471912584921392688003385894119178881093981723103835109516815901343398673010158784096579595380159423760498950387008347168124173795633298130186629298539911039042469028893899062913237121574289709659354565313408886570497489294918143607862887833679480039136198952317790609225739384659097879501045050059283477486133964875639251759754232274674609474259128526373201691864928068829089373623264827748337655155433999310002587244375311603121874913206142624412942685601540687088293246269702428012572865456313674598442435312041652443860515001293123038050898663116251694869430319908381094692864214086417342275909376675342495842801131460476266319173795908528323943410308389871635519468308278518369402310882610376981122539199592583706280322417215956146508292203682792667860042774348804370550728388760338257136542865328977819382412484410831295840245141911851268989019993639596451570469376646475861969658460077984320194470948961903694812726904678209908405805590460902964159738580498517408776540872134546312737738710153823633484497490717100381278956337979846108453763796374349549509843452622826018794018919102817308820742176658044515521472869267597142972656391333602849609053117251893350854118690016542143970407912975407106930935251107245934933171606827519686287683753123926750771166108363345635886863587352468662269053650994709130077036003252034990614349786096803141744677349964341936017767834298851147390370669578037073209492225175522271002481811668159354525984511768410207492226208351940109095615831492148935629865243643145976172628402708764451252879705987914653889169733207042611663929618180002788302520827790240912199483446652576526677730171606632063401097913487594189739555121994169351610289115850057007934342656712666181649753700234284318456210125273530625246315444867471834067592756097990235207271705688489241492628658251909117279625811199547282157611159550218024968980681073426070022664767712142163402558670918870949143687585214159573038876988286167071941974430744006569922836771716328875868834031953625224517646535382002911816670793764490329203967218910042836221644476564525942138463890675008451557316589880329741745342922715878510147560083794267704191645552706058001288593888523310782705301423656126590728318713613670321479327505330414842360257503266806960392255142639416564621874327538281345838995216205581107305236929632509807658806886682024939652171318731145369308980956350883827457905014925456200818088387736532099347434980214681336179616371151725147967898044128901228268457232240314913994933007400491161309312501347048124585571768855951752057184188899076400311185988789690560755030953466310515026695857384497471428033061403763968596577216011081508145593401070867721062704009497696735405327891571238081776282123249385311585281090868091336743714919041034214534350327368143857400042108720323964276465805622312387872862745840087884778820864075085674941437466356844724321985930976365133694679003670101165043674235353801012956007142525221175371488361198515845826189207548794747771358575384009934029258477337512521155131585599422219366816171635762858423513947863854777456710750034143689081668587921726553211921386591932750905355327766339463797829507526053044402485166695268643987518505939375620064494479472918327792241589520667210207313125622160486552761190156329493308125976891482734663751558840989967468962284202416850243106257584793695165711577228926593846506150034582813175995612074308372190757383896773552691421901322022191091629254326903210781465648059619014529495250846492158826952365416881992399027815144317271675172890279689740781902738177456000805995447514934670075637260749921771704011283169371585312990053123628900495832021454864638838816661364743866937830010242752859941178832048936820695053442327217910125813713484641982487868734356222077360486330265764982798853452727513037924966190725544652363271010366681056522723726651363394184903197471741433051862262469972353145274803304228469367241049256257304786989816690994090263491285397064589506922930350890396831545091173517656178872463270123694946378226784814531092900715157068030694261868023710404768392690424778485071187417859589547650753516094906366680168490745781061198932111335858096677240586735683336069046896352989588827654164360070473112394704705710727454019046312556570631204577966946917214881103746226101046553486485230823410819920996928405008019879624643182125506350573800248995710124232124130201344243984830598346889578455361425854400740348893183512020805158805199860730451943237117688108519357058166332835896711448959203419641350173918898532946446648099497181710419183010270174355520324451411045020745055550691411978410223555420570556840596915006538769032546740308244897697262539498398984850833281378401154796279739654913343688918903142992518269599201774962838115949934348853120252717923595974697417948818289778177196937511346753454234362997461588295576704219333564907047739518917406247831741568232333996657317753330290275921555996986074441180724669416238143557244592222878508903689891750604461755619959801853645289940025627107079866431155401485936744429442353466789819801062439641879305270898331337858704926405723328513592328348383324215759377439417400978955519533582067589015671464445710640006273290015439695245484491342005046989001878987837567510342231506699946691928099841308763485837664809366281169331291945584262678117218972617845337833098241195703055889023417684633886617913713427324867685937271831788546959085579945781886003700335484533390002322734771389901062743723343742790627722462427412607523412873552501569932037815479155158840075580485113045071224425163938893900886029539068934433944332351994786915529682627305435248956786058002381397287578399243174302479266144338510950053515797090226984202859815059734729491838499597525177939004347452473946199030422624159065102163193423538319292163212661682266209249457578503294849340486748709563729640544117539562342221246082066394625778861029433942761541806710302028087681539859851199813207703336130996548568567885157239794461234959358917471123961191104501715986422615717865465078305778624315215422873175073902256736432358033148276743753428701804520862805997134693874771417150466864160870934318695308105072867161167037202134531025330145817527946895501787390105557009999234545488397608959569140749690226115761104662900697842629852818470219600890526262969101029948498807213013214822435650513061212245254031206341745200724971132995812764942106946719736763958167327794844151490966660068213183054758404609508142078171578197766272991093616850788853231372852449618729511987990885546247343675665290942021553033235952843386989498477974679193237540096578280992932353785705340892527979668329563431284841439732489618687213403232727825088328907758643955615343707090879666688357221311668261838644118591210285581174009480308265732362912216137370207341796707054954128042748753983735661222333227916532632877718009257833977573615820606956585478821447626318557401232300992194480440377618984426458533678393441908692789024126210755587154886966592074051626437473510753097249302464178413693810794442780620517280594548878212339096595993642003096880001407985788827549324089447627679569176497874910951384872680262299129648261830663100717006474284481077745869135724482444527009229228955559422949129853945812046560301687700155406771381102637765954148684367594409042322703347178239718428078471626392659741172421244396428523760923428591845691118458864281763346682886606317212546832136070521845173212610895418419865529087856769406620687426603493474243111253403867193458344681954635070285428336972254767443789377386206890248431539887194611413635812239488580438963834947454422543767692254097299613480360772956844582558712472151438465392340879865564916855418106348211462752395095712023417798308741082813326795970825967093631726451096538981697369796864845261774695597611728752111022954900065552331241963134238983515225116079250499308601978229774607286507567738009766082325495552961368505472780244436560931132843099695849450737545755556496357293736228626618343936213632279976813060282103229219434665279863464357077465195958020844466828548253104173347814262565229511911022090553602068770865958296562744128841059082163406809448319811515907381093468407278116761248737567643566983756008709410843437192211830897949271558065028236254913628495814251096622330869519062719091292702995093850920922432923279764365571747079794825192894027572725589327473587946836816800575702610354823970994770575993615264858853399107018250578568048211096456693415200403865347914623877714214935135582070828223590781817382239866319548885135902216505529616923268458253909192613825866550541539378647952675695835126114950900944178824488883597495398433231513972567919961483819982332115869091786561018629579029765449546634645466208841504368895062607188801185438210582124893917802605653385136800687730385613799965583614448539710516043524277857730618234817489011290381741037416659852195345587094528514934374898024210974614870933391056458511220702922145885648432242412083214618752116814093950206721788320815931720143492920445476563281102724227485128547999709623732898137292604895107480461902563894964830497212296351193377151132421999572710303129811294832526785966808771523306080292432954184285809932263719293734646923209086237477639990878605388755357212994523437581778654837522638490328091100978349266469479958079344060940793645466372113387912931145526661859923274658107186342636009076340476068144384097298107896745153040417334858734247507934493158994528128904225190503930685119099160049454167466196138302119884677250557953876862586651098185731641625084982847033263542220772290933896640206934657223131489667036897188159048286253275043172148778008949610774695936398352174110458471060504026942972825144128033433522788580581298239169743747706403699437526924585361084049458605124041278520653510732201710468451386571146509129383508256879465245504922002001295907676646036142452868616755607186693745484155634196512908854290553661939664623588977158331583980918513117105382773682534215205338984624894179414884642269762042581347397965717739903418194900574641678563847121324511304791023818542476495633714408288794156830390916151606939372444222063156469747231370078867051737709906414679065083817957855945174043390695407343859155430644766370201778488043152816983619211554905489528648308030836176045576216227597887399771677980837033686987227781902619094050840381067800254249981489134782606943488577430792455500243231617638911293702715478045137536871629103576081869645372080964485743752554673784419446843382973570567342187292968658700593631177041646952931514908379125537791110131110363606524203048793878987010834351676449270687469214692244918762960738182865767441614158983926139452941894500560510764266884129948484912710363967042227104399182896927069682577885065959859341028111966890026531057355398500057102616631184572183521044989735636148113419489173762514797096343576154024553240822055203438240848891803788966118059476421688568203310066119655048750663869403847108859150232190978816186733140603180242475612266293780733168757365454299745535832578571155562182873788184544336494444258354429472907537251045806267083655425963621371019359733015371995805287560570374500426123897641901795492747568140252091425048845077193563038240372198158649180852190791543299645196817297529604143518946867120509377244302039329089346720074866182172485737359910749933285353679326983894883430891621502221135716418311585519801710441299922015079744134402803787638939568895957853965006210910112409826849793702427467472598500363306693345922662381416990833800898052462511911359314054776262236767557010997371984910971000800788167332948543863191842718264602740229151724165563998727524189999818036227427779203272285545216028222218481082936780731085318889539649410449863625782833392831929475340266389772863800744103327443380134502437315857814205407724487023117977833243576997242842266192054833533005875002853861960315174354503005673897205746279042645367679231571616179583406546468101536723015114911859624780877331003310465425982802391976857787983274371127820585561637145438466216390756900054226663538622746905924768810094962207202637986103782766622964206054007107670470281029514405498144496949832623218087219923456494258801483629640137609469566439813347029183269509543442035833156812885304546515717007286785282036846837527652643195821534532695660954792572471764924608688338206436505498862369694704981173869843074022518345017402092399683374958764817035654815651962019202947579280946036627729554749308108844413322983172756113848128208231056879653723745721016386306562806291119120202442818362501963649396807484089279806297798197675807661600763046878512060554973166248878632614990177983184939289347495371885184229895684320635909573568290548126556272662709336429825919854927213536765676133426808943973446116102509207237608918046868951749665154267868932651784714003447971873174395901318679916033781291642338645567508928581311034489743238778930709491423032178520372768507354907383182151428128928285413255549587093995267297038956635584748459821962604546472813565361332969495238612494209185526129084789080647763621475374156406191892526022111330773166335627540326919793742465861832270722692697986826073887965926233265910497785545826116261623001726970416547230469624931884852899063905497351379030379227929065153665848317064840639053339527612579125273893264350722246828378142505369307320818923128895547217663550994933080959814757482744329851283581333041315280144273808843089424402227111272880143848584854962587264306003178641098421090961381586743389317635079206896399849795016470674788729104247767451244145143106936051481083328138890494004694810636111793929672738336191466586449874394720625563766729168374725244778946073845012255719581309003359095868962005397565450943082587111869336512178368393816689046995985800451675127131241663660718502619207753574173991982181454928180587645658607252306053668958621636880578171685984645984729503143424586577359696775798278371079838789056379931107510868754076875216735301883591528103902973543089441220279315598721891195811620628128662433036406554922450007679625456807359556681870757237307063992174941986551801438111650693479088738810753577936020035299842789590771074138399879893350775298568455066840323192724981916935987063893162936716688210218799818151975706043662318181083758654980833632269670386813817183864499529963903917911675387681700258662817677215522388523214091319587202898435315699639335477020800779580961879884156229195752900782519593980429609849587704044860613456251649032521913678983107669091315966190322831413791959727278958257192127963579498856503412548634185051192664040302548121839778741898257462425712100321903828387137984545839473297087280937217369013718110287145674456730513732407321949112946349416928158939064967504432242868432486126160236265497504406311718766148428037618318387953783481717074717147334579613596600174859592250471201302651825430977623772504269664698931950776291522737372169467379617645338381676619922181912563336639874170317490507445817190442067568770088561331902436542844923981807932449096369175347887865124942827596168158122998473501913586877378245708760120420771580569493510897429259647268704511091498526201314392927401931049816062901955499647017050676083692440541601183349716594635125378911429958457780580477748126472201233453989770810877214632034094029403194543059502729127964485424515323021839363582456411426741539745389424352537632955617045558331613987459188154672590009591417627637951627911398092229333695490307218636282841426708109250714202550842958714386695566614769223456333087565969379352750409448129846646745860258543836183074677412866915222146033101382505963165682547764025186839210708231933353074230682715560428767379391785306380392909535356880333778392244485221998148806918951977217823564421130240812079980833516058732842534683798795890415434736057133632222884062886086428791446914500499383715138656797538616038093610512453360965541636290710252664811642974230895619347665644949714089428232325979205197334767309490758389282624551546478321168780170120782664318892149137567583157134815927051113856582967868100118975531601501935770692404003756724893850629145719063236019661726930516420909359228564559512118249508781798163882949890528589242364106806815596234969498271328057360986153675665283104016523134214081624177919091545850726784374690196592940634381826485680933454640126934050764502922791891919632251240435414956150091905303959759846418569829204795359973654802981201956209280871512333833169010416960640265324781974055474297519109704261158953201426543660210634212028769019920719310794433876704091015662292270895480231326190615713612943621024068254721878800254891196580780826560319821771950555194179363604166896024571587782184152598935253775197193470267035334697864156755317115317310412280599625393572416434907065206494728017682635362061227103697765306580155859582832475552395432299409929536576475633027196713634425257251979492138622256751957061342789995895474011245833359078559532484373188890495012792943161348010858048530043697428416253805772212704681530049073277648474196187577346532548201388032939498674856260523369178026660931382412158591595426534130600030379598914181494802107048450508590418634099475315213897746320757021018677519350444989787342196304350448681901001269853969552669897670407358222350306758135826710137268426084237719718523656739769394164826433845665985639797545586064299106100731703928538513188861353703697269982450615302046684797793864721862318311140496923143548286629031236912438663089538570105620870761683230329456248395112962149238568336013022501633697400809616592780643442146317480947531829813875596117313870378078302713920828808668247807689928566112510170833727788722634113407217486440907050298475363607584875553929974075811338011378546680456598739085642391588958773488775237568345829566535960708693784613211225905802561928535172597141037421094438751896378086129990046510930956085332246668630585565159819213561278262172903220610132769630735100356989569123775457064336227558779327277550942600726487107746207429188647241793476558931865031244493993984006220194070426939276607252101512650869680716458408686676402808577950511536329006087349124965409945193093842645609123250093617500839991361988784774663058698443888112615528271718635781316048707407181105020971133121252734887113235483990481710737138432865207303002206689326350582505635270455545913860781911110121539427756168160765442494306899666702265461676783512085147427080298715666324563864360233842317517222680807279663167433614732391368084200376145679038115391508445411974585979880965582183948916054787004331343987444459319502487551303103128041754349817831558195845355962771826508971378192643018963984536829547394178529862104237511037727920453450031168925839620916940654182281785133285499329712901649969275838994978983338577877735224063881685934093223506394221247942538550017270521717237550364245958134166665630042455256828144648746456402539383394017939057973771646779580926156368797317610579752277627236000026472739871680702586595280054100064872941856162862212695239392969902082371816664459135402057753604368840572291899006092676761029035766518487123389062734669930858536284610163477080285744454739787063257463902781777215207999113749248065377114182872219540178243894025920517170084161769125502003288247914494306213174029443128566625134143526133852244238798381369125672645440677872189333274419835857621346590020658819007653979444976539803534301342432873760573225714875099499683870888494382758357992356359362353934752935221170153554050337299196308044302919241111785833703597853573442352964262061357983879321267167987955537055113863082714933182267448031175479519427167084952034351808720400392406319658692445979480230628699452796505856787181926563953358490522316711276397215751167108101434283913568771381161192137795974118879623679558055686292430426152289267765159977080650285855344966760754634145211386200320371583855191426258096936390900602353538549926014943655586754680643472054569449304223887599607185556565065193983097801373410185330844402153709730898458799360829613068435951755059691379925902487549561076476996521544812669586269520939127105116277974139329590660321039660259741510971507353370566670590842943058688169121328205053595252000672366556975857936758512424172464219907352269577940947685488904517082809843153826950719057255617088870818529710019890034923484189530885194995063672333248721499241821777601008180305075654040107626686214316439601168272621324906318608662342593243442069749473961165492195564233093939447343853550152327442947930785553621920854969939528141771135844075763521476534409873643256142202078445534849493272980352569955834172918994127774168460908299311144887502649435443869103391874294598445890620748450184859719067504083246524979961590824954523227265669174111384708474459905048116109994147029086123321283800699440424082335052043044033879467456682492129457685808828656525324933750394521384918594779369920530201882085382247478768679741689732497024921290710214831517043380491559069726046905465630554652778210758171649625928432098816802922249794818081977958613208988626858102745421876285823967452656700250599988169928769287921706266577210362960418413649573038343447034993919670205773179785313743596856181459514931972558736310563833655853613708803312776838227660145910407988851262646950847056888471624787201143316721954420429424356795052236991256974047873372694299160662838493581990980019900535919079676145985224344561933353210072601426948068548192222275194002978755481923006576520653241351459571326800290910703199761435048390085124679471317118019961082040312928311440771964939717918306245987881657975786750169075561856739091360665213207708811769618884557524255479912003991455010060419864608955147582475227961619871567901542514020090862236415643347436172686534976058763892329942434566216868301884601580463333144044559892775133382938971502065935807887064287841050145234554452410560081266418783757084542270019817387933985738843951873951436966211728025578648962411630092893122793055307642992417549336818066889489106491333751393675987247234503679629379958483264528037981684109045257362718231876684741657115135071516526014292222765763991215402054893655673627835056857640695324590456952925365044138748814648765176373416530814348812549361784124301657045614285807605556144488432268483690198075469813764280441265639352713816213841538508012689255033538418493092162415983641881183598986576602918029725187043615537885154135445001748834356081857942979854434585763893884141017544280022496486250469455935758891259188455906522819438299111618075369100816795342257289346212188564554583604128343114872934250628943988274842436819635013064724517867217175888902251087949938811415017660999975890076695579505321963068666365650299503428994063333622707384861967930599355957606907560115474258413857876984159553204386120433598004893539540021199039658726948334107396349719819803409067899746725320448894664520615670502330247624642709866144202046680934816754039295143601989803236404113771350276670758222737084376618940383874942769571351364577264233003156590119371915547046369773454539504072647287169058689629702999161433576245775982131357834943975022647954359424446585865666113543248119276061962632941429250494610080878619320452823029135473625506989695325198770839413426608795132610297830546232221033773006070876528843373518404537485175203484860049763846995179974632459408488802887672345672707808002782848866156506516729145518284485257684962154368633067566219748306502727601965343800316091614534713137587113453606723064086824596093865795820492957460568186945801155334200347295928366235856719916432519929511918023651179689217276097515161604296936450657566351853518775395973003248486608058716556202317484736911241575660465969280547759579109271322951583936818920332077690935630506152601048205729330254698740625935184758134452102290468865753961934469171202575262461675328375901386564004169288660574395281286199927233889020173630540637988574948258751758584137487410788972341773987096618859701883321357491818406167894897062067236360336530104489949848822911370834527365346630727087385739865846887548561270064345108856084685058000749656667574065288142747520441779447568557093863353035113250918957271653230686800232516075711774192437455255221523387990399837251819062559798484767271099774306423279716637122741031439763933177480557248457356742379921826556668524510601069267784530812835077634007674835163054022212050058450222699664799981351711770018953995326709023575224279298726508575843168067882976188378477414952345992457319557643656888594148347510006274052623755198815341516520005390473909828751189849566843193640490971653130512072071717037677764874827965939555718530378725860350110690019609600133673037644887398365957959946208043305508766194141874876782234380341371761013016317202253310672707345620654342222446850996336551877704908688507610880902089383138208571734784926171907128414954100783011999353987667126472325849783064470611442564344877211934608020663717383033600834827217773675439906664647574846379241879899669579083554253568106614811394801004901678301112786831713505205585180436829274659014511241830381169359285037167649920219038682241402536413625369498109985795084489766405460684879960539457256719152269648106798084954302663963128477504352528466307436274496978375597254968499980210806806804868258535370940775024131477827230082999715123237660579673152411424743605759563118102600935306854902349052233841611364795709826849828930957722994814919286487659699011464650901453377124142115861274074555600573055476831694768045472786504554629969581869686683402298090734694471669968055249481080395404378966393479224132672360869125870333808273588469214848218044643188483864756177562445989942613435752996833862332900793545485985693026088237724157024237280627388568425906135501713903632108888980279297237410921171991084124128358133189345639916907390621112296639779935170780170097496567358940825077694615681920576461928650378242434131371150034953389006412708858232178569007679523244227820543054238922384440483718182675275141739792337387889047194215811178845816644175077770591977028756564140397526463273509608287394026646052987868196995669618156493873534773574874759861577529135372087755031461720488203359760165231935957716829890016090331253031183523234251164528037279558808188610904925332611463099301933527034059027549213268197191677076748386181409340188394505706468964622499833038685028216278183044872135681298900457716542796743253014338614864634804195076008924972733409347638438288228515956853065188860473266301319048481709699534048577504820086776143368022453289856036082159422946345214990911764825685056243978185132645647155356252846779230345607481050685316182661476745538731113656987861153621001958882326146916945207841345767780938167798361187431979724719146713939224322129922707765646019410040277636517505148313125590884531081575599088504886804845772175868515303173445411076369768219634745960095355670995014519457567670472784161539801602570100105260865093800423015536613021995792833360045700218458011843327518320327855137406271470513078020398668820204096216176870768588509231364752939446070284159670813549768445754184150151170689783608983563748232244663610052560188915665602493206496014919646627456676165533002677405235199307578546982084943390924070378648462375004456190100623984841547896857976715563246655012237827159046301690949858639074899675514732840143477379630882387478119661139990285896458874072080385157169472512246748491635621002865326136388457759651181915833806159459347682278794528889054394054568491708694729839565901463320404316728769520539335716396977240916749228338890845361038889458832827629707019895153452715844285358865519756293383570825921388587341501893572703567494768927569828488639602394651250694538149984058749803544487635683866805952056027165841162980063001712991330335258941087948177373544714223178911368722938456930961263823994432517553019236108051568902499849838145042200975481063412587860135273850956860768909701669300734148709628623832938437294727507352992246241652720960382697695467305781531865030223489930165674891740734229852491988569351498063208191855708918642005571120220023740239005281021864086764974188961484774188029377707031595538892213163070575905172001965115335018204054535273705049515663250429154912409181592980067127120628828827968803247023083850621433619888273197992590206799892386722750227657688137155269142711814768070932599496924483477536766015752886502715428080876883748033770151013149948484908731251576411177098986596172940525656150368810294983977308479830456164869410807633568213533914484331745934027344229383465205432981509865229973260899135115144828762397824164508310011136051643330635573070943019122349103056292375462690376489308705771048144246666796642490634807838591474073764841092701387848785339794782170145443440144601370796372819302591455732026180316824098594580171962661825001593194914182586626868765991095826134028365831844945510706966268786038124901779058087658980465011649314603223240056984814957029443466674399531282520484244543335316693415726217406016203854879181157864858291427749556333967070510344684287196548200648447247792959984933721333222583013994175452620499479148129250316834760516042656128567254049247508646919986730760846066745326416005707705937139840189488904754355166133045373607506136785583016565498885075362440915055480357139509057563091252821477971453689179567731313670841397064340488745157532169766744687966430083181198932701836061047025136387624440807963823042126579093813756401898788021534817292512277139416438279467072089002015236504720540324416970152901838059236040256890336667479397324900410128527165258463356738446832110583485506364261880804590842396296290754764952691337471765489821828609500009018029586944818066778363714183605066974764789933914039659130581888983361920564249732710773216729848537763581152594549582864963039464119089489862665022843857282154725256274695580183506298669738860414184047370780620627741809805589767672622454560742300930926185109637790475582064188182311654344714073252543539858325486459809452860193550454983076394490659671917550484808948036289388438001618592888287162483691277117982588995447921597435955039835803758741847666234107250631349658930647343491054765989867780399918253011758435215255401246872045519187515647303824911294897053952682446158284035255021391713605909345924662871714848384866167016518290597869491373996599202184130779674599825244521754993115470379337157478119002356659501191137497091267486595586650134069839000491813798088873911656554807818730799910211686446256614589951824532072986335941953160823613056049865128776909883420179455700577694708838723965619655903931786632757541558474781840512002983605452985997214330962794793483735859866868097342410625116525859584393968859439779884704636898510718927201777955032324811520406559625563510530169743544686087861879355346598442885121106669047373552229698877934551252590258074805975019988140146731744533123030477805419407742344601791719977909259933472922386612549405619156273639707949606901214856742108932065894171934532385170486784841768487127885124565575187882913802890864661729999265514384778301802365282405420590008661208971143099880076006944790038332446203951025154547166843359360225286672662613237519583163785328295754702868315762447017094941800880906682320061487342145781046632774804777577724663089864639909715176941212785966135779295148660856871495197527272944574208507317467634519523264873270628478471651747804942992410727460581068345739159952465107567821028774120805779838367161883617571028272278783320041548485662414923273637604921867951684660895582289814562199452109884999560818401834310646811671324245108366392408575541689176481853815217753917594146420369811609619327889309372608711802989716183685983934120624931382495312669244360191178838885438684149217108377887230892950907807776984709865033167129142860694625079249601617783168871029217689471052657788982139828725313883821068782547817346952123256852382944905960141909021023395148720242866944260744512999115772874017139544294219621108008626001578881714028132769576879343652905365366298100412964481293206668437720416478113091720166510426834168094095187943514480891546983292970906018150881991776063911646940935830990218213747939515605470352030183765872586249488042228548167387781360321663269969314940426713341093469652233056984939894258222028767809489876107232251843521564207863409963885983754360423920915729878522078500382203563566203460590877476548358045727756668421328425251284441841966306102480312525327795265909012511660494968418579881211598269701627905474147287143331317612329834537217105947819876978091431341660179349138588983291458044177152749767438567993706208498273099655685120459721405303416547792975952290722831955444288763645726703756689055144611270270569314838975657851646655331991717980723783933352594930425715198378745157286272877400216412778637034502975259016964680474118995744678037083565864288775141004433177018501875071949558118514326117301917730138677056624641919977745438319890106344467744349710648950799462844337986210902810942947605904218071430909881640663641477280971752673566905215058729117355685295463528495337810472180088597392094251071321523601673291955097121065139417677215131133964457161892028200738402049876241175118560604342935574948151845164795125038815141046472962713035567761424479303822990416279276839263728434507187025113901051735824462888381815151691707035113764051663505654592580616072303140302923777022680452078922931108390111606174776084309741915713823618960477471076483891537471442868023563852974744825776063170645636092614527545813985365463884331732553053252293716444921447131399700473393054496354696656125662175535611805914537583942017072696575472875318033063488340817927409133281898615468778579576196579235839039272701810701412189656001254206787238579751226505125975682654101498604816176443220023635784475856127150632921530796587346400256766149108571176737344057096129596805155659799061849059934658404748496982958903135861749217253059721805282060466884952498478156704806029500037255987167449356380310303626103952947793480723477098946907927150302813227967763394705249211193645578899308798149805987635979665966351744887938095817742003256929654794194127263322721969801229040052642831823923510717320943693127054697762626472589702931356820939124932269243125890822578077433683233128294586573653386602951470492707335391799810271146704876570478853075216614542755585078771591651987730073957433358652990947029021213529686450591012142750598967433315829303742816024712647255789363789150128460978125925004915726870495201915078040725143240480907584163735210133230110977317380888374609003571533415060319184995959607216311731121392726540760615184941486868637358589835043114981460894109799459434340288195401164419864501962362640081121794312793493579580469169422197258568286196446445574725247128046196774771209608466114313933372030963488937224930494413987601417736876062199435787628808465215221551834758350232255793599386427270829575172687126440524379545524470287186170010728251566633795643836554131723200973537957996125168348845329764001605251281127215505956546225820667479825999219184963720908445727478357435629835073648954376544994108122924996563905246117053213693071697930683014320725122413103384220608611790637295866149004564402813604771379873911403300012111226544199194053445947285227483588433525101263788761137501000072444357985246982964998733742676219464760796049500909106455396304742614142463878681290913722270981394029981569567164299835079547960245345649072397830485072355238880080609545955791802971244647731885442565086573076512314537925928666804831403820358524157474273216331149957696347752134782062055414450079642900040576344706880636331523027227126932338878069550726020641712227358785960707902924492984178563697558524591163976201341211171971612636191383428795484358764681650691746893842197201218109364620074042118851092964515067401979186526183421663193861491645189096650203624724184577805899891206804431002017108485204356561542692506135128170091314607825080169675334760342515568172721527859997287728231489233445139876159795646162909053330555322117090384429513977382113221654952537778366822434988104856350917590200717505377262758120927488609017861555791339906289254088460139926969875469872194819416510066833230576088489579293290012348632448914177985457680964958741414530470651387749688513691675026156443973164480960215448730451313398798476892190437781732223274031776082296987905009196017339527199192833393905737081612072203472059487006361885463489432451105769180467974973894279541856559220716885972697041321744915482268015113436137905364338100625699481646061036079684971173088495411811111789192497444211349980358640514192855401492207222616439261382124424120942126779264280215335477616754563664865618532817222822659445127898547255539783323975788236986064275824303526629208390937682999150169787913312974012835531111831908344735059915062922344187372958304577032405626793874293300261991204686218200316467525874967384428525836188849101150274410211538459092706288295305031917212536899183126515062532795389162067515799897469254865130096586156038622668556415931423471117282759314530842415047108021036034430457341431895450839428025674748761539132891507275525401523494769731074646858595440136782419496366542521309448167358510956326522044290917055843847071814200406704008446651903963280608898632202123590767775146440240100853327456798230043267097357241350726743609691669933547205600705463508463224966351200415923638522258674653035871027895712434018707995898092835801750673308396142118957782058186149763907015267189798644441431372942300386024989231566867794296503925545181530284866641664126915465419620939449331790410734221911800144622115894354871701732779914075698017850972373409332357219144189372994059194626955419539461525619353234791144011403890971393930922680411913285762721121452401057032944929302490007830625271011585116660787612627537105821425427399442387591607062077931411046848927505896520406845551325316163853502526872630378795808406152154790519927837086621301391936156710304777720969578832041793833217731326730034967995789708559993382723389707974043515627296402959409654520583805541605333938381310170794034054050942144048071211636097719416271795129129916138041473002222272264140582129362764307286267785001014699338903482263229928192187328505167987099186060752461103346409365699780388513156137384146831892235754992303768876794354760506483579760521359632871929090181514147874314978679613217109687402196634782299963825894621976980084873700674834249488304085049243718574221369354681313742559956226415369832204517407968537760543527888847963335156924088791712020721253948234630137033211816249389584390094582937589896381643950830721140130732652988552644720314129714084851831420132456439966361918909130597124220432545155309248804750970515305320388498167785539683716198524906771352616878098003122205945761513998890311664115690863547781177517261366524977105753043144298766886119031449145550107790353828620512364994880083313477353261165730554985266120146818575058928157685527011909027782853187812613646456512565066844998847519646564984649889375034118426064205022200847062629209176858230652267226694762566146158469538060829748037863113626624030430322019342417987138793299329787439967129941072829755637551625046089523063499331758133726026438778682330187362043673128746970868883905841078004524955835249643272721660796909777118152272469410518826361225335883289564838672486328054222788871901634114549971245493673167257114048133988279349416072557270908183897651350392303359200736530716754534425737469724931702314329063733845464460800396758804026007692572165178024574761431301709016650013449458365038284948793999979827021777587603703696291879074465501291055804155439838579744915927983998848255186486268301613636213527064379585333451533884918933554143194878447735954375911734206817303816414303998226206496791687478814439113840960723398294356448723739517203189433282243228904140141657281285777775990375495484945853708616129658152496532069481244090334223945865389189427015352100205549980028075977430170368860043797861568593203303466952764493691805986504549539340630149814427849142648028972950977677305217090113829965999080257158581498802600227613197115407316975499565670235278240511862644364434766303284643932766359207461708959293173723651975974006865174124041262427139146590584241303575291488371262367316951820226094913859096782313901618474086372144319766500302199473436089032171481291246703919180334141981262923861921260714865862837695109450509254946050214592821718143868801769834118838751212485392446975742378826010622719322564473902496790337915712549367189507827003264788235692082402631611361481094657683214233348339176451194061064506119590959125352055113092609357326752444111816839840801588867791308942004184329388960960060972360562867765911455047587338362493796868680877432870302256449650671147550861181990854057718446447755099427353337744329662475852548477102353018645649758991945610365439873264390819664693645647055510175794990557093054354436954613200177809498161060331472037771094347845538364261796821276946512734191141251300470532900318788883744793233065706362503013058368191320181449826963241695745355609450094838750590557947413168555472123305222438249739519981433659866882273166187648095613637222056486905790162168185430117988320405148087329488250982505485236751970847292589227963027349277557767672208982180085848310727900125406447422558754432410750934893976871929436903072843893523772445238440498999396635706960249585508449724975755550191338758228467382170714615274522046945071119672469995325999754216058361764041576972475464217312072487821457152874893083380196466876208278681550329567099066904507016788508112139153752606338134825334090193515195787886907458109301822229837033270483362847596049841430780887316294603383806694454656337791633610178913921692217873685314163650990098545479491705141569043454061540096750742568941009234662652235259830749335091099234809984880897517871552689667354849048458068833151828493674507145516152231863754710216888967954245681500780130915038539550698177352600454270112427678663796615436142248641079990204836862635192602877499974596193243590711975864656110455966335811253138697226803048423608198000113923396465550985891809181515570047851042477037455913548134716482309592506582427721348209946424670328377811426076524604696064272392723895893966710041825365889668935698043783259480858065193657411496670937610645981957704767817116435762026948683644229074489645929666262316254043251773920997944846766073407601376616137695384801356813230734070630232291608089615561254913396621009139057727651141833352325969078097366766998816324879938403234796552174319899098833368639703813871743329267763110487965518631279133100596192883670136370603661238846684773881489522735709042809368019019315280810223909376906876261936378846578002846094146312892215026148753575309424074107221369693365310929123204758579643244866579564224814687815166381003018730905752012686079988776271186772187202677803089859269277788575868730672442815790030376484270711775841885111044877574088482550937498438529643370352301031980781744003728275098334521660737931445034497847786157478959088954204912516790324939197566421072585102958170177039726838335487853254291233077077115298911971364395256857570929364800171171389774632660993436648524853265879298609018900638806666759060313262440897895092788656439612454042064437731762857723211921017706000569411431037495556102218408865680847046928455813666647261314077960230520609572398253077809752274085123982117038555568884742580737848453083933670493730772656230527236626396937621446849213208323757080623834284822755402121549549477894483520103721231544051818337101841914040680878539060499046542125624384499827400897938506559571912263845704289307439377402236323640148629895791156740303574365243810435499519196142851005384588433276860185997011077633218075268367431481804634763286802208262696569846988012216454939553390313922766401638736793692709524169766159798604792208017350702616347885516931180381399046096482830845022036545811542132297576910483945394796987345342674226901385602146392508982527522528115278888450770918278046650490532074730291765584437752708270898381657424240312304652488504744055178204225684308713865253721441840802644680956990030967310926856282216882855685237399960358456611715256126599232033927645778964589552294624755976829876994101729876023697219742476063154310197733892214239303436081649304748861620927383023079202298499250360312889834034590977838663879454145676654608862763822856751875172562863768459558673199117941951197222219303284890525323495537947315058663966730990925138986645026809594785471041523893402268514951612284696949008621085743242087220714066103774747754154683652069064531224400860488246849831229515080259716320682919087693758174508510028495596289717680038353049730724383827202948765869822519470577566591673088885239773559225594041002927096607456185695398210619360801474094681295350226201940842509290406265126856447918550511386898350191061396665663190204994927360225199139253761534812571706211759681620347263593197437116791411096140414994677311818386218747897545101816256196419815103370374153983571832556158438952112270717899074933987773517736198262435114412234207196694107295858251713238050199973169495583382755774163617701418234600508536767903037899400467472875228398630897854007311963122035866269185081589543163468762856015680151291377140488163510977721947112665474726862850102133728247093382338308373110282958131975140146059299268396013996698874818675726465435265625205304483918339075926359873851475874462601867001598451012056185626683470014074049936545491617904473640075422463374311226149623465317300047315692470666584969245291983864692310342809192655926474964595457504034231811728847644895243233837651107224640349297444804890601503278213328626457278725879061985781771333352048372965637141043685002516150905978522464489632423846214344390017100088172749333779384751132666950944358494863666753500912017892336151245799203327358839323243089712354499867946547750005867835575189083020741968454535954841482474434147882986735892501431732890134778039531542344335143307801926711644055627039845134763078269874268793979717937439750949598713934142545802850152250224782311607660968678045032664403707244933373502115817027901208920882723577351188060671839618701877455405257434081401135017425399834106581165442942514511835634365007927336442095038207349674508203730841237698182656605523770001791388723778267904799447592799404371507649023072856264386672871572431397659156468680267950297474741666143883500289989558760042990771790147704007448497452455568976589540988489529059578686684366761493788389265143614115282169015503304216677545517712757122325449850956241852834977475009908693720343780485969085587251380322737101922919144666850334442495698735685624157660741861632242464444391138309401256094186069498851003339928036455802264104941278145648111934310341130041661738331751762470954412667623509623115085433838790203348762603126575310285313548222574855602800070945045025278506226517880734450016748427446888225785934145634042286761987906523094640992764371244493588434636617295796055974850018669973322928058744982947747135002609593216548114872378407932562427177828776831066393075176504902378295654145239435808577823992094949994119040037869024818726886273264041990687743035124045356860107046054532673640418198469071598688135316939607315938745057386585682147675788270317812149602655675666879368940702193497592925840314810260554206941081170982335029969732383587290875697428565499723118680905239310476031760222630561167137544700954757907665393754382202988474983054248164354781221427310339214391302763156452263748275565089865421675227283242069855920830039844611454971532763720631228326919390767515773825033241060551878409058779491218820545806363305502441450886652241666561391574901835508802899174064923158821370405042461726644766356169494817163181421850758719506247943760880674531415742569395276196665941942723213486072299607547873741453787916237210828654198440121174454579698726295611358847591132412104265072674788956738846216208666180765390990803628734989808238678064828387558035871874726186432744261875068415961640274878382586389999341962380300225290029062499944026825365557124719170108356802948304915863089616517253084084636496189888293010760015133769466792430229710085631165633824646134661502631944636370350914937367176360063245761077924625260641064152085181390442373190173089696188658635604124835215748382951396635532348888920321551933995153238265475969413026980250344066359499139804127462385186724163968492553328243338542148592124575287962228370279201463120930331081955281032368049383643553757535932687255666188101635980346460015075253578159778554533831073620557268595701990396675515471811735130731280223130948892409465815021520421389854332573659082707907796347520303244993025213165056334138624376331304967545863888051774795489391327775870262440797205898863776850067766902615307915437744238584203906554834684484633188442925775640342949315571944999591864511980952949450367468006644893752716792939622988912230479973401162136530972680838273670525711258552386570676713626138568351069043030782513187481673071022929800976263571741950857396487941529799992579381076543790732178221844671725656197778433834292056329473095150004998424087397796203867456048896399690150098220267384273695204161140813838874041176988917667483531010302481619688422394445276756499236359343245981131961226115459988715437759299991800711197576814694018860339385885779302951299883037973424927661824187901688362671367779825316605056554985568848970868740764346350639395698163124397046098606089406613443382098354292576073641840377854939866318845005458382191642751451901183625452754281316991762222325815294973439329829011716931234732877749938813679267667599509281333473668048986126660220612085672516900513217084659384526589257121039206166967036305601955815395803739920785721254589936574049000643825460920225053223965985433228730799470878422559059071547800863994852081964728284097488007073255081683589410059354732032799575170203361661665410652747340335366428340190309559280222475165287629525551406498189602744111812000972916446806747461109875444466470463159517458092663736879561283507574035330053643465070547442351983825289340448415221123110684272345700294702094382441088746544388703171662092618636306276933342550495924949017696204686390252129370114752147761736412344265271541158658367685928938889244447379579339720624872091105518508175522816861436216342104008703318530872348028045946160677971246047681731648620386859149045072056736339172527767010456773370964346669708307094586520680892679936106655428429317367067998432209175051980396056490407767337363204659585540132890923717742224833475884531485969424958507849738197918769700391227305792176808408619551556754025604278920792976391385963087642744594198288239834637462890600067851939230760554609955494352335500644210598700238281431483670240390466629324903854835772439768802981477959318116319809749988712438928887893958740801612383680261018319537504639841052486600620286719810051638180907635989140657388749213100218279650546205433012387178513890768921715782169574250152340450208951798068822850607040266339769754475071305028757431202753943231488008016367835865513392907738937585590448024849031746164361098606948981223412618761983334633078127423788108685236987166902930192841545345345098500575703065461253844753965666711986369225837521463500973680217225361010688205738163148488432636729505374618831229863925463113912516583426913884429750746068200890864489701618060856286535192306654444187489514466044897795195307634309691806537002788578892526127846887937990139040477168835785667125129065551929886509569574351347957173990924606189534248582991725873502866322359281568818137981027681359599428517352309006412911743131307105970936357565951813103648440788978762493092716015817340470532474823940773461276372371109554673436683818674684958782529023414740497580649485592094705512278194112898595278004420409914488367796772383831956272839163429376692486641231794861102717670874773553052382110862856727377327648878992550123899572481260062488482389758716930564356424353693623523286843035530641712179023267527229768549584017167746464738394269798912276344784804948537619809853023037969649978299045780166454620422942644894926055708400141044021758367907814837795214397939606343992499245133929113637223929571556020515028529051994645394235857454162360204658398820669564630266174539650530598148749198772647094318260334209739758939632759553626574775591992178334442356484973561519977575686883460920978437217413083066056826540352809605826478055819458604551792082641727355298987837582736340699494706286899034281121179518677760973739396182475044780641844724806302631188918845583933664479183614665217421408963238516281707002587162731212982331869060403556941846525531316728662371107640404230408431212697987042632583918230429299105615916535448080366583777629452164615569976074037344799843651523833559657917619241111717504501047436153624177982600150499532756243712408233093811832874430019292738319390634470895834630412803675998505220947542937819689646819225286092796196287651101142530425654005558815623973872154305274562474904089687868213167891265888409152102276213355221176721105753912966767679165340745721512682309465792674157986847408658302376596350921730620895852805074132475246520909948335293704564838694966959567988941516960746420177196653555920707231469097997687851805613411888101626289726109904332498948797195223531953043810121459433623251740740055314222947675790217334576942152924700894871127875641345804123766079329804056424463849718368797980723914637556057461519392325010095800769633439500913303273658211408838759209808405255421402741169946893001365537242025360295822693585295955500868667695463177086403693261058575402787617286196027250235212018050107890856246372008871974822903195742945174617651264207272347530658835177198467158237463214903573177315589314722884052188210137971555121424393435817977044033376880073166882815020171120427737282468446618345872135279390444097730288111296749816716246811218864010529037903887427821581759157286605205601000158808362433295946948458648397810619729030933762359738886149999995452427141760322354222390717815954964845271174200773806152896786633935644917590396532757006943190240061126649869488363851190093689612207961687574432051501133652151458082266245290140453405137195170913036409538814169884277283797769426940896641672207853330678234714603620377298636441199158304739947203285139319648158205435074891391883276536241571937758486367500642852712046732388776524935633461211228759922851397515899440376201542775069118828198817038714520077829581216810804706999079246495650215242209749930812470394979363881115139481583087640952984538157021710321108802131307329360147560078662677354592116495494732596143612630173162783306496416706914354098786473502666724026390515224735664487575094340071675955905439937540596788527816159007057539233501995720505547421902207273108159471946613765689105682426643987171553954640986603915585379016965727161427709637779971546100180327176283453846692577331905613666978400176472034542645360834763789471950469473494614473813396926109805727024409234257443544838439044380993251778112760929422349664395396467027011045732843585277798892764722644189183415845771950159824424709959460268283839320757735496019593704273761880031664760708117867138148653096989573201169645741218516578388488369402689330604028649818188615019408331633250263141721411269731464022236284036780840326933699028436116017919205024522743065060734313375931524915641921464661472395737955687688006622211185136829705008344756106983819940255403736299922348904559032389465725964544560818657476722126869161018327939410522512027403550781324706459169095081323328006737672151844238448166486083269164030442379032229140878983481091838309684449010086276597987282789034332272952955353833630028340365555023126678742501431141491412389575092154513935362844700567571727164611046349526653254278634313561556445174876135300791159456597295593747954270289193881865893018854724952525932106997120977532275382989320465293259707855109835222650587019407714030119250662538508935501852305965581059623759517709915541528647904324435962205604089094380338244459643981304338292704071937592610584121969541616189889557504832495574223366616722625305825572508310952507822364247433277569024587044191409016853687412763301423001632418349481752913801774180673876439851466117204142690658531264116860867973655162727577220324081139895567521542996615435805889686983646039892342563989655953172359839331330506108911798781681086583055723373962308433306262473608476873795085411814837392581012438874863600469769871674446669722373168307291489755690159210505437012935203106010748787375790602598326366864525518058551052811085912683298464450710408547293839986526980087781835227052734582641746557182925618497326954556420655404629009120089742952854333259462085559919488904300916937256369917569753544972024163477889997541534443116123440567578208806584285175512435083080329073011756829624526410333941058465929124680203844835159254916481323044994234947507103342211711292491737912873551225681645270208336995496146775556919945732831138600135126831562444551436183536625341293288040012931989540478904147715438455339140235720177452481591597281578703636810331539430137702451311712488215084155590990998953292871727724071229101435988395123148172382028074504438059210720999449340724855764074536001073699574405318409388791839535201301277153865630676504015580119486863723586081222286192936324383021552119510102853940317691959492762367280287444276924458507899184994265081113184249047589387263668872346877739451385767196166308725208866320412677596343454429774461674271861995971206071046128466494215984320797470563563443074666733294727034470025096872332413092445496540372675811482496496352248910092027118418022081258131342831072132461594970313050513964921906344302135023333626564393665812317304219328667792457712882496725190333328347931674231557861087044918756500858217461156272549879608498729656661619205542077062303102335518176291310850323828253309235529125026622206507456123958989556940924724928442206000511816037542193036274368730260665063053607184041494489101574503158067293374738636121783282463614321361598199308458109839824846110091683807216990595571226922618452348235323155753523351133378796631011146251263145846917364706836955372413085466519873433568398446432712097854821695957322146292990898711483484242404261504281969945307349572806281281463994747134207589735145149242456957479397525816920759478164144665325648556747955403553446483629958973011767433414669154830070318583270719997419526216272951726636517528434471687170778219740947702958154284979196546631047013672336556530980852001817870469060264713294848570057500008882049116896863996259308513703171717041451125715355680065746629569317776072316050215335634918698019897969197997456366720924545732761334411498057871262435790114013523739767530438853930909368841454177527207598328554751098519821572405023002943434851870821452536760195261923046930011471240897264974975303665610222959914163094288399531650391870845890917674464322728747891704508337336393940356379441257512438012549501404301101660561681175777130519648296744057421407173214002044052933459769635457511872144608029886623243144769155556283569042022706656272365549982389422601036903086923579576671853359177960955051072109932437942409839395213817303333433141535960077279103366438859595547290792682366109896080465235432913589530521354832117499277869932709031030456176882720676926501556765996014500832682430001599856272802555310482443703219811557317682296812302265965325177406086562517276944204510064696401533134337472321078480564129082595868575091325291979971557017729394276436009899973229106086400408642740403100024710535587424416005296644664355045510352199164308138054584596522120214767835038144685600291535177232563480927239589951022438862186227028163530244947744871889817165777868712847812029081938261239714867623065591805099346368107559948377091147820607699259105264123542530757264177263933826929722965754721551021637249865985754793416583154712612375232165983473795203586180878939452281418785511492244778423057964860940699781849936429660780274653710049254462830811324282222351910192433755162747631477248970180479969520892787741776105917463595636866484614733781915206086978713070254730304194392121761919918437567797826817451593997313607194577938332997129045652302250725074538900269769732519245478500915523643691357720633754231167974722478008978363282828168695482645082838493856358717967541719874867768702524380796049380940084768127647356791573061479982356343070174855399556439333368466779924159479645237339523684375190218089687446367711149251991427334747982915072077669368406933897921241516041826334301303946391158549599516524859179015062580120371517530817025804004719259482234568771924013433155294355314258658716128396341626984278480309647675522619535632503026655098914965110427473625960725120877738581878202418325988320159497449888228684707053122536039884303180550626101512250592223647845962692181975228290915386031489422809923479634934487998937240615430105894235308546727677110178257409951185395635943971451204635913224941340947694976312235247086720946511065554644382694320372115823846368263086083774348882211990245950298028072635933759767702866017784887213073865969660091528352714341260523769689733928089416268572203513843711733417139672827614356116028099402918410111112485509541715788405053540075764712105114046422389898807671614097803524369907832038755081642397713751387931629602355985431160369369027046844261652815164549965003288816725447167929099633589310757782664156290805087242774035083441201602127660544463305428636126886033432708653722530403808901828942501942025356245287625193517517089523033657148792257242764645005118535751716446285687973018511737972618336765199558670798575315729266857696188533483838070230531299481391754079019768086120035102708175233911877001182146299640636935148135112833822398404617106676855369311351742592687982388773395069035179225926762051454163024958169388275231377305049973812472969701683716752848454957079068686482633317421913236470937154423072607536094608028824416090188907465685961608483576765371976822696258342496215468031747253133906962146185858900808191347543865055081937671914206523132834225476975596097344680942288776478282525738356599053700852284465173683075207913250187021295022237616144913824591268320413924051763676573204192267378819143895622201168649626603592439585812215842497580815003795511140635457175905365613974879077040925999714600546724666859900509072076976243688924693508617537724093313053012578033646277104537265732373736210690702972870710423886370258410252725736922561650474559291769728322213205669466748029272802815815811585140349038886479500833348683884670823763980062008365055424313701289509141131914636623333374129448024861088717762455103637695146308994773823626959494126234942858650324903561051282892361137967927432979870976445548354219998320769487700381056148751034031716895605503926285900733526943845808884235113918814503898415623153397649395073581827557728478704989360427127748698494722417046732402287332691276249495993555823752458572393838060458445591497992419900701674747856093267914946326488014147817749647560632877261520189936473791540414659418496396198149371854676812731785363758601391300863515986738950612984426121584669035320887393874878750707817028494335451417102826287909174067631300821396588296482253825439795857931139856786902276334017401849921107487823953808985845721484379789838049605644869881069277797681326808467274685044701683470497215846024172295329265335087178485505177472212679358696305688053520629420128889277120628177907084123884187306394301157989696886880505733780015360525848929586058086359567502572779599745316771411677039221880921074283947621816043098979761286770985061808201776877958913263458111573626520815807005196317370702689150571958943890260828417177983031283163498933106308294736080294803544568977436511741087230255780078638082531450194379090487171947581357325403467255369561143957964408928917385744909705401832581623790342721050129057739209841538524693008001254269778495276831860695211245740659210557190985872766090485166136683578689872321147152774257777465567174202951286472003418522050052537780042002283521833929098353080439430700278700436347154143260152410667344084262294857525431921770095306405083719917448960142912638009660597733157531213305453468044920117975663907390607618866340606496627121015873529025693124748620801113880554104095776988658792699441798898998547131392802283297562753849653373518975572799235376079794538108689172801199063229929501719252495787385999363415930210281819162278125477298922923596482006814753756134571597603559509120340317656539744250309862548884049261154199041494045374450188123249588079211141752495343044849039984895797446531235783075825913849321320019818893788403158923909132700492917802498069919493563610719481677022924760530247935099583091834353516518953217150509012394042768673466585422153276386992776918216225369070094799839041071353277619284990571584849951396600505190500042878237096160739561295175261655095569411303885778164871932211748651771156618371822311728163299378928875458105678046483282259264760265831800397011593078565343182463431811398431411191989737076934980090029840686348910062446633025024312958537894386450319849983576961355463017036223608030848634596718864860087295829531032197212750839031695254730589768013340996695773922300849153650281582581671928219861302616532085298840454906118458332650195731235755321717831493866829084268239059293683600984003045954378257783876605841034713192913078352413421540548387904580208485009845950532653462115348344828707654974105543877205975857618082968156229021280433306316535330402965435142107381285810578858609728167298823091012045059281566871520013406233592477157043927934509723043654488493997809740648829502261166123514828767940365586479095503140466352335200634395203431829870377012506328857169805616018809608818672105138578440213917258834196667967867504044356821266717363250695500430139713406591605280188734789654955770266461282207904261685003030338142141175792168952481536127822573998457430615050802256333467855806659425342868877017513418595906925608358907236729854790906915075299702985481855659200745099272396073695671232751725158632736916875281569234712859043441928484791340898219830273398124509952138098002019048819701771840967028257544782672503507157887015528975360442443817689578372039855076737564090450849053570799858933974268338715811163140586970164973255852085001042975117367260111026359399220222442014759318680782886250075480715926246293980153702364353964582263401974340935094646154815357004997419044313890865229255806607392436480230402115580492794125324627302217532995068322290615222967725868350905763618221856008208522686016108889606912123872895022634521659223551973013868600259269863327573386898174732571308443214014879310816713503303024242102186343944325616676206589046704858654914185514357557984370889789146873075470150580764794712510182867333883395369382027278321638934388977202834895235527144209546604255914894510404753661713991622582205258059927732237606086451038133521266218439470159270171457978265572053407287646282221145380805310055092704528099841433412220406089363077879016708257894475143741590940752151643711942292256242716169376087886028020950691601463099885320007215624647884443577931151378724415521291953513960442764033734780466466727060083949114009341066031904232364590735340906554627007652820937927012343464268404205944874058569185303905176414280794368607491797666496500401367022066110251149002731696960710877095286743760098521777695550124796830648696975521654836571513800875215563029834659167298906830577294825308783527830529436504507429768473854540923241265114026023636131362795311663549463724896739160274792493950247761708357971990052253235403946004040394701930964309413739575576606261357445108780841698038247507051468113524950803165690271022776376751113349472111462880640767318778619515436095109252948041073851680698944130745695787068815497750377538938453822604715535169754408262496729782710595201866485740932962381564685532100568979326480778007706666854979625726630922578079903399289017956233592652154709414414037043079800218444653296548213952120513614944817176248272243191270719531483123415043592365643382495614330749887993263110369743092563601615216630315918350273941146126754636506865480555329224867332979446165983217850421428665149903799184708047979502471997811572566622495128190238571772153672620443973884960189870816502960316051034526216043455074245483232258118595370924716677002100730766615786899328840828587456539315878819617305166760209977666798116848838971171002598266944785248170051165648221184299314669059010818826463238253929751645012615557051835832709143898191624096602806927703011499456763321045648471165075521540357809355891582427469613073283488159841615343906307836052229984026532782454771609134359001899544733948911450265863589462333245904077061522339377961900825034403807597940736147503024935208077840074190936428244748636161690002933854669397811468056426910581627340241643374921790030834840206280562335642685862478486232436158814030256004855650719482704697179607386122157965419749317695880220599062787321476038740279114599334021376283830475660970312682659380075987009900717365337360209514440509971405819989382905153901884435135410660896140185729426368361638151300918074998905607665764148923992676788155959425959268350617582208013283343826000568659933104277402318797303470587878353328705739453094776377513624857643510601119482192077870788922345351490553625561395709187326503191966736367773959389150038820576980020154665401551180428901387797119788245016458364786348304282367208115660122786720349091659827039653318187260485103486041843924640337165303179280196522422338294707936055043911132784359274066288875785753449211863948530355222672499499131302632976378819386485565202008838252830287189226231385183996456374025488282588283626034566323023384246380848183000841572455828617066220840809160537077607881385472049935538981556040752355576723987198367918175215457267537134027936308335193235001874458009512050508666826439982823336426342217019488861193792594634806023484818069561252661412819786436340522932090671974776522156423209491744808934183660547528776637102365044737407391834248659618501051880020022870764907984554599293131037931899583083115927685217730145760852320562836309186763110732826253513990321007319937174437226383119361827982697638341066918841319482235160010498181167724478065976005705131580918884700115123755748076752290123792921525145706439482638015237034218016431219048847680030441517675252320968712508181065214633222500188043603183247741424578122976966380891300379267576837409455188547806591752160757725868701040726619383317790954437204556046867226340538799792315162418861088468093371346470370533128464505200309461048464966009599650329977767558110674373686640790410677165973874574143339423071585309567827840522184728175942787491880096867114738130632089662038850811881020550400095882162187537225365779770804142909177405850011992886404340308657008506619114003868849076124617175830195433342455784109959673584627293507601201469052962829684966642974456516311536972017258482650610529406830488635272940157254747540631655759848533686447659293174961823968121243218262006080536681406493951416575150701934520108035533591125894571748333616323421563583179241264419033806265439328550940861667894848027905874586648426506172150470649910993830093570365952269071876081232819215028603911438873139279797972227884102312046288206794821620622426776448415274415984459706218533823311685436069236524618242503490012550826912837051556782290306048816470292056889004614370208785738190530007267546023638959941929365239937726852108983838674889605487499408102822782265188433166394158927869698683995277349719665444640295597809335969874564489931665538752430167073703106901462776218875508500945634528645561868020188360031384136740410545622450581107262728818037424877486033417225832409435807055552190358447377330666253436085036577077240143001339177168730529521776365339346832213192576665611159267747720598055082037949506795964213269060560132891586429278158429713956867700078527990979729898428205227983124740978985643188048724564237420685458565098768676154753087504438295302833091522760938766717948399237082639905807377957877822752139451352228364930882150638299607789464272483289473402891788745270451239274211534509327002297592797567404213359818831413001758987117085333402883272546123433892903348466232326267144016615994090391366594057588692746510504116775547987284972484280527277302187852107543652125583965216358435275614364255627694864271342044137955750374263246725195097868113303153318869330924356228643334502090963816187071359268018266108608146887228062306636902977870674376205326638789084405811799124724551780335481733925426271693176405660410843861270520974247926002441713474297659030177573303591929445502383337791098291085842871807075810124016416912362699510516105567636519959577824017527050689891638205862813857643362255282706756889661198914818156240039808178952033874895386314011745628403569800588099524649460903948168858493807547838239241969359651205307186493552174747818985646554663880132298029650770504560880022384874516460245958807453718425741765564379335310141195451667306840927633703098707384261108005833747370322640246477719365741017095616718506254607205653675663995481357584245572041787295814284059741944956542914945010520384167899012446030034772556245616292865090726449335032952339576165221433340736162783684078921456080805003703434186614301841886187726335555036134104859789595840034405720550638386619008519980925768988230591257787305934538258370766629953210063824756891256853148121849749969167545770816016367461043626829698202495353876627356012914188164481971785669045966156611762499939305146955336497640031544144461585490337720400221247087395614276603610837006930916257776195030540283081088553534433841601258616235132846946220275614170135336881539998851721181992715827052838681421165711214311333503533537189979437045841048955842731094218138735112222122818908759497544070149037947657589632378614241711190747835800348071701232112538440905852814445605237309688191261586875975080086397278279530015700002727553996871254403345092983155135094846354130036358004990917164603274972718528813253446091868416978445840559392389582813957814645043552049955739184623257781447616544508627514465033286543550000129778053756167554921339502174681723397825134060684092892405088196178285197671761000395796399039300156360420185797224615473382820845809982345884326093567877405430533296721833863920598608118600537410861278773298429663602556849441571550427563539051786535870466125106409651805985330567314547984478139485829597681102559668632594558220374030443635319007988047216444733389485004662283439193915920037140906082141566376342341951047935930561216375200244951181937983502792077154087899507748830644076470610175484799946869932173791554485240441357742161507801514972733128748958902994104808157186799730466850246661939023108958964524383091991553921726531641622674285263332359800962427513525259343954655454375387482009530770418868790579953200683573576119082254874632493171205579929620482656837570868128883846680063652868375398730753304143454506354119758447078447449675526249225805688979805183768779689052800996968322920195918118092645039885873649370327112145720961164247800390528863054848839749012003087245360062913891329010786874623147819352088068476128149735645209270902432704225324669468707209586773000353147239364367247956583456942545713499049935955850790373995094865056147465060848137553778195803760175258853647118308594747536935616535999132724209008291073787034208039209253256673147007477068416256467837907944884236166366256573206245153419188705338244154161349152628614467956649807776495170239237990457668799978211234227840333724733602273995489273229853793086696590928460376615182141479525104246046466760848525528165036407158748421549894310997642904395388613694836501259000153295310488963065321767609712879754495056446667060028669503443071632745769622640051924519434083982197300595174242533188411458931384653828507700774484295124252140229560511239279521701385388768499360460415493835213074762153995710512944603137517806624707317568845714398057321995460310784295656385548222361890544809008552284585857933239434398784129613386222057092016804136304561654858754509297643624500374421294791860603104270317847487716460145890542220417216249940793962086966083016632967337771765980012994366967131255094318805722123134150276436487148091954534807146337698088969208442946747028180581329002087447053463465768858312840895469703310847483781160092238276061702383712351683928356141099756495000906519792030790607621712381584430209078258230568955461347656146681817901507597797902075989552184842761938244174979657775145971264950089649368085757613069728207852369980794533461644686897738548157331197187418418832182973545247797045914835189926669939823781916512219249381222510066267154222440940986113902396985294486479455762764960222890286717517806793872351101300850138248213936591164290927963241747207797979850523372286431489142613987987168447686097163625171683254867965402130882469633572861059820585456120678162886070979793223470215295475967639393104478590268893835848043494910047166997534781910462566408033097021072463802017645887452933501838056130581170618590317352995039395848863212204405656790060955276349404897588368041583795847795090400185412642115628010241250354536246747845566447195581324789348156333613188937219459276895550408612721431028861472002214189578982711297924581182116533541729981085551414784246040421490849875329257778959170523342379685879467517645846042425888032982140566999635532354085140543178989727126701870734007491436372251004726795781748374919962990599607134820085107130990777281321329988709079506919728121903805790230365403590780310058052198143404797319470311690423210407321045844863722051921777793604600195685773507814918462242576422276183972456744775334774504185662422584285324716655348411599179428835896972198027932974826639890369723817410959081637550667266377044289606989829056142430136260762746946253092084341837849888731959464613718350659017664515472477104685781626245606210722736689268541516475701513594198645071845074925892643096943128293917484100082754987346998662581561346671973856359544012394396105650785332017781937573115872458082704576613922572685515852632115441429751712828286227382656460553666699798344740645126734939185675142267217396424796582362712031314793958834273187895855897745243876864456812657969412218019884530154792838841630737486388771335408929658946138697084379951420664731256745277381729342687815560191770978120640254498965433051529361031724532337319983687040154675364069702538294855689894914170133205875718745283437106973241911546363016949414284231281845139668821294079649942499011263477207601826694078200063192058405179619901921409058148311735124737145769643346260920683329278503316930987030198530906281557248377563983222994794330822148987799367719870184707392143090599013137927682432045243260441530257998190617122315009026486781046071896263924424342590992972381095721603458345743201140460212487458516288004975485330246343578449230979078937265447869658178806538837308316992343664629449019040206835151139350183890976223093155375588319175706694606246322329667872542042788451700061849330901337545230335728245276917336306748600359505413363045633908819381360902256794526426858121091358215029544646206855324711664651263208404639911369241171953208849221501056526640922144173620191889373454419113495942758815413743947409346793831386771934523800391039456665893392793114527582872888624743921564171897508928975276062041775274865453292690180027198702638658887005840350208795206374738754689763797077004262026188798340860978939615483760836935075117387870784507767525475824023169917236920716865585922477643457084867760447756779101864331522946543040114823139614998939275997053472753061379701636030451841266159103260301546711791458739594155776789167362035398115236931904680906305883974685008216050594288594775838981364566518797383335028153962075596907228249303709966758026874536630297112424605919077278000963025762980871020887777407234209268367147246898020060789656827347912500651532785850856389739502480491947077007584018759022492491143031825438251880723837510125809911459514906368257604808413607773461925252742363485017445013931269487683649149224367435671387146195068610724899802526275214746005327653637725639303516456436390237208149737720845837187070986035876558586516171137179044874337502574672154128457478216440546173168174003647271097518682612702795878117194384308951835289036554981628940497181925392746679066177182947591328742602058835458615233321527783139197914510674877780638267778587277035735455235722536488205897793649672838242930577208559663633215213449870330654337440397102223386661853256699422824791457590646605884238944673458984211571399460418483827873685031313858986143109053265688168717931198800167516217726035163037811005704207970640788230429388275746638194522033254221248541655133297743558388588830712715864896688967906638364135284784193453984038048382987217344187253682966694964053234325563739784629368057033113800216799572828510006629448879295011922971426238022401723896049219966098827470567756428630880532008673369396441583114868905287348658727752493453907697891110412084896225399123819887571816296088612991805450767385864987328799972220364616724287095484048875436940150911849148039757403581793956083150657332190985894542009049674482820856919140034861242412405433180368559234506229254767085145340834149588587401572304945271840901195326535753202331550143374477691444562108389869509234291372295939490497771085175382646594289099141993087114886471911058422343689437262999643152631387219884133567257063756795481450253171176138269722553292488251777416158246666510661838853657766822851628219394467363113806096267481874389574436272533558201277988411494673295640522999956440181617505009176634793379567379882464283813139612061154235586121116340549727880222489440523826037692317797255784702014335415106724719869778377935739859218881216481571168184315043816305680659497340520060625538749706086003644399884847831926623789966941986196167003247403351551216393620899833659661201044610092371124239792191733704371378521427518968511585207769758649379114929156150551313810240152003441924741655825804017480185254839797842275258638338187855432386549633034597821221191428611764298284871512491385475068489021060382510506624771792573596075959571675970366624187417351284301782013848143633849333164436742649614531791287486057162879483761120227293427753049592230177891118557292344840585771578599263343421847153520901286019067393256427155539270399035488304987483439049833335912660076077875016966809630021812722505925362317012982550845491263630803674829064971424841813936907559892709918308111368658198335095193757259288916176562117588662719720199807183612375643638821718320382497490810530134638984694659623942421875271625218265753049315263307317139756582053985036411237785845181189424326271365266654025470045393383787324096922879362181054830494008021889419191474542233101619041719176306970758183531192311041536284890451451204860213524296980241428477336737065441784682178405729714415023447782456334947011974134986364840846027225173008768572147819546389574622221399398241930274651266936136146435574079880350760671891273877425999383419009011353247699914598372981756700762905004330693025860126430058779463662814589927049832337766144887351317477139078802272540429281445537992634784126333047262919977915478611327555931974908179201556365717087594113165223914350116528427950143439960312244582022559296908959415169908197292497776930665447372646597461988894896719493007215639519672779689242694101967119954391444872341429049272902576082527599408300706985122312186762608630437791833001954176174064576727480862772902082455881096389145312065267366573328704315986505548978836292671653100762396537855868928176006388590295950053181154273261373374590440213402380502845630216706213483284967103101111893336829455574090801834163399308081245935173568473206786570525212401930690227318642635689969841221851965959256004541547120944775058440093033025258048873768820099094813899028893401313061448645715317411917601001265277186529633488013327081620355483159758689706088634890843382883048291328057291306437630960509708510032201506920289385101018256551730275300944994189650818820730371399367599084468922091227068171809150600241279471030037011169031297923093174450295827218254785675510400111151968105048099171788979208478413226071998440012653154705567343841809388255488643010396839862964176947511632128676200408880195653753940695494277371925854511659142873649589693178247412669134191627193770931797996104754112036980393320998354147481317013883978586156337887813680819133718530463550607907766888625801583472483628919763503508200849592569966935223532768824820157106054306474898909864233303627932574381333999218374857707599281131484765798534224950590949403118223660143948511799008249667018788436797375273811565518988308426925847980410430242737121864356852466478830696246008459246573748682280712357033639364469624984892806273361389811323347797094435276985121343756392100112527673463474507414727769815516946029538596951759868532139350393109002723525744317926395253590122432251838909028853703854913436187297670049999437337334130968167942947741214492364549783864516865075057153914342557886214120079521241260584983026187669350716619580635170520754563620677787149023263968094313385105516600816306504695763304760028009663661980306154638661957291235121072176933853116816642748906890402474250187287825088363757643498687482643025558261285514191190776239293646203824929880060504043929764231749765894713097477209970921344966530631655522320302178737799715982595784313566346839284209426851693064716511483398255246981808527823481313409982515285852300313999882374572635963658644065826280337314612457540398430294027360094019625894614248180990179455633564382270975897330424394778692254016408327136910429133437222200950955395835017838078245596184016465886764990850179433669929233237369445363200971377665667666288933251138425286946003219402234257822082146011988105279517263364358153425678752127667153972831193749172695977170591366956551705606469102340370071442907814115511194162759516753774533679978970145962606297116471364451096258398759475780350875563081100709885336287354637837563347194912469945009991863050892626509620116314923024233541495069083997565582304525388009553282388153627086128897972129134322125244379853873350327295364195660716001886097096052894871167850125623388052035117194640594827712787787752192797349934491217593059035967128247685354559218155109243049695268313597702503456825411575530661498493681770867368727050135954843678600798746980747394457283828044034298738354616489067940577407939504502984550670400627138796913622166615226267122905302659040966605609234925972911292424025438865844947286858136803949840590210641773158868154694742880950054278064996580534080878156824858074661058305755842377797672040907617476063577562479394996896727746327045366956894192180966723020040016741025838904426688849595881651328600414268291487241598846069045360907778892491555817791212612752471502192315354481200216115436846263887334987801766047726829442842409069827900819986225590007480076482816418483876741724828742510033015966034274546426941551244897205712940900762418890449696178771692431395993908951988674240323470173824377058147812091011596390773243291247703841468346613194491738580094830547305417749093078693783899373703427489520796587522521420334575519394037839298182945903496455068870313115810485631087722238419422822268300591526195283152249023766981588627417269960426734953581219860614511758265347860032228554918241711306252453183622323396444192372601012940043730398173625221937931579646221656917836146037743037142191330318072176837104385843724927459090220169914314418942937366828142855469914829519845176440419058813434307216788388792878335602034754725115020315260353293669586105177541772700164503074328069126494539901994611166775964635316594531831014091981737666540649449709443682560652502108758704861038289696381004289408449497990143206535763727482419860198525263863106059061404155661654158304560736198689222231049441151864011966517406972704093743930212117078688537623048798740614256152061112504919821641965471430578498715379095002670098530701373928228183013909150455877859880821339850438021019946594525351571696246528864105250467012039773994154573738757686281688108254024148073667489306311597860856546198231777736395881037368184144690718100228580431581442887018788106329282053659322105196703046179677273345450328795837912334951537529794178929522106276262762015167340511123803424992605979997680591244490448926250806948345704896134552477919927300244954066401779503417966893967577072655056686350180134153037856334697057895576719351626778661984015203073903626510674997788359681536630964027522675897216984322534685706970405688927645466081781610354694409769210922833876944704000248951846425855344580948366908547995943504169351394689478763663069933316378805429824168243277908746320498895430392978788922578193008706479080016185544446063714398323152902735706599534009765020160227748766372073668424202974929449054986883717741324072286497070204678085524197689409113720293994719498334269389724805319792798167835133241740489783044438353167712809285960571562235153956428368278919263227262664521584555622085816092421003546244530641622333818160026759472398897928723560173615739541372627914788634032428186080314224305388155182223665597858966268167067155259735957859392670101186405148110077342860680132812426349182971890425279737878128426086509569469184726311823185151580442681168356880299570457967830142859620186161400722239948460369260210971292819156378404857553940024780387914528859046741366829587801304109730400756124480000602084861276370219105082462994529168298423512772764153656036650359301060620883819760197522197465252658443701043045279484453690986536406575442011996912374823799036881111252615919609578599503832626877431136338486386350193793462099658134501892120735184983358689289545259513671923268961331303252798103731959322398866220353633675500759112641690764565532132391901587234626203664257883282678134391496942300678057709208087331641002591095420843656129002461887336520505809642119351135271689765495933206911151600560930115619527045332561470342744790871121934316006349793132058976108191784521316115423045857516764826032442968870915120886473274280179264373651775691124522109277595004126644867313469859742546683663479588886114122488328202518834175451750282459821903461009024616995202972541268971009838424514216701171986393385357885296099965578383496307452502670096988615449279670936457752628606050988736061273783895625183883404214317676650656132996162576267128086587138322823350901083692987617755929839740888354587791147037192114986187260815625762422193333092150799081163633677787852286278134902641649171666549595458810964094744026844541816447097330353393599878358512943835870567539407760684279099612768341414957225129192981976905375316012082183830503335640972872747634938911292480227276534592773006261889533545091807393421383502622369884206726174986803497654259115274700935538872473904022821234710560312020844083320224786838767938835371271268051410929475024155063118048651470840853493223305125125869008261820270601315208478947929593408467472813097463228396487450512731643488197399475862088362264502507285421827600774693232110105082310758177745302125420339281143379321947986918946692053667461093908916231350031412212116017345588735942737926504911879672356630897085030883099155635875670376574019238353467570433479447205316746956201289699087384114380258352311758330245287691950540453875339648015649255012372839368746345195892904123508859989106440517661973549176101376527268189616624794019277887950620045077067584563520567631839450503446331568319510205729005745715566291879366455441037293294448589331580757162362259608887691207926024270555914970897629974546019650973448770859315881770803316504352989744387687823198232871863975727082868862597474681501531165848073970708358889544722342093909354975127849477472281222994024825575734308512542136081542861036589979881348697522884131401043112649412803647624742358505763001131415000321921473092872535539059880327007458677633026968289339204047309293425237013975402954793827779650065114576132877931830827021746187305228050123637184951055621533831748000500454277255192357616905791688460769071205335407573891036156584651588325844325181410463581243764169469797698617422548763443891197505215500768069038246620930443900135383187882668419858291013946418373704276772409842142984488111280498475314349085723793593611783881819447294321169685258521249135575931085623690135412361465245500752587661576581517213750715100300390338066847709696155816797944727593309687693864220230045064562091477876625529549181037369737863282323024625091459561321716874102728727512733111324798484001625676114683160849370939793577757654036903974276037425719705093617489287386792386439938820781512773385714423649264457403943438086170993050453681160856710454459578797587857366337617473734876280944713807945434751071606135704087002976074121574866002516716280075571606285366875748255023275318883578424051066088646557851196270657710916776505458912598373257427047973363180438646189341233649643076505615452500212531827966881715723296354091342573957414646346930116545061150634372631216311933169088800425786551893740207821892253129467897941345277785337920201742689771907134856036323904085135338315725549729701222090576997905360785916737397505082491520837293959138348960905003781449245737359006601384606003610448335435079262836843629272612579643954670684572683458084914527655675269952550081414016693213840792631552702006740849703797083274144554720742628238719525175061254204911910974692153978143799564443443607792349839327247961159084098873110573447642341800848075019365865671416287722789090669221004932982802569080102583919746756259012819613074245740436790469989435004617965664799549808149795129022734337400564082794987779530566317008878643958098043506165226742806999576388508123766897704512661150497795935658037791466329961601300985442248138350723401970140461393855865689190148664801082395265398902154546640869836173114149353091490225610830829293945556728449410313158897185305963475495506234497478649405635003624907761790467703610646271413706240463768879322712065044659345144766878324550695059631064520341482284987157600583267853238561695439093359493039137533943203121238422785264926265476488827997705059566572907857591213955469144825194231883369375669942812319673357238452355798749858728575490233519216045628453321696972881060468793280379005464882164129644452077045392608569386063231892897219905049067892821678107890895826099088854673428203054952105671514441353385266035193575096398986433151044583060157156174169436848557064456625918520606731274841971115264436369138532716316447110017290060854860310061419872984611135337349955770353474348731616953176747378632324641593547914685724949037957678201523826558064290124142939165680749542427356175034159428945943596209041033700072820854651961071462960169895639969686047165803321040207572748802982972751593428701934220575405134404360638680348971426293870249658022456131693574572504147143307888877108175803351118739392071865975871053150662145666562831871107752454476532328909940912029778035680038526802950186993949415372205791773306336335036926717671272656812375265060350503703113948035528753346652439777093695058777975531210318277763331445123336040475931509480615193327132367583354045182369525607195925828023140873472002631064770133677527033400473786123285203794158987958732857568449708620996250063804611080647597591935929161374826491618968426245443550041087965447738464945002436743620077549274375680757302623496053284782236056816100318398271855702501920646701281631817008025787299704984753663265173757641072409617252603373670605067110615717068223983521216335534912243744048933907055108762680841269270358549559331109550960372175035331973889618969847562333868503304191164665865952580499942778858578372390487711119387237233892257716227254997973099637021097859460851488991574481712451267552048565967782912304691857621201962820750009705102930025189590801032997984179330841858563739840954659447177888243978445237482149224268025196370046802046290540713799744987031787019212460307101938281223319615653285731575074517667806726646054793956959852355576763926099099135711420811797823585084961591318395762013614218328544788961816758296963278915109831006720180646253352327034265811242060141960329618313013873770273440695275024918808290302180116208601408030676346592661716936938542601809045683324702648913202251465794217891576845069287130602298643785482847520404462070611758879223352384072266957194537080120310721160534777128630956741715206561403548087250794868888713140070372982911707633536534765280004859482245061501759396613563063186382397384070027664721360749810451979626417242096137197571277503623670294181566741162389833743764804532897822300753588138532197812432799791635362915340243654014176455994287398308786577217658795328064172090363032483420806681421956935547696489818480594531209053731942020111365754977102786246177907556565867057453009696235313975118321256571071321807215900039791692653934915360116822222950482280516288228122427397429391650117427629755817802574508306616487058169164470698001077006937754213664018326297716224617053926386748650403276336432531001481119005972372432138216506376527031914255917532951968818528886244221715437730826722400457391940692911751644293010323829092014949205169378406733821622441341053499252381414354914342849445426499556499561148231990958034806474953888253798014595904563897069122355603509380763747105501169535492159636870420088304467045009033324402185116076267678045980956509818488350773076806688280387953280578572848430955886721835287464466400719992160747219084989820973418307869950073251978312063437607861017927225999370008472215542307733542463647250062974471121324841708301412030651138484087113189687157235239353282251999584505363803349484826622276206812022490015478115207350464270331645903565307088500563654893115155962544738035487824686802809295401738311519260237777554111504084677026375017645712943454570170958768968508355589081484823454806582749217625540219908250231509725340378189244296420657795773360165179693453296522896324540488471173712520700413460649753967773838274195951696080468170709470058769607690797093519962802248703273585618884994544344768915162585739022004403857897530661344257750436211217272303772239001704205948949828232977889139248371313689054799991691238252169280897274186410433133807240149946408469228038754520815929383746102322841277708152738249837849812019811101989757275460114741290387446463751435109341744056728281615823850329654245197568294308291302550767679009425878106732524102314727859464335860332782390961671709863621966289754888215692542842663296309588219566640598369852839943599967661364355037248480157535327140326200696146181320315772415295142790194863601625252784294737419092962303913463644154172300200862715182779278148610570764569193087344298665697897332907055903501713249770557195488720786641790459214922676448584324227718701103090962207064369777892931575318615672500084673579096878486150151784797128136727340161118620807687551218587825660593053139090546536968178003148580452807563577420007782499211837431296742430371146090781915435511877628736447285339634228656709411731827596790175317370639385606111574161134752957866388634083859488775729330839894093430664964935123059075860965145735996330616211896841355182536051154478734565240882735799536772753508857185446374473781238102411644417399915843238185271593977764579499946534761789206532703183824581339828242756426478640780817318700776968708173376791723404531513364202633274907683606659221344958739488648430393455278398297548467194694386905119725122746592878572048675275523727078531435079573289367668531421299591631244852665791078680506894391974094090768362749583455074899478189221852015516066032401887559655952332525162180601396362472104965427393068830479340417493198829380412915786786656585971334371196595881740034815916615778698883174440764388903194487458304006861985068013114254223672060110440085758363372027964388537571862172296669661605298639869908039825972345015955038656114976617222544518230117228099533852551914350309298464792201117003060932826201132061079606215814521357488040099071439666432575081084228681036063954569602385475922766189107481922594854291436564638799675318406707169271729189712708592567342430995290103200935852707403335819033104550033901320552144490582470584259195515497145568467390865177991130005390594760348293158106846323759011328562531280395640380270016708131375803212397597275050657608421816886491786365856339825942711544925926843377054978282210464108275111551916319152115973708362482405997636254629804404282452582323341317291179983809854808887235954572577778516330722775824333774574231447021738583644253788109525223680256668285548926858663054856499361176134758620300206235657659047500475471387246003729103393533677581873536135035493523255050809749004509042349446336354176953347013653749383968961896984642513775525034823494749647653486621254762064254563653318358253275519476440022599728636286711845118662118503875159343378852487168122527427050846931404825561155220487461885860785597664030695360080774569097729077823710494272481536589144408525997185628874058871613636072455802620483194376854239094620724893343284081386549775182974508013947119357922677759924416136023337619023268287589799315981154675206328422176729177664383603602512530604240418381401700109982605845797023851195948011584887654392573513619265450102804555300746728978690780382941411681405176911068487553533307647203449991544009804505403777809833911717070199528201178519536656618395675073095435920211207694772467195008009594202475997526101374020879229522452108937386135339520539802033077709403467321833280987341108646085943683156499603285444337200641646393343271927544417528428975721748058301532759264559619250307603635119383378081120491110722076749973509602001719566066080291882590733794364672162953046158314204814117420404923676839335784694774145697105909889219808683422990107702625364692172456884986381509363625511818873669587484552897765323942918817102166425284124827828344498296257393153643749180511122364602200943417801124527741560861137545446822054076750886803128283896747659826430678264987827572567028769667603611209660352019281977342572348933134733244489612052010414620814588450462358543810627961583604029479307065522738461731983078026953017506906784625462364998971826331583414111530681171743098656160844890166158815175966955498990358722475566591706409328850336871456442484210749147936712312005138342554517110667457907882309658204200567452931647779965111564274142857923459706127152475019088823756994626686722283181332143959775927737871326184669782522744445562993390477012709233887590101901193433684315356755125259801471502200200641669033205556905405764876937097600379530752969075575033564776747152118386378303913740003710309349533401514863827847436660079785165976749104465967330136213038768056145181353139793614260682329940503165260216392872826733236126383306122201924936974849482364909489780193608499771227684375444866839746267798868488874133747320621111299652628996398707647290016708696483228138557522340201568980808370263398362531168321890662149606877112776234233259513034710339994527821453389726236626027464845214960404513296523367073813985573679487781453255351983283616363656869651772846286946712541548956444004473999752134056706704726309785877378571943538255005884890989237649149267722942016681506602411763632672780611380821278566334381670913510990386181202716671713161425965729566033496129452081352553462669001463515420816004002383053721906074833092475153790453837288537317472506020273081048870652365038038402159521612604679569836160741726468793155617641241262911063136987960372509058962078116911386761594919720342890736447597369205791452980702408412554047194533332403752881748312735528366699295821048571243318390507005339761475761497916382783808819986514005243531666347466507914392632876362767861148643297240914196730153769577776256450389682863894899468506808777955208638560248181517314182268871169891691695512030541413864210879135634760022651815362058917682298769442154443261979066234693624909320532286533195299427170175828170975038395820237184940078498256451061028951731817236555977468488983272183757861731278668235062868027451002324164138839115063124863342354521366668283267697023185211465067566637857073989246962104380819091107516977912687314893028592950419639602100367514218769740468555014512932574687927378586646306338154724313496661841266628617732243071325885075580597468816448474944285106234203215293538201697338945203169821907526736451850455029688340181055819584348195104314117696844920745734909243627415329068726990960647886015273928157325986784528143020954774295611668030021808899463522541653396887222736589655192150993648076901487444733286932676568193301907418487780898658492775534667643684025141727358762344139492612195825357473799338073754781106073293903539334437934485749932472382245842116452184471970567009240534411702499919090758334052827043981084828237926686191619380755850502453727720661972188986882745970506059502434802520606694075056914227026700965564273252841600430312035618816190412548530815605755646718050970477887756317050916223194909284386915070319793548733207350655637284835797701359017539993205032480255664714812424271869183854790049913291038685041824678060697063917962725662571374943729732101652590642348669345084087026010957839436909262607608157201624604231467567458260258341666873289999291057258275332554250205665793514158280645948463869057788980783119872803424246414616193982316885877306300891302812369238236645744373947938629697022909593682259929391792955560527447393873108612852339556534722391179720815447386755440233304380021213103311863097229320213489911188992386537488012960285485074726251464256915999442766942895429866649822747252198853957542651710411209448237536205725182013045536675427050182986652497890806407169133780321529893515302750726953655064139028503813586376781761779907065848450700470614369418323384395182618249995406671573934401760041682952308524632251567150828032221425595408788470849066263876830437695648437148536773258858268288448468408236206315148731988111588102307270920264615749507032484441089406255986422953574972697902960307546364888894086909318783678954984167372460437200250595551147253179419080785207040073221755224022402445890803422636007409485123670731045244102881162803346970654937756464038196391668707936664938963166098353539245700451962859377293324920530572375341182951161834424518538181976371465670456234733071867282052645637823952175164986347909689973694390040895226593268158657582342140021736216741641651372790350752599219699364492202695330344031946771771239238970343604950248106638251590328595316863895416730782552959463254436621946819408272934651605583138700824575062881509881003402644391349756011667346841062213596987155781867066093843297042965202938629173812814215333709583167774722332068662774697408816594657755157554837558343923666403190715704341989582366476602159498089431676462921446533536288254203063584473816434481407904280454648676755064077696880597128858441377749636110716192292629123003529468880765913746105547459557939007084085503286123141023407672117685660051640536599357347841405809693597240368154020701320701290396940231696140994781468133135362907827348430634343406274981954102574948046679738922596552250146664921803930336305344617098420257052285144814977566684720824408173751164756391563051394126448395202353964616271829295009083018269930032927100579805823409887326528590761318325934650761331254257597614262425393037697728441263126145150962237190860403313455157565058850294958707568426485251247361033793043293262870644765040976761936143989239441571968167880114933442773914172653602300547342979121850424501313916197212691672159399512317422193580409567580865364123152788263083690022708210222618730482734809328618691624068002870134105017409773246312564087691691549407321075102068239997345668316274617029272006881368689975042171303763263472911004642833356425956475309635237337365244387899971283801975730350254837105954112054073674100532294416026283482821285962361143239970560071049880532401707784925019689596521432165068989097690233700597269931621723934530344239851317037925400440450840274726233799300864658838817876209800349648781889746038244139414119757959364435546436930839069484831730738166064369481807331086265289009945386815466153568803947212014684932987813807430971815996944944574012106652308271417975134243473958626151412978079994656709901498163888345664161374972521220781467078322082090690067192678695654436199071724419264829925922427553591320915776882591938839840263697397377132379013648714661099899850800656434230986690436903516369335327782838122418098648428414950487067712420107068443094219704667586566296707467220211036707079300693182052004924659662405615714217843156839410734033804295335760464203488891802512698248465201966761328820613358991331167898931438907302348457595191907473621466381506003136584462167003582806613441906430153628859984526156535792432008070385752891044296864193410456002799590431758766061569068924567312806714624528002870229787090359639403343092821320751866215550617283916107162693834974788948764786311562225857561120292270240229908916159440764172435921821636912372958112972893356400643249241447408626968287405310357627491482348769049888021441956889326497916171459604768325636676576153307397487247637479203073850329831212922808848153217262488233437832167850450629445673248049428199801154660030466451525547355649993587144523746929693028420610410977318231466524926785230967648446604066087793265803997557869384038219183833010143104326667477042588035646852993495561432050802079253058783756324002490759201131527784018371874915632737869288595001748946892534056085192178950991973552683252474234452929129868816044027740939499095184536949272199455013431775141649373981908905535079829012209063395748123988615137513971354825409784338328939544901677274975929136004620152011161687191809497563032965342423032177845480376059434484941285004342640343876198147464327940260092116610986736225980585063437996242150667473271322484805080433403594841933982570591312262376520164916191330853042498992180238384847652566100363162797129208773408233615260980584650662005477498308376384824432385538553673862924717155939519205129276437530217673503923773774168539737641493676814831108837080657600240222056321511880069567472917618956032657453212510593493037320486084623870073909788020598615276354518940107308737130400300887874701922401990051787782222878035053003256134771069754586660669791634568048878837689541357642690723061811326678339784478026444083346321331109725068086987863670349970149181903211075537665313759570888338120630530683260822879387843592342242208361021436865152149154085019068051332514468127503519559654515080254348968527202528874424299609999112603564456693828793023717891458630213573301425324473121259994194860307201929252802781832362832236977813009715161404145727617009664173833303273345741077577399375702661581290457930605850312091970604005537323233202639091701916565473841853515669194710278974842059299249656230208648780979379179854539756211883233954490500403801490416878137345731131198866414112351137192565326511591078712353523200806242071599100562829727203659668956378882626307079880132823303451133848710484506655257377830358047458050058435505741358254045260142321385236894393338248291966556570426915248077235538666048002657432046512622522595834173373453107839622302010984052591292150511663309118899332021087982000992848071575974655359816645268116928285995100637329281294601412334013108378696121437174757501988401954398510685852793876115362574705905207573823180699356932727466878333955932710605592887900750009751945100033833180346165677094523515283546857024235313808101471606999883723254803162719609596953514308772707603416524212816036243027984977194312512452395942700561541273932526648351446212225164642416889531699754184742664755010162812207913457300410372715652179466586431612599128009908917179984719186956563240962538254612123360035363408532519768448889883538779096983057815520074794280692959009475835310649553347983549440419358080000311436138715656618310656604498688357888073441407215861281478282417878349830678779401784345293024140174518316299648787166855795399636766403647672206430588492014372842206483209753359086252224903226672473669787658641979601822628619718914150497505500797585772140475396086475135582385067420206185814290150005002827909493930189869595966894277913897047065577126228839702346656970697557358790294670556846182064780529619284001802389483987360090819392056520534409079732234299270989977107373630063362262313677567906451612782431609726036868095075268782129988135584458554129460235305094340955390101151741648118099816344156443290110935743795848369669009747451634876012846100450837929140168642369276257600172956718989642475968137683902061030828711249607460408395395208368908681236307125015558878225765342206283178053341961875846019824577658059600074322970460059825841573511219893771478237434660872139723766386331859778870870750612892998291512333648306299894838721461773621726480792287225119527704343745628011341221253946101413809468260381438078664674193516237436941174441396076694938928655560541540526954802306052401605614175678821041627028440851355841185836898405237665830451464383437520192265922350269185133567289955982018201679726370466178281746414411573493694058037801436614384947590557220999538756558730544625042821018548242479543569556538448869568213407777834998641612801046747672631646402528279705223556341191849959390079917202230424364898548326425917631517849575758771471975538233924400545510754570387143056118168374413896418774915041247070999911443586853088203437365187259665370250869837003110900740858404239826976101258271011887447134833001140889409439916628239271072817782768022081696188282726195587447071821947644115713386991786125089386695572691600552336800050143742877145259061250214675419590981109413296925129011421268595497544943034074107179256634567976476903881015534343699575506942910126630235047912265174890013697856634920933238553923921021846423588065300196784698420368073137240398563265071110925696427933877157946955807385051832110458731162989128341841020689200745792797194928144978104716655388217275476780076141758572345517853609478203555031665995562134225509191390222585330342353456649532475629152228230473067219012140579265153182267104235389263904008665195458560650037830201411290981738175882436430916210746455244474090311307385368015807184462425655510184649845974643049098692553153067802411671883236529499015220259957248698495026458674851299398755654427488188694136237617135126035577781639076067814744454171685891716439863407368728278134893283287631304239107285913707426818243735116331177302581947860887293063401704773093541443925760381080452037653728016040032626575935502547779978365494177590261176905984008637881663618497654244397621813166094517049223196554253866116256814903266784696347524065949933049350648309356084586240203947315558128205746611180623815771844522230533573887494050931440644228771788547678795769612799918265344088785994265730006512021271950956139610972310757104648018799718207238844193857913881683815504773108009099447027837703780226014278143181415275745082736331978196489924017693374038437125318145028404623313927477294212413384312311802162381207131456213893877000740633546568004624322704704426499438730664816660517250732413349234398992621130926000427818066702418189330719431853002252732070951903238939369745398309852251646647364788350097949986881074465082366221885971840130846141681090698075832554848853440157342066766110261176689957337923825634859804093911273140472948580752918989373701956960060473311429393297939850543508327549654237521580390822216999529632680059111333494133958657606960325583934963552292783965654933004200745755830650014884733245240609740407275572958322817089913002960759939364647136099754396821411258636992630591360790339976398935968633402290951444269710027543003198531267718604066603430284724740085043262341056889280647765859112099271183258386635098788866190917714788594137452269333925044485198579644561101595396316214963006574581056015219454356736862909338125245139964608843301408620014684033056242815533689025044147026191513368234749763792448769687486996398377523764002902617052076711484618345465426601604066339672838638610251528562822308610699619816244639953769758062512220798565187586044416108327560597168803051388011630951202601347034621315888392687155576166754363637024480946160170122885414727853333085988861424693795906939115618054121058997385370217042283508091244184296993790463349917068377969665886561770634002955825103290987371059909088861098604355251693583357550787845372959202672837173643714745796649622029067198674383500402068169795208015268492171582146050156216989880761818980405836432300751095941112273152749129412458228860575629717233989291748309908016337854224736876582134260472811985902061576361580613725662912041920550360537610643422408822458056445603792815889354811495527760261788564328810394397403411657596715907863219863889319498546079469664654430712372924338312566875986312681690797266912927654073026940482261025799278525455960529160402437243990505058386376264132162369753865211398436537762204915073508222574004642040757917920079130818719751990387264150388750376275040637066475726046626133826628458420099597974702317599116815180028084341414858316620433796933231447268683954207427729473204789562976297300413025796547803162277441334202274348117787285601129372824050623550889605955274739176805600188627855975722507001507965454013943474006421021878981032661072498694539665227157694617386062399193822911638984477427946969713411229400826617621156829380051895767957549399461261131831364578244245875074549693776520282598295677540272371622292898678859864859203577796633316123219168360359753603126956431400494219444930191144071160883645114703366718552444723092536478808989015308819866649641541635395422485126889654359469597783837852846290484741130791314830748385685031836696049335923286812793548548385459914744576197176517165587521203399748887807384909057556891875757227014262986083260781800468966000496534256983367675932191676750904749773926491139099526011123009816686066338912187153909253134973454391389868227145421526854714561202570247154608645887838873400010380803963909774042205842933589774271555475720495954967112354393428296503763855998324353443114882008528338637768693152482451802316670910728566982530358255782336428529064877649052252958501796476379304467280920408039912012678998274763581462272475472384619617639998692148704259906525934238521244255641544405415720577387757405535687719870474751624031096596471203434938864330498142000680686812701580897732585802481692102926848047420682647377333670395158038403191448557836196958126992138667434407288944047659687830644579364857771676677640181339614396153101380106365798045378191505740690279438577553089817464193359571795340522630251949775532652771868081756657748487127607648571488797633832905759236165468487524452815508960058359811907198770879600069825374681682785218029557738890793821184176320121547037835470152336867658319498197488254580625270047653003906391385413080364934067037786878212169475427631604887548749710605892377900077964284819431683907897283054850202357512536199207972298630667535265595033576162927473946894580712089787116219821138247481717069572538850170310525785016403076493673824161040242527771967216337688554594477709824510493968779142192674970207461282560143239666725436428727832022817928394301871464424816414385393283828070848652755779376476197703144187705502447726759417701215181677805433665551416336653552445354314235531100266671965129108001159594875367311285895741229249165921252679614165165795387069606859636579384738642935880501278585947696975318982232950660085475562981790504674266221356545154893727883344825456822701602078317623339239809529168286290655791731190298115974031362674045027473863961733103974540909776665440659072285060088664687422361696751958022823746163013153130553031352114942481567613319729288665122973158909848562585987074573561614633218070220396325412058790483433492323081734294633656061898755207190296389314450188839315835603173002797226565026215634416015514416017221272414845882537131251328586760740522533798191060306355217060000615411929541086371943670625186905994796287601209249908589483566023518485932816076974327995851052286571651433609743726098423373525613282237622758852419703738774694071830375412646327273809687049463664869248347197029130830868631162932654819377148742016083156499514378029984920694761753367270861632822430323050573008457209766623205654421790225282551697829370227760523190256344449970627795058347755053973413312536035290407227049801645369855841313053162160575923962151316157394585736289162314869322083252649210003391127443721715453097457275527401767964054987703587698576926883502376637955794789366118738648767978892600649628138471428031981957543072394766769659887461158970222546010003554534242096163479365110213599674384867253574546090476100187541113388320881139762104531604068657997129971245901144401168732319077167815559924924678308908373970239370146228846955281197626716899417399272408051873558302481160485006303782902376340980827210709704260768708636370899550006190720430412870002977816268589459939218585531680865680973485868451411221818795137882789252035144063476994277706024112930292673195204627996237012859785622247603465533478350388347315290717950731183886022202257823943813364870560029115863315516547360999820751726114132139486386224324592176041720575753474630152272750123062223536493628620876090259895219990827484856052309243520665912644776947268298399561721512514464193368600223844948751680128243140006085325406433436616279476265544834301272867718398636964070489780465448796164637469025173243945426828951686350476053478099379156629190691648211702755325755276902408783001566484880487320395715691035562676631181160444682533177579133338482015819475599998895227780777751039806189127949596702783029625593976967727792350550017949848960788990429154289778542903742802410164469970504217133728473651640053499764005618252811878918407549366822045810377674911675502872921410189811786690893750325600844970352833547315349714317756902589557617403988773835686353324724095782313115508099801169654587432023821033918385880867952488879614371855690247507323252382883411913052826603861449406099610625982969348329530240873881334144775435611840027939616328018044890120536259308913825998859532850405202920654271129876293073683716564651948347820894726187045033410238669827308542398649253147802790970778526558051795888833170372949425268589123432637026535971634212457755627310103887271905861244578061198059459264980819603051573255226741209139932644709134882581172313039712163898608369883688325735974024147036982768581506338803524271217412079794735575965945530856787532508076686802451698995788608936852403284805803382834749711358154566842421415863619349234784469563696956478978814331825841383273968612118400433385470694619733998410225719689035228540458686175533097739032975067091344552322139557290888139566603964664786535997396055145223897647026375134751837569771109204401978663672863199761922407665047965778219599035239592447040715987715457475439474895616720994912186381725087937315849094845733738078157327256981066766302551142310719743206500850911163145869791335875362327464184208699481740102905797119509623610638447208911657701149604285235436886093363380828520854318477290745643021144434020771179306823612802983440976444137264835862214065323421159553044582706972841092572898421646645650156208453861881940903072538186554426811324003089250809682857118921014067489273514269748579251895796506889412143336472701507950446290877726738590918617015807917778439551820398082812185368146804031494396290790719127741806749834469974347519650336239179317328027057180972900574515679606470077776893143581302437023143587799240132603135516475846150973876437983697772415488407811000048688160308870434168358177282739983194216947393603807270885630637323731130620465821982133771091444808198921043209025040865330683943366415941401326863752885576587781502652546143026834802809833664031956185842096055068306094336549853934760818154661650625257286535507199781093993518640989094374350210696102378007194403361101588728211391749320268785040433050127226775702190624938266303508434983205040948010459843704008982872973842308359501810860033894910358661852735210831178796653219144862830987528038565157306587784228935983975063174280335763216568280709001192785214881324366187443306033620948872814582631745612964063269307205267544095780330732997301459449869614751730894005879556395992174056133421413391584044352460514601985453228380516349472568019494014875774595149375912364796882840041595118964631880658196341682722755784017970030946508777379802797229921947239463956277253154242429908665521372956038374685599426192763430461786758684662424407066103834822519263400001209177976201417572997577678824691929841230309738782245574614227543344494621894635395255610173753278425741964772374865457681755922536738302186774674513950592532346544742176409592502109893151124509975622006795639976927500458012037509479722662849880861302078796037966161304286778902061217885985613249193318848011299112064793805977324249483139222951663069826339778494430979315188276541498413698254788771310385519194300377405684668330561062823736778532317912568591739283522191478887290276584675460666295310818841327559862955947556773156973490443488625117003560454890228469132978970353571752754412534732899136404835819768814903987316011981075127423136746281063746513145144588281640641294929418020684734538525035011042188696081116221424013737727431100408505100374806452173524638028783606689488700667959256066207266221600769075064293809489254123188763858613463686360833764982025043171023580471925935705281251666745208183041180450362426139333238767439698860779855431981929162712633367837884919849237392905159995560029398662339789741305857294946330580969534418151068129791534193023497709013670007279276944614807131209322629045625347267851469066359856936067976629717742354712222964945241879871637990892730943576675209967236795359044047392192143277160501512020388209702585119474294192180606259831407924498983873180489597803636027958322725288311927376721285110226058229103587013357994086041354071353603808596142075015434009129141416900816084416455207022255638183720184435019472723652909675751784538991385508877544312404131980250952412968235768086456059779570312148877311220075981028362188157449204878816818737600567292955659355694655919334923062157395546849121443696217908073395043816558506709855453041892840052846523876484209132717843491501149729252658837212127855781017972872925156829741835076874388458109015154018688423126007528818194070364258660385844554377406388691622789738853928785923966979708323430443156801002920034426369293204152805870361935208266193800023685625557081869067271985644268962991247895120916372113732713249243527713148171441873937252027567521364104709505325261700460196655783809413882320552273813684583813245489545417459933672843283252923949947329914223009964690727551937776065685365989005644359491798060870056582175281708574416134762456833060106652589401739357063723441140905042970990871268293561811541794855042094154192762671466011871415834323739646845253857445923043497757614890441444297375422136457325112906199113387045318211847081274990226293813561276517283831034948151983223317918690267918285007990544495588501529162212725029553097122096957332695859559132095926433574620248742492224734396037493707342090877392849370236118198323243608235366315064182671728095894042075287498467818171669056613872670294665156908107783225472186842044984151322072405511976501889452046452447040638698335138690260070839077587566097360416943407214531446293079513726589259106765073191265550884296482799479748822912793657681153379810252179531680038167744168758003860725962307569586993232713261251624441059111920418516831387850985638258055652878108883386896018584439100515055743034519098594467057320520606010388263686551355186196181602241008885826371906971151019831353046930896063329680754780735518178138723672735998037582386310190172546757930935407944834330912259723235789753484454064691784244786386775223624668018273851827906638209536709845151338242795926152828205461750059354912007877320180225797072947670374740900436863607996504769019680429904660309062475454256713815702093961133104919853663121130403437735950418932669557827378403323282072471486689810613771414196354061772216273137112279612708312078024527705540859847985341141957143968301778039897690762674028406108624288177051994768919079783494629030289866353642276266695368487627691604439968264401499045135500021112117077347369398802838145061102732308493744793927313270134263863012270869929307193507768593221649227201406758047921545798112687355257214565679768143653798326430832460019393816645601069316946278516393082670888180058087616068887183279072078627557101990366111925140579953682878284507399381823842104781555172499493404414552746668564491826215227168127758281585345444432937773077543855716216599918938963803842323663023723794643969058208709253888453119971357171281315166444376476738442299660559242333492624382389237321555927258269430594240017322750076095728146118421582331910294103745465944887964767856945812606729709238353539938122995712341399119658998064788616782124318368646703437932816516217762800839132391333789771130298113300581481647961617288327830029566807475468478499447000462340298847784798229459803817071792203756734541080084133845834158857189427693271695667673679057351282706282534675687929442792548985985450107587397411181914216143606031333870318421495004900084542044468713789385006476187318171905563614500156853499902280239962726986379496680671914533267916549000212139206488470133692156122767441470963863452245733148669474729523849441493193028302697423960597619630069867179130761527346051288095042929750450828837179779023310401529566783709772406614311796566737249380280669552652528900518675578292195523268774291966966532033229370076493662166174451478742450815482229840122333536910630243915502074092191715920302342278702189339111341341271823801320958996049288497628146009160592572146685358445406542864881844066437093420785601277746903213328724729601772636005771558424448205607786514525661538931938478568556765317940863580084263466279950438973554959295495223508448976802764461839370230640080799968530382648689834823717651881319063737918625652407826875541666323986475764100204075411897268794492676411800363263607761303025902445035472563418965121968437529403487686486120120387813065618430034213495991670878259126837053697009087059911175330307802711818752982488294257447873293369538090923079794078838300255704364388400951052344828567480709980128573948662797666189626418398901462997443445127140447426277890924687768223955480189832548099878114465905655637460301316701955718707423308089762698650896792859347917208268333919796972790089388614549188805597373188494194831819953032477395407189172134273726438120289008738635023477766806331974331597588065635520493310132408318140465940624154087765818967702545533534707343986967084476397518561469979924268250717055569632638716243263779322212009910425477050509403959714869959906471509514926303813718099057269349781291689977534839844336630833084950039981349802248289972050532018764383953746735983073950462475298903518340602672487893604934385613605838506914420656277097679010028086565629310290325166231432485052608532971134134953496259537124692254890913908609057808168574707364061845006805654219466250280990422636135094219545509654382549296932179919444017811839657859659909926519011513066300689412541563445696569271795748477428989360176727038892413268433394402672457289346850185124307926833847084145198221808916883986145934009252277504982107897263427854416863921632049101814321162618581007532347278912633233689244653705324261863475467870167136371401084012206163070909450975984546385143887701707829439225122967120874496450565675716056520665105510535721329254146372094628280960050398154346128512638680752675791097224501632772977788848655955871310232552156368067832662306374971725321905436575430587437124390977139428301188364151682940778878285228716037572402745153357400314143053751604330211434310900489034661264822007195664586083722717014616684527093134414206780555987127919401798505777966240020679657222857522702841654782410254661270740831339041495604053252127940564421295953953928624814530124663051618576594489080110377256604101814940014965049824875627399351484553253577683131356707362546472288541716824050717184602233273866819522026570849201121239717335717728205608795511201760910398713157728869178801956752669438377313229109543167838102498549195062308490913389525355511887355531838886094844169747084493019071086251705853230431399791624872968689107293918788390963187857292243037141163005055962664504813351361152079673330733546800766278043030140150056081882495477273350536996107291208052879843332208288290197058316909529422524127646284105305772899841435471934131384463622276278466076270671774486175344025097214790784996596321155364304809485924813139466986797193047222155984920117992848030592963233370233569563571240908224705264865130797520097557726732151012386743919382475190468356061825732007772681779061063707577604303009374042262898745458636388103189700602910632945269201997169660400608650762685594477930315586430772850700279174160516767327990668132848290556260438553707460399426560352884111913479458195208137607945235541642335768251882111552565823525077277561667716976813467743735539687296787058030340272311244561907657654872127155155403802863866369564541920780386159302643288415673064241706709353444949250151295915289578971597744425508633045418939556370576306740035481537452371505961857106166004334216166070116354973404561334610027446960727795133838980347922981865532584755662199995976174942207497881360722581403218162163800012785111488639049921791216051967445196141133651758281147328683667428954683512149018765569793005446484734555672867053136553871979183941472521383684678286465031888343134115977751007442125041724559912023705558455530320224934236179623465245127276602560829036909377217865728615195981572091411954025916014756278683003212897542625073872109004985037138674869430698160390320917645096409753783510142597054155094341925371979594112211435368655216804944751655112091294542600462931699194867714073466995008966592972969556195623730033369377700256044427111803339041373219383194991092431882484983845064391995254634557955516306694418378479294728625810629199892760264137955489236996360617547712574624488140760091410931355645023867672243263507421114849007620203987167088007679418681571757198446420051077786679623359916135262167585855148203932491021592573071628431459375644325121192112116205029229271076425646852376208343468276921269661083416202447299866807301353319894936258630015906578401931797214497670921481195629616014248138740378600352566996016978666428881802460236720434690480288823341375399969292362854223913886697969163202627686932654711306474770723526707786720870937866375548029818946252607855646874715201164743117316103315472575638160609471435818244732069708397423883059303478937987942145486456544581008782623627976432857358761523206507765174627998002737994346848443547915694577422304434441180962400666185159207973959978453526320184908108691226498545870507624342331761485024757809798806258170043641265398440515097839717734233255104273892058401257577228052895183789752816917769213804781096264537321717674229941833730532886592915334293544456283049492528687848049060300520623022480510118079603653464163376164429954971330149631803535712191215755082445293203422519161612261901234046739568242794358060287577530103245903990178060881329670159789275110743996953808898461327040893371563627611119185978380577494681244304865625256733649663969665961916670868392661140725711238159741260162889088444385915395723456454421400224678483830370631612272871906008431697891717273923972323196972111789464331365822094939257053154437822031216237039220827551363983653864440599737769716122827627220475285319350062926508963645005215523298954810773119399072471991530637677215704063246721169917063551939942865400924167207474769035612133504602933376591234339227615501797011571999948803839646926314204408057189678490794202363679696147647871776207628883512549928294744242521229453829046272943457499861625297912242527460342616795198153322899164655598563708581512973650869898981716941246455124049162662357767057800667189721387969224327014424953458743820768124995329755706105947771007064377762635034032476019349279600687825865565218756830136721114955669149065318956687310824457561902363239870760358763888393524269328995098534703691649475735995072300216892510779834192287232114575719951145511018489253534839788455620917659509263996069517476687103152464615194263119262303367304993396244016123178895994489407105520459016660706848646622088536749926409357134730521615104014388402322110829349663018531448737356756685538257533075169091706627787472054507789827848318183567627839386338493426394183559950536395071288697128723977067912698993504673710525509700782830937191998590195953534343565463615909167465942111665397744487666881488856335805813862410773209002044818919028402933598057269086176710757223194571186114680640998765259847295235864416263329792311148187511974909080344822579810756972900892249271746298005240020100318564574664788169721881877992643834594124496365502501861299740443992251020339828626209814986140244893061244279699010766464757226196261763305233981056315862660408882725970523550609697349317727329436135225616162891255547782621146327157806143618666315720216350993208211708538626457890564697608057099959574831534212200285150936894364725974944617497776397902277545237364028986174861214642400685370723140124609695938827250986568502527742067415515519413783889275725814547587107644610335817776265015991745971301262469631869429241229446540051179050836604516158087663565243916895329499259094067539155457251180268796487783338882040901032560463310271605881795871330445264784946712207915962412757269507151613316333889024611633060761119608011252984223749185513686762125140146584415666699734951685201838098682023239065443901144849440794637072586911795537662747454017839996879311715324251416093447368004203626035550640524397423234958355803379888160164958447602270788143369722545737642890281644075736805335739054491195587164668271438838081615328262560640634585631556153019471427796997664795368266168522500624349885023682351047177218261334323848272368051059609512320451993121249181931704650335573147458163803775968097413838059112192119146202239198402171171524625404621635480684388345488101540636846664469409799280847736930875055622527996494423691498319186406572248487021694715064756872190539252095821839706116517526795686959758484360379542536680025367907125862781249089500304954197289977706957267963810130952076691480007223029128860704792611673023533520133991639882791199980090338711806351415161032725928456409169036737149158575103947624903393200361240686950502931484802081819124951561714449249352201320701936385654947971389156683423561828085085580220956432598549953837657879427163556340464841456913934944040803706048996868794900162268711165862060921120350587341835472264083995424789632569106348535637166895905570304155482943227033126676919310349360007356589606671975236624164200966378102720222458730176274055587448749944205926458292909856384880792050913213533889138319041979552611925577145813630935013071390091032518523510021215572121236137750928084639960326014490866383735551001630175357767529896837749521696658900822700200547707153785316141455742767223230529526037818292285442622039656474835826431874350059991083406370292899550563568991076845589219553306920498556965385391221498607088829747261727593696217711319531314298713670097265859514700840210380145640560295460242271587481037331534682543277577930418776861924705558727569410719182884976578181658661129470901116671948986471984803798601738489705109531676623056554960482709363477186037274256833082835730583122663492808003881837022430417014271681326315089061619004659933818021053423244888811591188342941550461722876075574918190179560619184758289452538561689660760603412303277962394654643458923377575899570526096673496435729426707901455715664083331948779618259415333154728311596299513537465452828353371680625965747810203906538661737979033714559934320637758285715856590661243197469735835257152821081148373271005274512173109493292425288709784508859795281340367572333343720503173497278090492824373577848546225946601413232140300793773587720611651515434120239688226380693043534997380978357361287366841452517793062853987156589820296585928302018536514476525316622469569496448726486270357262381792490662809741467995092604657208851971465330983700829133756023219294769351587107190559165461486778169902911537359424794541760589738578307796255657652368749451594670884031805290963730370194058371885506326825833811861272471895229793531833536129724465467613793812924263428173711407081070914164751817949170679225757161653496707449166092933779820488571959163095836465452461830956636368204421794695507894133270966619617132210623016411572026141596926248134849206453717863005048105343823838717494052661559125424590604639221249302718911008873444253512058454602681916964452548854053378626120672581673838992181205782861183840858716560738530129205831910226853793610739659053160394533675957773269896384331349981197853747883124650207622099084095006100861766597663807891307091379339631505188457294856971915873986073588036837622275819200332588831732058152815119816566035461750786330495459516235260413240654056402186286960812785112361909070560045281223151781737804013645959975285277812710764736860689321638282603689891092850577712632324412080223450326183528744062356199050974596137770526876390283674737798247200855074909123619677287472707198328407076092555363954977744230749628635405196743589491976717386961254640354657514850530363071012779195733417151418420061360910702401102739594066217194616000963097461556852943130907811555820198739631822384790128612715833939410027076817249158577963833786496961598188757073333330153176635856706927017356126287934532973257347618498608287685214015861118350176489664701545459389970453786800680628600045700884622215080439259635292962854367257152511142245924745723398632334669436696639383873257870905483781305448570017988333031962437222165413869709810915392687034938364105015176149904821815412683733447927450038878567745677990706888427965432779565321446895899113304868910665819420695937738396399130727387117049656933816559974504866120046482022965244821461546967430633252204317668660975354416693567750990929807738637637190973105907386219203915948559672915323680158084764908921593486903255561194795814458007603148977604220122294106653027671021528252697305279989510806516853161899903892756885921292705290496769865217133165453930135465112156819408523415993152617901613629365201731105793898668613512876196375375596897214092186262860865741491771799345290456003415530333507795409147674917407833717879482600891082955856896533978482608529602666947647733789161297822954993727148565332668028363419073854280291420214591661244616415786073270737813634721739019958267811008877212705448208911979322677233222251422615841466945684187063074067650135952018696207855306047866278918659396408289177788633981011634216882004809468260337611190554834748716362781567934543322797787930159049521223642402652412952242202067897963301806766951874166272777663315220961038867037382154748401403120068029426434754229259590636854513991621328415976397643746691460555878540946079333629356590847129622743378076763961255017979104752709436130059856704788185126855241917589839046361036089129445183962261088837320590587514776932811274819378374182557640578940330818517796252992068188386505922403988289327516006299459976917514517350755791734076459825927985282080787873380774856137757973583730706500961905670847718648584794283466843283248582641930272266493054424638127563707906305090179011251656354878778027458960919415286376159995887623684514950361096904727263673969440466373317069797066841915249241490672024273800075567471015949641297868900882596815421508674184385846907178176521040928247755492962353575753653403672402027260114330825400043312030826225815028860682166837571013194636869124794697324333397851133059945984954225234814274779580887123604141393703374173839676054235915618408153531746505643750396462171067777470739029523921224721933593558476649959227989268783860185537102543191952855379039485488089083137389263719462242911329341224177105606806655704132376109181380512857871796577353701056729813423488797324148694823142188109709509588058445748819364851167579566011051802497452407682699324141211393446241631402968518670963172678504216317648097518355644578481866515530030832534447331190257756389804912305411414062881819852931927913469625693313058639990986702743015111878315674621310944994264428172325317564229999401990370832302872772673328355409092425108335527771595651595357610148408005810858272992647294846082578947251658967100784017942989497996818181328541681441378056920894527300446851699067872048348238560329749602529951328130002661984564419991651872855601561859388973022238552348219827472298164536224761460955401501938157170174057346166219048779831599686559912396854542240755856750610141000081632118154552565993936914561208964127229290001937330195616760099257056348505725252004581162400935108223222685444292295127330033547379313135756835170244391438513751981579156815853269398115906716615321881812904427317776375408499227761630614982999974161037416359126457105817850349968304797520789769288253717778566946978553188843060599776697561516559546814956427676594742716715805824470392902046179043672654659027687897031642466411467746362011041417324770503832268500492815710629980337096365096587398897496875103938723752854773197131727413219357388256893237141212605792646090847892047300733128671418448520695864165204370110796172371669631136765800950735101916905798519021202202446018967264578562401571074119317759876450290757096792417152658954686913268388762546075296289976780530257197824369307019687165341840832481464558599901292263796243715316792965374355458591432465893725930272002818015155330099039072635322045038513082331527205667100925218253029082347541674720283145022302948772005477171971056065907743718995224360991556581161029290943278420978577940235093232549034092675922555545637824407250031609125145185658429380612838529055425531895835060746392233017111867130415225707680706562117926184411167199228846805501705900095472126377950636186316691736831249544433007895359454233544346820448768810372334950755968351864719543891545699813397115445343341897540271758777703565048637423940603530891612786818116031954958195709100808378412198221191184363706069280312862454705832389451440892569361742503906678745005450930406195466844394504976442083808548357674300083417942024999708294337658603936987238192901835385396367638799118521603181627273544600350045524677279685494472977233602344095045240327347071292424228956104165443667556872977175427404864023344844720481261734415838769530149325367024340802028524374199241525122589957276895338114808245686751302596906509808484524354823646727870080603874336298903294728233858163097514622773388081886445981394469965412806524088219332776623444241612109808893183953501411916090643325838541895762268631902967086194542031700077614702515811793073883321089792093068277397405661525756070712692213714303766272847792554821838560090101220142899821544374696270180416311475950971674703973544939256539428957631595190065072472191548357651324647363876812712297118997672800805818119187304737125625311766244462301695742952587415665097134655732843723885733411744840514959859515756182581435900900196180839863656191134716339275861437101828596959508284407399253541299899233555694470019925525855175842052674434326806210984019909960778849394274859992595414391765784771830501823906598248277426777356833778637285612707882227998757251822067001751086895819298833515600982446771476426518158652575908203635313625977678240514873350016069300055811290077831808969574929101275591151962837543917520228449181146717241045985034717796635506153319788053902696844158696821461532138877867677422149044424246024426931832998959282881482609468997326936065591238100463399046166884728770430014569723407198759732945851582004646673440969010678129912359003433004887328943652258481752307178084297986478712108367909852328027861613950890625526711029505496653751526181291540491882581371678025445439057405422731520397983795499683988721334513190976049011988584927993261708843950449262686472258401780831915419871898781440870699310964653950649721408115429035449404225559803064359863077674827856421661474248095980037119848407199386411620982778686418317640796061716390672116766866585678247100316546840329590533545738303479406506151906400750033246171307530714496971693987524927559019875861063164200351157554999975626040958445564881550367777450903390727067606409916012466766824594156607004416228958013661399459504722361040828507090168954248276968930161824957677310710299934077175663382603168465134256540178733748502141842880204981947800312197555224598402472752134220737780414750264029969843586542456546750250927480669060631245726289350951951073246218617546190396877809290233427002517492534882459326087187385887575816930715419193633070699254498468491623698021439630227281619850721156110622842207094335702692697305641401832466658668833825498329620622346237217452404160336629290317381522883148978499221792368561802845077086284908638651477989076440737760847936493354966697698831836524997420306833455707759779020379373958038513767649017925264329721971826941051829876615571170606614319691619578420635898433729765315555239008834836009009831526378800550486690378786342851662367469453831833702926744605289522424983026338557953046419051406809770109199264778966387808110585916745787523079581600247331334803993614172770306796137899591033211468005397177042004991733342836454613614970772722058470466803359884658508795123807305199806086925791843876283372182919121345281743352931796568708766783038275527779159530189633836577382388977612334555379266198886134898223886299376185597326406642436626408758304704013102289652811501045067871931937621777675100761847611505754742550966398192127410328780237898186973297683275939125825082557120427487142659078141549973003398166355884015869686722762833031288634639360155181976034837357266710519753262679454504575481954657610123562561879630502307971564141182715892157354510754731913386267800937992523854662411653158468872022662056633034039114959337089758982729581245690683262949626298744906272421729865393868161960644145676824701743968042413034008432756448710699014705561323353123760981729419885269674466066860237964910157937908141412459406065845358960836025826069426225082405182330498399197127552305641059797537328388660935240017710482926241043304253251625481379812421047304598767917006808544509223056090354721351904962089309708662680721967039974823960690637723306649713418607304544824981682557206067802386309912380981870008800187268635310249698244234507901025908594014735654293981937627647773545395436911679833038503373979702858772361946557016660099202016856878157945269351009529396611884549874823952014295461504692009513932533906361497129080030029572898218236323929454879518933699066942975517993726107431911564746940740786079963971047890609198959443402089015777646215551982814319926441814444035597884776669436464010913441436490821149212464860207305971043849178797259208835293575877512095959616737336223420688701664179545962538415643984959377407487331354690638077209831607818445350647845489493916843779791707065628695193843939827970151857570918050573401938386232944499147833434550533711032005391724195135023612187685411427227635136421482751278169609495966400892585516871501044578235376686958093042515852732368850041813943685982084738365533269250162331577794769099289846864436883265995521852378660587886476217127153991961754545781145316651192872700464309643784609686369169705855041383877913105046813151566286785684330392731957443004602014483765896762181771772286893413300766799831381087673259215596866343114880555965902659580071165348334467784241354936289900373174792248727212833067685647659897809773350408647362694258539630540837550567634132932148139379525036222269975466565588332872000452320792090046687882425465034471837763638458314505711985051656037003114753424586880148157533706621968850730277112865070862514991481383927482379712700574518560832092444634519368998561367758304036573628629160818906796059630233783047014670677838879679037135858603821495431008301004610153753433995486184285042746864715938242606730827857664023390788945798002110398046137141197257100945740075278564168057765978909847401124353117129302806299430303906882644873529408220283436701323988058454626519414309148690168916119032788983997134412251624517293821530385261786380287357510225001914583477775784958213691795002509246241733039110297398082056600633799021633456528381481745831975465236958084262382018840033068900659432663830892562993565394002798706619479365576391314427760959111672117826458295728277019618813449393631709397103473178569498661550931901609965169660915407900847349022191568260689730922754352056483360015248872598503195271904343458028355654729549460680108483577255096798430419289494255497826840816361202082815783138729157763132883752096354088371740440741336025177969060890386278339229960164632988045312015784180326591740846184907426796720799748742599429993977368330775622228292805152178172741107216960989750593467264733001612394242321039082519457051747742714165288163093242245120040267739779753502903938543494100284178869693031258187460274677971028783923036918117039641659864948058345265098334265358476930163951873974828986203686369256348311143702374245042284449189948409674795452800848347415093089211837698651693125291952385619259895687664572675924535928391717284576651025024961279856210264753015321168562236057636417994052384065038652891391111452478266695175338139724897389834244799547490587336990315421294990911722438433157049285942039086693063842771734284404935241345617744256547437089729385382025650742759509726549301130120897252856878536311971520793999437670746613436950055994203410735113224208989578811141020699123416585569076909764513515336895584913477958112870703434534614232444625178152058529603503211160867694533840049311193938922968927038316823222626796085406629790998187273820021830309012268399618019815367508891199049597531337387645685220515222065404456575737106754533750589708329064892705992663720458885772434789964572210992344234016752057841244596942871365235029642323760174494394799907908486832669064941988562714707276538705647678822832753870839451005421604010102271372014489814477258717844151419071483685207264868218666319720181860049503412066610236720004137838911686757507959348828168677806138131514797882756397546936117647564649566977052406130185826815672010348005831468815757523127173607872045221903041964699489895808200818220471987365349692292342173461159022202721085507745390800231009428559598914925585193767404894947167715901994889240784676231810814081003510089840800831918360244785388423916971188437374397959845868779899871851564812540295693253555993879149881458588956970665569505907988753642955605518406859541001313245262836639940104076713911499621935778044615817592620397808056587798691003745100199807368287606329950812354308655122005179361526442118460696837650646704578500288065847278433686985335923434713986679129030763761141280511384742624619838967433656534687407570240860264338525067100977643754843327275585604593649642769454939881864374906477223849559248093640592100317434904455117867412563292022376875170799625314431428410702402293446264236658619600572411865104199782151499360652557726210821499697684505170441443668409717037107589476471883427892779137479049484996028087780861659017592226474749659205656728146376234807434120956177204862763289521074751656187518189616086335412884487874133116961823896458711834852187668419429106200803797948360036539892564171955935019190520725172332107643875566798491383263559527431962129203748638753265342527904208644710432764260416189497859888539332504249453767046294226112958176714793984094775712682867189332548781887501436533117825921070661397298892487278904396936576201972613592417177342305181054460686499972209094854613570561570273455660471037714928288502964829350411794619503087444192927046487085058673258708552193909796046178112133001479139498618846429413930781193754299220185434469200857808053481930888070025158834623086662008322766322199275994539083685974548376334853460655014768949647404967335827482124009683800058681974822773890963304679603243421475208656197025163397771771128994558501999370926462807078143209883221912450573796829422200294164277329159881308299440323020877918953279081864740606506257188161194208818939921871601102510104012754680277872925134483119721876669070856963566253720672109828827829850247081940478912949593517675777438315129168717491662940495461568517935452824658782928338754605069931394017299935315214748856054478958289530546053754661994680347080580207493534380647050526304693152976257880680581686393005784480876038255677987079433882675848483050194140291054109988331113099052362929698552512728320203108807040463945994735076189183614380643626822644365868397082637335220460220565006036454174226258365413432562831477896743089507457078581001978295602330090069663197834878729660056301368157162699274489096892000266767674991553786344240177872744659271620454073462118257136279428588109917329975590909680629952090400684507127816697769620440515760468450364442517077890975423736703740415656645642314472561609598632988084109847532496155711909613321454180826253381142511066577884552043698637495146119336241930871908992095280775537510360406253233411018662926207809654584108194824261244267268228738404927951195973536871895643989493529679138594631542396539736994405901856247820316589394671585746041182329005777214035754900407681315698593734758982093063739944762239980925039894392386882724949258392912320893827326513068862008651294661364710859989145830954383826390052446339025235129303182148669717509052100769883649450928055688829788921076959944204107852267419919902021422274748847381672606239615360086935694699479423872801307379860770688559074086850553051738026671533570302643137625942839419407080297424160105942170776450211360300016137901761364227035661272562730298689804565632095931223581991684953733162689302115873744976194050066411685112339216514827653192554487612946620757117510409619020081160766856596061113280439541061983192111030459731617454925448237556580962897058647356482475943103031815376622305703289053589485595859510790842485215167956284639722897045592964417574228371569714745589243350367469296390525465732112801226723655845489016651581516404649781638812441632062990288577411838915709035179057066921199002075147789363694160641546240550793957648165284054108369090952910867422050009129120674917498701648926712546620274644870678398173858816337761823497361852238563917310450376093366580209273936798740151644418124552702427666589509027155946847826381517821877624304435393361945609343392172868755103700366038827775094373044983326466000724729590246215590770406717831529863414246041493098789034134311904102571570647210737958770365258076210436396137758311680837429592996123747682382355448331051345789336137558461788349810898281621942313805417376111510044317003168970929827301724816261132363923464077328736600993449523120780420780191349394201965189633780558296203545128701385102698123919964024226176144996355035602525170746124463969742818510087655501940019886656145911983609679451205030852594965206683390760012490731782748606356464351739698555614777747336720362703847345508550562789560336605728768788699291412464027433867210242093021024830170490507926635912443696786874424534239887290148953313749692830961903975315048097842953017261487800364150841788376256434702111060119305722720979289981242311720402971889874593433344825296948009339815003041780645560155770527576035906420022101888696685962848051025180385066409068910129130678464928701371518497916481269536245400720435801004376580757121952955368640315934300813193340951679444442439601731984065171621020908072087502929292690200912258296277576320415463686285242359014266574660596104731077970646629955413752493185209778175493168472661127356639146818650365933630323905136553274048334886239689847860956196026782745570884502495187159141872250604017040891824325531584860951104086256465761575874266102655479723522111936500460814921220855227984992217460502920311705828993187289206859113807160795905404967398243084822791357272043718161514304283206627407610311249477188772097727991610391817802228633714441285561659196010169997221841054629781719399448276026692060549092399913445871485865730220887045219138758589629869631624487960886402243899669368886207992827147997460285421976490791422661061418877317558805819975528577256916840863658568552233854215112005148334307890728714831019562287930980494986124839070121133201817472001291285829917409339524336852447137120649793944418941172529085507215615766916295244607398509920805627025339035167906507638776777359911200748407991332401210580381416664500884209692412474016480311118155107749112666817133938611316462503502659306126711660592630669955979386204982158583515762587612787367146549504395486345634596918532999787567100616574672472839287191972414435641635692730196959453369293845298656215630408867191810990689722844288960584146988874746914910622010503787590274446206972511763128240936943229415074852626428875488458945778459983005503230679882799218008204540639930815533632908508687586822255006873817357882776266410535555335212563386449159318049773659697520856563550472678550803703653924953139572175665863333448686330159834385533899604873060253010528334531667977832969507721387658394851368918770534161398610563382619609854590864094410755488511991478062685819113816310109986530981303170341278657755895780242672602826942474188082155206330614817842272406330878169416838416177251638553142493309628997602910995218708244865016624533537413086514142503668645430832289698029255340764078977363207207903846568254869085588068964882314277735020052266556286290966152156406414935099380344125124002373219313978538311963935527150358561468320545386126576633675521026530515579390099347867167654367129284067218014188019508126892889810348556356101918146399995402139723960139235249822018354719059562460014166981238156845845135145898881819764320641965296225743889360242348736812235097512744627763816667975146450847304169139644943597141596636343829814144481929168565189509497882589966752599338289644365491921878970497254877065965568493780113915489390106919729968197446273214777812784970706920873779662300596960558552259361417916131342926123907209859152915324198596556279074090366249520169310553376568605734367100590637335016540395423036743856836901453207790105091157138645037569300424162637629296636329282469962868112382817898248493525919437066565962023640216955233962323296579012523407321103190261086758255844787176650855947066891352208266203487407388877248530210249720821049196963581079755315284879496148125905165228038065001718221899180004599742098430359873172679097060048220023027379983989114246400019123601595281183390745512923239192800841247190816719750743286634535439454161727318301448865866292967596408086905321805139166511859403101267191508079529193115648551365815805597366715508305413625116867201116678620273837930263523498355165955619136860839690212702155739670110963559301927634546923942034502265745097383050173105710704223605692555230254773633154980736369511108444056024870584907643115664830160845218137018247958575144302059577817016416739446287426358809257439944039898025058468083706756929951456503105117079755894890549310229932484269373861785420265947191938614890390528289285425173789588833327652050474526065665943465247355296087113429285829729720843953436686720991946338120508941759026922149188132942957306199061288149264405744299454132157389242792420319114335133553685744565710654913215943893058202503310421594151304904034476183576384051019101055152097001606327344906845365469311634035874809371954822887829714993111580074529554564145096921938325009605539703178108903922086568047106142024897109115594285642079951090285803444197560761296353735943907860729676454247348331919420630125181518575527029922306542852240148922278001265365814995171739422581726733903659460970424364794632800119881380417465249848988848032672713809244007291645551820136108598424512814536544968501218099380418439565419871648695501556143604178201271932253360745220751052205051028131739860646770287241033057800276902962909857216009705342842531817766418615735859565747887823544540093919980247579630431352319305208846808775440738131190586935381264700756390862358725923392639631650232846769783018543837959722556772420163101092675788181512004298836636133267522749658066711987732203861372491943435391421182089475470490987400193363091253923320743503415667778752245018523355335843955511959990805629589161138699405851195684717003199992444908934287532258235634469745384304406138756233055513044569448882679095761003025788049021552813176201484732485344622734007889174786835632910639810894836457271200607072039754033875296215688148559592760624912172191662762352831179787539021406934531266844888987925800922737202247022411414137963056241776874683066057344425206659705822823553618258629611646558759054634958268475747448959523159776000929992605548464899548689524048055597474100575825305855150164682558011250225530930835221520709090042671341309410439569146333534281542171348731841292316654405205276779842105259722425335340093870291969759888971880894961083175080477380464676693507634898656791085120395243688893965339486232237144884320600940289169837257705831675562866117843582526638570864373160626118360713218983824827290875660366169097855360936972545333433583661819743038390113330662557395502568435622042124721591776492418822907669640395880981675753989659432773774762653078056366408076540596717085976283979478168085342946316325419766485632913653620055518447126329014920285092625677774672505210536091356189946001606328942636251171421316405717114247737808431112259210114936498748445763134159081034946694850279723233719116380164800112785247887549456478844823775182948781626451360205370847776253341438276599124494244640375537880115690206355464853635833980648029131886832711965256445320091913159138690117038217303268218333743789888958840328981007886481926295804389428752038725323086035355255490127153114588362835048400713379091106530820966356659242035576305338152657971493554483283387677369919534237820739094305490758237258754874487731853779128453529889762396632295325938595595016448340067261771346675369431058944558102383557281828385624034869537229586523945500953249125231570595500571431752784305132709620164005404032622844050220365054880459848605383275748875469839945558262742252456816977498013972495311125857476442461235339667737571595299737118226397568322037174824504666849582495469189904598014375064803324160293357440548741317361749748427038596226465553539347505746373217039358240132948002551452423122233401235678381181773413665785394353770395848494239579556732952580408292531410569391439140884753716135049818039479885864855654164718477501620372950947455879936903694279078269344598996655607184700914977418741416632349523604490643318762053473301564173307646906767380137314059934208930955138825008222594256491423906459843694434867235118925995540593029194627214944007462424977204744957710412890996877101904322567416938633273535072464642648577757069211479834936725677105501327037900201170129084553089998841831688962749408634368678225433280274955233647676897466880289690058622214948947154196798121386994416875013751767514130609130788749782500134075369802055780264825701801419319554039377219499419868833051563823199568503693708582890796615614873074721451532087502189162623363638803672864755151826301574894287672931842889153167097133594133717420557098566749748415058371225459930966894600958424550603116555699381116118871915581213502390661906828115590428904525588098883278980773451348809287813764094124113322179691103020528936980218759690398039878613314588572302957640081509073290759110643522544540317559373012399137267126748863456554566214395045551612708284072778230907289133474613783444326511125232172486204236400219817012451136526432058954317941197825166283021733017442492765767828284702905114832477473346619161357384174934790486378861244068372705546968231825740802783187253746298888068976645966297195136879166899269470092958691884277701142355707567554708423670974484264404704255079557572459491584917191427829750369811522460506175105363909031643952580769468851630062772154555652212535928976961597163052232456909985693439787696696890072930058374319595380422273341986168411942771613595999302451424546677754763759717561717925818233166610206826569195564439429234378159854283300022835745433077664068423732085192629701804300550829119562691662979484305835812784236147360734908322878929989076290053095212303956182127643384731050214596727807470340007068350757514065147540292930194637194223432633398866215560387335654287053713482243902265091267267696607201833487275354491977028807259258556550480633486180349849894675309142228952018107104003960914376452903503907807346791121292719647944201031805921456606937953955846805940208930971598606525567352632189087136266333763396641840122277732175878270305242800208260418730280642708453712758405012704186658310386147428671124082295370202958898753750659703136350808923512893181635496812045332609006123073344741122097744283607500986070367166263408105725129885137626450801836368719764475965735767183555582583036346808229829163374525654371584162108654560109841250058227818283046948548004577414532642225032274436797130227992445672510006207238588976029483697646905627725775151558066295780042386182919276452069858833027241668794460034229081033469683270423300179923705740712873510388602133567948614570111144474574427478084840322632379418420420038748080220294915784484063542285248248018179261054705231539517919911909226888754619345776961629851612234400884176987244788978317308684953932166344078371629724045214267490654556056583998952017033402284983874267247668424080808538127704470954906290688907088816197787755695361481585214720525961430096062173954215799480199336995267299839570413368920351722976034755078088496096206658446663229383099562702152406001531877942792548560774430937020772395606748235103786033109493103496250587959669459783750241014089424523022910323676385180673296507491386119128714227911731517161892829248252691874072683508428383499548412483055858636251344782242217234214174013323515359539224542599503860381747103339810719698476252759629066453610244502882400058539826498416374323726503179131279137985999247409695764475949121269124675960986908499560595234078300788142800300998252563806030856715115374693553888247083345597111866598858461721865768187588071272025540800101710689963671534864927926573563713721746633433504184014644923600478669443214740325314420957785121803362284307893731496059694603061953974179410155008066834549355455805077499328050493391342399892586541221847461371123978231668141160255596186448205970063275573587741409622175430699487050910427667871205644021629936371989788321549274703948979522459276335670501620881087969792048319531370084817762021823300130983384915606665480244519077035303569259151033595487990728375665093496143974354602462054403374644034917541403395324299683472704434188965864307419761401066922613090513414374260620645308599776932547225388873885149196094302575824007841740511977332714370112730123021479096984385497437904715402212164786300689441463247376986676047724837582839716560729940688752918871582567543557974876346178662017906804137269490668856418692903983148151871605270567267597923802014281741054776578159313766825920027247836462173448451883238337440586166328040374382956244723919354609325108691041362891864729040716515207808118974657247040510146007956378868770257524940551280919931731224424120315992559667237878184931339057094492335976687863063419842700635966565991474143130786160781017472505754886251506654512011638319404189799164017995508406636734022953049991125175591622179077249617395222672843701299440289165394196227652891366783930528801361823467814854167366120929342306407596954957560559508459421846901284140157274863261597797918763669328155252623982879606699248625076819130468404526525413750481406361096570339085098475464064925045518185035769172132861419019675209757680228612286746241374937472799782119739677496338637915289222657293816077181385261670053649270846062843692653176581239734853652154238525603530681706931694731713672511930965190201894377723935576067583873842979301363363528824410536903789855377827879846697325698642952832187188301346784846511763806132648452343243004154613908795017416578206187280673687918021765045301638705342842838508570930876506842446386370645416852619200713436875086878818592914562361886794947646034480116163047175701564094541274030935996940443037963957736706564457869378546297291807712312570729039264272940152622660708347300725916848742992876700386106446557439950918865306489847331634352838398906143644800014230036620444635555415836489146815146581428794747270309691899945771918515971003889765120102279730934068369501541496509844854035531282413501075104680303227740854169141367357625768239595517671078807474621111866458518636017810637059862936959552834876859051856805608848959599334311395181550695523327952843131123610249524721419763368994738218331574939194101139653173599901705684300237222972106580185111508588546950459494532182357825392711331878380982672645868107717115783406862632407676741273782566768166082689632002677644890156599787298689482490047098441755475386625538813573079571260960403653209859756305338530167328608343703251799997245909718944797835503334106264612506060780834186319590705340185297065739037287611751549820280219561325780615030851773643951647613811550034170748611540664342384959612029081260389377929762082085589930353487591126806530838132739818357001787428325967781871903545055514957962978432191620993186345162287285656647863050634535847745854744039976257992423744709426839617576820400044853750886664036097513321486400466859967413072831883407535977466595281862481181569878905687950796138843477022656461438157378046571508521543097067045420608288798794803749154077474982321755146808735476989082077173482865799324896344285023999761691321229674489400353554312912837747312711215294010568895599428857801886293866023224314110060338744068512342037395190791273083720078712995407372357564717277343526134646131285907955091178675809251847821356200119914584735395069592477228251956974744203581989008468698542400906462117769827239683162414506252376517749359164004782737649382480278473077552990537006638820642569432857624078166942690950272513574183482778520556952674246272405079007275116715214781249077688619377956347095600631197657693027833961325521311451458664956342814662422820780143790806253232863784161826908721389886372540908247075864253011463740552308827055765762854269797417887765413834847016626995749086236980158613571191272742879928260164657611882861015738787129011656134572985091504728203146395575286744726416311267949022109340532354728694212880884681912712250997602835337853683586512048578985355192815877963113084013071293867085746237740609376515290233592089397608626159263087580537738727951895539604990474510254182969368836330184761506118202695886192549995974705690601745619025609064117491346928519244308655126539161323734121275101021187419950889315518891676212425931326511626626514903819451059274553705862876374381046115449193645820883160227273956330740762600532824717868929016354038577177596211070215589480636099881452721861432968428034396191570105220402728446807339423492832141758945238433249134222841342332633561467576287327817948392602811898438939581938839479773134458032658158646365316117841836389027929541646095628970349111216708535666722658675751401484754262857964729526075169292933252155952761292032950925662607566114811718152458628207904225836532490935880128314801548091696199217778948522076183352027037269333866023115434769468714725425848931276965418807061869778227569228979063358637951127251177841893777890021676241489861935049343256194399833943033114633134069609824298322706486730227561499204879622573865810851919864767393680246340006197397329422025325397912187448789227209371204767455862916998850476586377317144057524402348256024879979569087467725616581893139266870293139157343646894151132160078112900839261504356496629306076985849513457523813734765118662086012216043936145779515572990660434002756089281111099926866748043508976458246362571905425939745676277412138184072344412634049146434796739635630124091371390671270505133405279498246651235047671435864153196734210059239425011366631054076031511768776446339065965796196473086635775818249001256107190926997272218828152810895539773576444919447341813008117230977227251887661226188952895845447044444111479082418094953466567228092161961490314408184246097575809489738254473030511754656662716073069912624679614435399776401746882925186519345031931800495869319468089979314576367006932760286221934281237085504732168592430778525477188906792058902178252031182968585348886695389152862362015552783860479416670391301124957577831190994440366066937247848689551754074115643297580543908767271541999982890097021282384213192683180822133484169959473484767566803783599777433762598789350622938803124271726551169493797219512401756894857410267567223304707499909183986290706407005747693993592955839427472837828252515884627824122716132987332124219709993947516068271142602065006679450868321753339297846162998335653793245245097370993905088754105513225598897921750814153194236636304060783528525048275644935325985838802564597714289232533727037849642991450865594178705845414733609182254918672411666451349352185367004290534207483368861552020578652098776280795980330831286741382025142525161460010084068103355362557312152667337157941540986530446076510866704337896241892765377714219617200146616731891720871165683435298461592008066624200777183125261747162357366945679487475921765950608330917473295053794218331019702631006233521121352806218052484321830293211013871094944921677332539377809944972560737177565340080703905631455284467614995010161008338378760287785929900837477339749696026740686860926517957568095451614187093052060896438431232216421889248978075257523208913435422359050219450625299752571883851174973573903764949336879608377116073612434187041214255695005091071441570856172167250024600062472976754882937400760924309375044263706727970007534034222597385415767102145744670587717240863018135719947288597390050531553989816674887958841451559850408967346206911221943528760301278761689561653036802215209267479015218705718111257752437288997531725117492489098087333761399403586261372987831632373136750871940015475602967855475322799227275636396053408993702136935939615806670800845995706799603401518392470258303719447067647871504819823798821832768881148272862797557870152127512804376982684299527114727304960584149033999298707363485258770918986342228025066926782310914774176490656109784707010120259980672445418756634707646637563306915944288767431256611068149784050643752906981401032537732282149497200658218455626203071867258085669060787740306509767638518835825861154580458605550282107764998190096588912777451810281433933498834094566088754211327873533954693326122722084493731023020275309853648085441447248041559878929963919478875745438656331598530491318982642237932090895135534568765501018409714158196225520862043573320427326896159728708403838929121336792154833890476493566235505032168779771067328683389453667290847423287423324469320542601010053482974516206238938589226597233381990615837832049225406060490412529891322168980587245910638881452988899186849304423471051678426151238846909337553501832490839695767902734332185266592995595126343565413574279581844290066160872367225012309752354935519534788514705229353330683028360923100303007286652222795322635271553992766583308898354404979437212672862971097998619350723072512832509995297649079958262551112119750229363799041364507901591737105779140023801369757434703585004412581581443962654808268446434555553255572694022039531767338620351468941707662787135872029308367765752559694600928788491382276986178805119543373265333653253922047087897541249359978980343969480015275394527750191561846201439337085961320233744551416844093416126574354003374715066394281647130750057336169107416849882367801272165026304422684642294959027666668418755333168202660514163480428952753687813580701769281162997044807820266539218775597881609957178852872812658546178386845128237675845172180017153714009008463944498224699119735565447328600910757536414821489735854160669881850509741857548113286861622798951829013298721394870655653810342561354823692884667428049715613630157276557063282936344303440980697838866260091061614317422815340147862193693668763173365992479643868970755833562635233243197906865168171699159048982611643963808761049853937810226654266212734855886397884547974125151463406226129716028393222919946674346887562504244423380477870433358862676497219335760403448691391304576670788122166511183749709069258241816348095243471768886056529103329558378328550304991731073995919905989043726977859412686722929222429018715638489394834200031430396530573210975196675202912830284186407666498622176070992959969124929688073035230035339780042529612376720307871487316376426228132135874976612920584368730617519369422329243191308221733188733356469173828657127718507836568832503443723646400913398865922802432019385923196626952445718118493875570290315390148787425161684816704449378596308415259922400909347248025316264712616706253036895518114091674426176178685660076286437086783668347835987511867398023300521065896273683757730411453074084231390310749071031523737398364632461964245272945204620952426631843853737335928692951594434950460588167477162380862542301889028395688755418010312503693180764546936987286549360680349901383357439412901385403425257865911654074697844771851264793325543018584581187681189698505929065701773505116202305579265677574614007103648421290286451263709444655005654224360301735664946490010047243426912395543537659747715948778249696457096020430616418565487618103019277478581155461951773286038440790658264736214192009466160640511853280085663937534548403664390103873974571446225274180583117748553720427188378367172997551860765409569175604628083941365324841555578400385850628391212288557589382828115990223928833728572406375287349040874615235169686817853627839524056302424753809727238573210204746403156853677622228488791400777959575662865239054893420754019299276624161137934320408527542347130523285451399946242744233514611488879933196776429637840589803675525776374245014226624592313318383799776930454699429084783654083800774298631367773648558954958176317903746997079482202903322455875995004212939425771434102509916155576778621105353570592323039962973039905093806099099421711177953424971680379084827646138565829611534117622264638740048138317508067133908956832297186175625906982634678827058941723981690490268838279012434784223753210131762890096346654491953964513894789739543169251275386526081334675931184722363380513595779692612316297766186599487254925716860367762501456298307208874922521051250774205091526195515611923862585672935689041202859284743620304310372312353545047579118899063311817675897683858851883091525788588234822650793329014176831909005147870999976385998670522839045657403993188130907274174783012289349360777571423247858447918857920288585014087010982278785672682909210880311362833717596394178789553075948113348213178156495632867633248700457889526056850302361332891680611692073049786771672982416448232664623775239584257786523166701367766011596790110566195837404371670627012061749653223583862603576760270568965431538172191944583702814087377551467573414394814077465691235987438758397352132463034561667307364002596994874283536829067002803594266321591692170332667460890389740832130140697971394743427749835978869549508867309039498680928634754951676416901681931269716071891016347821068852313784308395183014053093811615164288121056742923451206324925272186357757294671305547610229899675952849682274481503468334375689597626893791316911782639467702693852069484502104581871852251991759130019500610493045996828049502916810966907553956095609543373136451310297041775790731952055481629105923195710351178483257882046352638826472321294415192160840156966317869750626880619672827670678795443614607483147590275650761395748273413888876266123666946653408758333181602423876892961259833170103398784910707175218702953507721868627865891900387403301002861944668265845663991522296869368726178647295598219730616723790788856927605412050102064173217927174689517574778161390804984664274517803851641605130678878236983788159022951306512600526375183687442093962504169838831124025632771107882137640322374827139394484330741610800479901411859496807044667717849270867311299263837273791345370047099273470850865268260513355575814124364384762094707704098140833135626608986177918976315861401362873127279739293427264289261587564851117585247899562030118051301135119395214540363091117106152803151847392074627800178032533662237749172670632435658796040176911313588872936889910094304516465792820626619089546672614432334854177410118401995702939013731185244630577744869523009588525837494999914497017683097344114331951338888250619010868212204963033938326401126684373732421728163971287331710422382736729040173238020078492503423180912975009988103081950573895767443193431036787210970350955555610164662725462739517087661123821254778687391808999826721964554834587436176501370464580523975845715387951154932296804833522315017233334908460114784486260361091173662998935906402144645056691431221359583448232384540765483987617143684454475770913819973836694073540500342150519466450348173258915924247527466027339833677719215371419625514304937212680178436833986422443912584969012213058851310639838411241045360908562666036741245650488212317217352015178786483515982633581277807739968005919962873987078419421034498245664963505482284970385898174923026162590499730128391353576600014044841436116030352078135986297757608327625492106131920577925536121677968412136943921586887590645959835819819290577059807197365229583795411746411620967378398303422868081357059887730925929600520072068595374548695749015400773697270737193341008271872444974873307204336783770278063119280010142175839228168336864033029422581823369968934698298237268976582883394067105045557096882268263838276253899582654940940831207594903189833050079053995826385337809853516360351721663451874912207199517177984438324128661034521450693073787418154061631970117733053928431922963923775923567068599858719828945683955907733359915142350702076855073420712506754970655779875500771911242856670168086326917218981022467307547207574182308630164147553891725342001522828263832959780951748900531870610683305462027986831948445610028720196834742248945442262193789040914750503934303718030003141047534723283890016126533491337204538534768261785251427034386843799932022102518775338345853304679626160618613789168635993113357805638294543582003727215513920984754399690436794010645414936365043109214674431956590818517619453027071572082683936365954820116414220905653252986745990799851790546647416434926784739091715842209458183073073058403317731565804281075728622336436520594746568863188987204784056770533661144244756477484204756816603715572288286770777592911155688036677109509356438328310591361091495073746150744451772715881537426412997430007721723131823813538564737201161450957779235784322574324774507392506257047224682749068823527599737873183639224087297378967027550216422009555306028735986628207932843427695577383033170408578291602444703775275807315464321401968024811892784956896693950232698448053752457999568891382681619655881722880214211700926832594835463478858959517824069852069417683858938945260990064469716087720446585554684122979302152574541185738842286403161429069517278080626767356374470105764785403033933804974688818116815190497252419199271470395522205560070315834380486309327868190852986553078594224495062748874797281554460968089194409821597965982251612104627461906126069957012041929334119178388127382087645588809856317522360529799814945657868790474837612345175655894520134685977647345164921770132205187357762573439360958382854268451069639611634745544254371801874417359372998462763237380455592264273249391450115554791503762867301476283800533013476999683408174192721255943143993254753438543104993168421559225568890692494509343579506399194859732140155056660753583988347323781795953355249149163376525207612914186584146342995696088723641515906905374214570124500476336138264731481760895070317278984314852728552639396998776166239993874516575095337055002174569636771134351413142096547330129566671375650048417853800576119619203840052558441401039433670122101677685176889898012347988557638201643621084044262735833792524080652413612455653283843027908210608678508655218783357288884007954331713356732727145499558764585961273688917713150642215954604793306294331493273206660857187939509578016897042499203400927758801863618246441711937838464162661021929687841892868413662310128831443950548684176060559766796190693324856447606772499882086074025351698128797959688342583191088016570326498617541177212871140243214967933607016148974805636609386930051188731480472250208522932757620212213620932888922521360845855750633302894471378610889306571139863278595208852867097347139401716820406334925131819178229286806166354902400857740655434804811605699964328312408728901877776353430787720885728194823512070755522159322476683339703321415096962147522231134293611923698760414762026397712835751516015513990003773117718867297461549202295586227573355303881449514157413972331237837004177208498985426127842803618358876778893529527999620065352192123136332517970346235434937550164233283345291273524467201993950663716070825303642561605959923761751571669870446839309903873568180246652263329717075883781587934935718015178923748506640894017234712281154261894345615229012099598119856665186598126308293836952501935449052224204402808868634054719390590997177523713452000224662685669134734266732475818702798378557472301711431233389272202694424169844906234722023394205372126537669126770015645867976579228272159242380270835513419822103276706486480854420833038842976884908356689477206942086390605910108115316494003469962570206300578920275551519378801533379908750840098217388618786659925232001538510860758042193484411728086483178294478910812353565212360948559801105819853900843679323502558700760398526789924957886742027599633137086965404963876331352121761888166633255432562436028569521211242905074275447763406350987526995194975972917657875959830283215919994800664440162815991693279542524535922992996833274013865108048821617709888014309640733824504590797411206495686065054367324344082345564403969438012739331110303160174154279764541343799691170265273972838877597030134050920473232869982943886388046243958775158619442195226225184214461874109535146140214536843798554935813654532116068064044468577232581562932022011014067891271584429347033062271101321272235858980947855787855713392386305071618336117736076902553536533322532002200412175170352772881950647332420260856009962199211280873186559525543812313995686851916144334159916433057310936173311803748398418637190062959778140603428584284349112733293515705424153077948493706476077902483960676919185751749469998804946087129793678245370226382106336252496090270780329357888248040515720499473391611793739486904691229725966539942981623190975686652678548235486360686738213157228513523337221041267378799166290926033236729553084380560220235583932575356847960602781598432324739226151998853443383373124504018555624828881036141990622322530276170489146787359290965654121770534130697178093267904960487749359865423027632204345904897900423799011639321346028986516588789712236113858491738930699176190181261290381752181862023474126260892908480794293619372046503825555068346576462240106289866318377271433145122287177950485332680839512527769016915348641439055984190822943097555354245256690194971255863018219129671815126317403709488238955900800177547483667338072190703716340866244490983366694929907227596859801585230155425985028896489102928674532758438742968843046075315030471047094071790928091663907419195470850591084800391989377081613490022146650118917905760935784420399228571692597444598566173339018169963771541086911547736404070583431619224886837022390767485358746334071719687714469448304034962326875868884399587495133989901184747819483500878771916715258475627429394300828624492065665064969939059352787197143699203275152967118929008903434995682996853287287049026736128984829858212337874229301072342176707994297115788471522420344231176735789325143905132013504834283116420742796178177955667285707595320930389854194761071873627655458481371231303138806238136424552515653998435209947090264464388862357382135042168688721896114643475186017415089281452148066620685359014514672063447011737531941970528813200472380278344743110404870645885360918341623607262984360696592045218521609151604609283292934824735155540472392782696281445916780507468077277686970354095742332039714697051395640215846323941019656736137320789383264986065162853089473174139903363942829370863096433996448420486301934508907880548989073400973062492675607336268330301313947197796204934249614173142076033026870629976203022335967191407968691113882088097680373300762953591542102030304991556398124393785815634381787280398913582484128851380195823842797269308735835901219775420322560011809517628731692552610821402085231193566951009953088708152735680646061523778694763696033380101330149466066211544244399269356343131008417067644227198624374764177496215458306548505577204096216013916757934257701038911874008982499436588162586835870866240446312066725039492982596256393545044783370807678217298679648958864287458434459327891847779130554717261158724055107757259281719405079180653203823679454496951317976729697217420399812113632397327462614792234665208386655933474624974974143822601419448605934453279004754156014184193711887463776930386422072226881723455872551418873193490106104401809978471250842001018471796015603810365495082619967275746921574038619825581603947416691588819488625046190245669521010845070287493971764699249079165019970212324563862816165806294940910622313626644735183882459703821760294912361814873405659389357281620239879643746186447414165516327027610603341294918465944498931817285414669094128312404637435828867278665742768407849312325519374341332725915867140726608668496283196761739232674526975175733895841645242561530758596000430818896923012426988061441863331537957480562840927191752827209300016987475810666163001051615257776996655496475935680568507220875966139428909291933246940070785299167792781084324098269184941969359412573626182764661203196171128593405139160558595252309614800723348918100276499316432115662134186711776256550416873485406030492379426853642550340540567757465401977502029739464345711320176861024861591151784580111171543032555859998942145475737410941378247878209316013027731476874846900559757854419104421579853270031183659786752081364227906813271769118947246794008242951978474808572550434089084876412004127074780643789659369800321666063680127615946488196346661313312561125621672064102043823323521307988947838573536070152693489743649127669697621622724002047521399057273555294615540372386296801372181463621379398828509478911625646099392287366362315401934258195801920076286281079010253290630497253526224155290597515153532748389865800353097497528050034876874788210821656537388406395503365237936967113135964593451571706131386251880564873798646802375073531012030598955743174979193929338387019511858962184819346107185440393475740045412023576747255500133370659958295433116348729296140469469828686185133410572631954549091056232353786733136379045862981951780626619701655029393182208535244257606749367434916922897277135584620809316024027988915125436328987209542445199624796857877777580406378909374362404803349073064275050456027429211007402699421115976762035129524279924751249917878554854981180143073307594123943858709133040111180855546181056444258190761593643478302587632681719907364771561427684320956138683040085747303664654860236905052173687109165813235529982389980545207840329935181322367922161068435614746440523176684313044034903117153513039078675095158755664879744387456803742714218069711289260654859287248855330616677939075769364268574949028664075392863549017746527939853115619032839486376812352822036822628320101113992597789119002544671035841077653949737342399231823081076994053066064555830547013531921057658120981859008733464409205424009219139044031362358664220057783670127179324882495911220252669399317555031979714199635714272047187361274531196538439126660530736575923450115667578143307257550573667861715422303622631175025435800544641272450064943038298521642448326479957329329011629955095003006906130408166544385567838970247038548777232666186734803458259337046385049542827081587399252430751606010450811885318191495574758523235232469473049209830877397901685659033037726808929766021059649492092523811982416219824121999554588553330468132435979425985527943750916494540365957205181390184800266365294845786220512695834361077056569863030387981602778335446570226554392609021033966436588609113351702702831500889982305538583669722814654375848441932966988910965056122658145556588336354215130372128064115431110429107058132452575749559901571301135400049944728439607459063505003388916961407580489412648474429039342692460884446276679358303306387579859218390286375827936086809902750854752196349887735368107800793661968449666076884434502763627118904871472710632952251640122200391903512349386218358704866352193606154976179391892679939048743858631373065598200172310074062744096864903441442541923023305272442438256692291280332821870144621489970639475342586138903127451326130031160249523137659591627274002900936774038024067318861390995191672300327670771487143884217847576432047740271800020631584570650704275476323102880160990451291488120290037789897458853735809759543175785948760532977421882530788401328713277172736184993141839805810027005962914380075442302192890630476619891413588032937234803958041291965881419790583834491718037755410806380238982271102403496696144181768430454071651620174851684251392484711833923648635422696063640141681141941482992506439505660238156506528507876750478096307811548946204494230070768395288198307752815209710802050802284830754907279183461561877852800781309999385559587613113948554441642882510944707677316448514865701284129194899006698571108640341929330408683650369046181850476895468914565216495822773285939175698023852781065506171126320856940515932084576503954236243422049759120760648209864036997952634050275342043414250477361079763198057547429109075557596893884870958505976521195699926478934546572847140957792175426810886459145452321760015333511267193832210257113971599001108217151118539183840688939093298918130480869398071631892097016803102808048064732836830362613784672580899002628342628099945913042295764875288428064648940840603901689920553084263487171383721813729336298738819347082419343284127418465696555025981735240418830146683800918739954438344292368729821477529521386144248204665081571180164566707856446612747939676214377534064282808484689413721516326676592440465606831918088138873536444976913242644943814538035596897489153174456447988208005862010730053768542048568851689433296649168681052454658706758690643887333424886572016626925553160985229647307370049438722210249630863916243832298482903160193139612911628755014637009823242115102859786614368259107468790427938395406280807393376576274152238864149060695808964661964210796096221790992127019965452724764979847118664208586623810025290272671058898394927922028189481152686564536279100699531967280933438910492834871408159102889172446999051731119167841954830963202022847158931291889093327361785166659539888068104861791905144994360673247945271588635236840020178947754099307652274419019148101950900933265402124951215252449711064409414815239074361326936101297099927992165791176275950196087482931843080731409581982447966109704756412321611504297334376156267438323279218878200374734997706595251210081211812824862949976848492845535942267841216004692206869193822818447859831928998837313619120292350766026308492686672180518166033963458979591013417530954367337170020602392981625449680236967153446787654988345598784170187299650618794649828792059761883693474648938252108988882477012953445571916875221957345934762045645000478465852879203845374537474399243957434516697993529121688348838214381372027153341951332299028868042894945533219678607384915150693812059929145169382185551955051190473126879697729309995438955577946999518216681940984907200053887256999830990871284949470693800080083841224956575015495494613135276833577694366090045606140659782823754827301633316105873972335244207631024465904681419251143558964442425341018916158134546024427477263730138796470303461744544569032941391658164381412386026951708817069062086882064366724625725209049415870953672610250722945963454198513728445805938195254986557497761681377047471112879516624716867521981019563966866605723153464559381938032860948346207943517883090327075470683588250374236167006533330906369901379948442017902083476101921114588332273734278787060566162000712267435872896173356703428389588631057169188832976706612688603011824987395616710406330935656283286501560987773122705090287941313512870757693991792120203613874326580835662363249147658231828501458460307790189554172979735556806149386372147395975283711573230808366255665372602799504855245852246235740899419798194086292065140839742039728435754798895109839567818688647394846162160053512821728399015357939980058509652521623662784838953511693488062404847837295944670749064057083666191014128006398529372675181787015767985900028929324378527019063289021151468639412975924944606355285239314235165650958203235999316605107254996481801770809682396810686808129946315700538276743948813870010265470112491256443331399806459647916419912654362052178866143052599309798844971213745743255404757666080751580859830872273050968786045275679590623834740490305367691536885000779437407737041676155994224656703896706915378285608809029359408465341730115530944480245339111697953235739170323034104639463744278579347692530956934497696668147184050687935326650224843300195365780913512759274059494530508034554760523117304246954438105436978569933592726226388459630997266424120567135560232403621113959853749540750718881011251403517036881349199720155993747455200309412649390743789121754443148374710016222025285728313908585371047095344947489508326619816198506976747201763407511810404067302110276073543766531686743698280388251413670302977435724970160759914124876602306809345832236320871263128678663502295255889246854321539211999132951521841676255752685195233228469272572602852703859423161905787912286272657210845359430541451218151091110432409957477672941267932896390636019296893903520491349913133586998922231899487009028431837124800838931633473548248793793210464798612040756881960372656113070553472988063479657110681382925904446066769846951329798293743395532977734953616200473080121805203186702194044236698803981084831328649674983855607593411968509086412625011398307939027396086380842546148690503117740988139164024468316226108839690645539405368056870094621779380370824326912526818894621155338057779933785887952064386938047619000972316122051279572129341772227509400997392520310361555998653829822505483613808962867159309893970090572184527044411431217873151176577871097766036031666579181699195065471762723654326133689629934621664532794664908359876978986990567914400684645646632216389425147329625834843575395632029990806279071759845448969044474205767827401799403500254614249116525989756985960342652214777955014866038387875851266069104395442827917604745433320527799265108775000844551490147985005741874470051015228312174935364384965677236552810581931408306429237268558614194330864372473246519510480697509363423136977088425022185599804645109414769741846215715015047705409038304159069888583061742747492389225620701636060325591770355585515116914521825298113914406558848563876866364491697152892030905314320866769418188121207447953321299406836300378237675416451743202925789080231480787210499662567575760795670656447535630550411862944516806739227792187319837946640572881724266655155174970688233624687436144758567634925908323848203729145573649880266266745197048500996380716918641256604531645099813721983246025224207158448610975357986217926180910264083233631844531545806555329750685083701806517337044958896652973130548612879100505305265479678198101289348099071478788885120846289724616740254918325353263363580831916492223668126881828859498574046540799211216496244232244721120382323431992520813853340024168830566919264539537757028419641941123889722240564803900693118387742139491825820624033866254179934735813549283860266788596970328524618811850439337612651205581019037745829587583820424056229673293498193635777340225340984094673398842883642751202384586246979430977668434043020429426097494779569200716912743548508925000326637625234723194786662035044054726107967364780665338782302023298776202345107711624469720004477990980394586235860262535243435237057424349721791179919688448607321190387138158708013076356506898413630133900164264498356887584079934489638397714359372347070307045738033186875759069529310057207487840631295431666417876060407594291135214590565117746155059111575286519138424394340916744921860600458050862711846970909777096351872565123145244800550201951635135988808664457433444190411600317403304825199941572687024033833420642279984993358438538474137560708571132423102341237780340718203503272682298407545914582701467828244428796978660648968968051877110588749021398949326629614415502312434738759014165354544747490820378624004485735991135097584232702840972254823776535729843994791646501882374815286465210047681600055957026839581969775734195418692341223925756397335069356251526259515621594353855333940256540065754993569807171767320352480817159075727000972055431193281658480266095155430553613291550406180239345075923778151650996480266229933968469243732000463804855081596741035760721442188247314954671063063661885868380594017988037160961066450541930562134836279567543276276172618719876807089836978287510081646883781122712882718952991011728156380372027474940332161326694451278134606705515149050370869494314636499869262698309427548639195059033355498108921416735237428184909653713971735363624912383783790853629343413524900932102895469331524454663050479803065580233180303208726678920713307442540830886686068046182176627888037116859121509883189518733778347334754010243854769370426466557840266068570048227438203349616261677419501004939267609819578166370269105622613654009430687720573225208364653791853729325692502629209239905535828025333660133026592466030093562947476851605220134767593669131239240150307410391429853880439993925480630517496254666887494767587578151931142583711418408999924794952424245662945278728688879198215844970991914176470070761608607231687286724292308380543715442415044760782915014918424747402449759588349014140691318810345105502162961567303374000495634111978345823152547797121333033557022022758718252517850505152745708889499443527914707966554228182922816394597329062804251083378904572735390353820190669817723344823204445403329994149209430894332008712309984992677134129684053035930044199640697278325435524030820892976713763428761423200291591061984398842738111854576014622320901066268938638583008213223588106769931677587589364760335124242173259962894154073941769139659400783509866200747237960061075973962137138390265374338130653971175887559087335903648615371594058623860551219549809201996657710208816674445471097029247773190957449798807566382435837047708910217575484685721773950785879529639024645814182747815837984982913008322938384434778474107940109100473210677346611120468954199190206727470783190499806327788772463887516740685955014756916073830499101907372177013260669782362565761196784212462579291231053753817077793387347058950876416113973790728216861088656333983581974970240253429259989944447200237644896609946621804032931665186781598908254889190973395866612736027679485247509028241685763849556669162256369740733228194189414318461067355450968974399722675227309092570148992183365096410346345060622094866253568031121488928413736168507968981353105429051903825484673823481774490050856091526562606472877076229902768419294886668787960425337694215880194138972117836093827368613106039531002904263639875377432884880053856743076905466375077903603097066950903872725491640597032063890784940804764458712415705768875787566063707669437375114654984951130318506401810004229380461866549140498277330841229645102934474837391337025363970467621140828291742940324293072608533736233605682237048808895650506724390146656294446645782237490252746702335864261262726448633791057208124840873828720770700612041857736983953287563841412705066562812540032901296549352106076834155402546251229824668949937944510585723531762762303260723543630778079985538697270064453131987667162157221462758312885755347285792939289532729911317451318437678680273848186427414347007082159944684451860988986216583194809724602861586867835131439916836357158890287119055513146911201571006529872392193315823861169200944100883456159760119756055867515205413397500016941749666547877400706282671878170862403813696894984559477757922680306123880194269414953745345883086060448429953149544533849031322356324745949758617888859547240661845489197555866946217421024166806204200306110200583796521036020661267053462311735695441475798900769941833194728594220770324107311981033088430196566373804245368856428169695413554431857623159541898552278800085468578452600959436947721130672198899909740003375824759179499263570416435930360537773689847425716014509046454550002595262642495441984013505854642744656562618007929116478907289071862712258237637361091670467402137503529824534805885455692056712981387824766887704741611611782648934982310794989895447088886217514816472492992588379557726646181524859143695609048465361010390143506589148095685916170773423398856253417989562610973702012309844380660922198569007257037793228690263118974972028753565946099244945945971308468779863169124212184060696046800362704297757240390626388590140413494421973448841401441503765405579341315271215893055804452772949329231344656300047526055912945225915145446392003015695197840355920644605283674900398922978499501081919901316524989465521502283077621863792702218328061349928714532417069586598100804999876494482092573512907120028471557717310007325810078300641716398789547527990894238991137189345463008089855237730274813716805774039837261681749189775434141841151740573389863101291003123800016672608193364371907945230101866233720321888359398592433073822869188135165565563311113597457907906971966307600556411670022867045320496220440812109449223938072664133337128613151765681324261250877188367471174647969183271839205890702379369607420753835925595601314497256805487612864567981525629251785121589221690795109297733643164245828279301647068389445070641281564389356308818683027331911857140154596134345364100473412811914723797322248652610875420955136313393709752887889524102409678417662529858005362013882335618992329074926920450082454819718637510456176799501317604964973834313486852777315465731149103287667977365414358288536957954090455096156006313889756837730740243821643721279724671652055255744368298544364860276394776132387064448110865420032296380243095793872753458257221906766606817757066269813699358538596683405519177741866438459941855332107043837612876395488598889477058830414225545153131903186078808343791685573491496032713827862348519094052638709905355607690502002712418589358789871130826239039133357189942916548020694007259427074116986037389287547201836989951795855287294856253824261175020299425534157982493871567446243191531743409358440806359349421869972388328911665510526706079217479324392858995024407084199196551692921305363204147278400775920763871879297325848883380564337492105612081248422922530763376114233441795351882799672197128867255622131093385554149384640772713499224851013296125564790328615809938746261372255297300688102000854994195305850206103209777360065506953304188892874986000710329549531474016396408207727140140826938127766736805749762806260763451883415700408732764042553203882330417669955762399317263727308869873362081878781872770198432073574484317921818104152656343930976525641650616789631782757840805636721044758450953710963859834941941981649816137293567859913104143433318370672375374903958900174386458114296721906762440893543294285554434995218975972251079230327540615769067418199979851306486135026850686181612763368396745750803628860533117949924074466748249119145755728762901206546670490601411894401794810318161858107660351204739285911506541251288576151741653186074869744347105550009166281424433586281644659773622037993028135921615625669220230440911118897655855729797660589208007036084203647479744095352963925428091611308603258915623678744937926522118765591894281269037872302078051281231546197884493346089726931992968254945025502794486001676810808753435595053489860958956498960838931409770730117587507458467741775327747870678575549840433243304158916287231580183722362173077329096182464585091206369329780139945695820016760145188528205490372604603253771636871843579418251988439400299469960935581661599544089532651139089100171019183047373602284697925771679504258855850421332716825772158734568924692180266571193333521310115165198128233182315467229462739971680184906176182863251942260752444015302792612420029890130925123796008427189055110630223356770249829613292091085299502182310702591859812302686193314377540324047468578554151940058246405830942984282977815205958906179099267081449854044779007363037765040692558758715942870976178040912111250397668060041994550104770884328807243691438088079628968392827327046055154974807469967403264137768012255987797327514029448557553240644700581077894162378124775340280257086188366026973385477410507737078178235795179308122145003442478429760319564216590513122869665222995540408165323624583631443212304620683892632327509955140678875612899286421850438780541302463894938226274501641254998072564426261998879420004266450333719406187144247200654387058798859655697900543179619963863862718644250140814844250614202010642619763319288948409849739613638850782501408361606484121271510981701257835346835549306899704989339220313316827807729234443889816710337505061342736103182170186672204819360211192090227944666486935669507762065192201138720100433873107146502304794327578017640896677417510345623655456896623894152589619784018678349911809261755412007297787928199303508887894855927330338905214001722801116107092359429492684079102035142859802806811761847919610172310902266045765353168077066308055178613822946800135870669252569820690456133326443101360205489873251415189501560112382537942790188625681173908454901060528750149394860390908557277926606386925419669774918448697720697391750704023330954586343298681895145330419900208340899538863161847895947729614303853898823584334142144811336777008247112427440845615788147062327870686493767278839905969842155055386871388553921843328889454732847808512018412903871726571721754610347211654105321632607164919876872812892156426248799497310049471932314124730374973011585205398582655170304553790948883679468484179084281881932291260796775952209077950261512556000246183158816568746830806905403582418689449925927885849817267282715278856814564108951839018069944023913496344680927908796865250825713867139007427225718964829864833111464248560355935267386247110237671336238812007715899033447939033762456323622186042875021344467075142646494223524444061508395981385303540789486567296269262412486698501495738334450296608129820281420495031864669110495411945333232979459449494529207464648339855865901815366941397651306814602868730872038710274461568059032906735257717830244033017351646842070538836002833099317331443515313957679546698511011560816967380157163550179602797806545512351924214703978766635951470114962123620771924385454782407363697419311454135155015252379737048008740596730057709546368156418507530200924577878751447428336413993536861567601718188466114718503562552096965105129902257573625132492737840073448951417055718146659900675444106650142773843590891527689811746925505664017013207660485987574934225882854517835954180282484908359364874079241329760231035810649546105288369624346786382745541478440085309375190008026891030569920865308868559813745662521704811417191831364437405519011918831988334339631760012511580940676148773967762562153103969479413413458982809917390032108519924433579347300916388322177218158770147453808619268800464346260854736798063720615882405757941224845008728157649552935680962148161367929027618952173976971206481609420290046818814431845546826370647627893673473895444572709743270761021870321208482753390194599997323036326111787182672173613644964769886450018740688780858833872174106741428156687681128648644911243254605216167718951733419283788686450852148087260893993976742587598421892582735782984055052752739133986857883155772935882828900971375718445283081182568770111426777787198886271722716082136331045881017010605282045228291564200939631560176677522583188970096629850160879659451031538464062941157545776935319114095868406455975791421122959401794909224203936737524350753742932822582851530533097747412302126947301274165076413805693761545836082741639029339489310361000214627738325151705854325492342180570284387150120345720275246935283710120169346698794575128688036721368156537877070005799883515972074219737519619076345512758696607851817713240433973944817700545154859477903138753032882146649095835946661964281119601683034010052255993229886940362019236085519287575563848129261827942865206906141907285877134061827930538198286390309425348630129942891338609676959143206523915929726330150574630354813517272970075263273206260098650320297134660855819298889925555111043590510725561971524330298461481571629424712425952836519105944814030862307546160454668257725181023284405113816733913807222517270566360817466414527663270307368374011234533621028084033459631791255653960949567277742205311022429239203227524864625018168838079811564127632359386829053424593831989635884712436930811760860238306835149257235811711025264441051244987406735875737234281778431348576563836494164942757953055911043303260395646050329381115382410950870993076602621684735630908677374586875490782364332931863968811065692170459508933152567113005038904077288748010474149090527951113055287638725571698866727741939136199183165380132257704369929718986874022893641766460609956801428900113344138190194532632773223720818105537321845313653544945154823140991568403192808650685370975127865217852157729900475038890737505765962155847389781530143967653146299094266784151601014158560397530951672144536476820134525642134933275107478811404146306915846328599236053161876993585339145111010678691311631152664928871260620485193716258897456666927452658211297794261787570341295099942616811158576703872075871250190200293973726409500033346503185125060094680928575169732209275480570193005284191161122037318580890263299013831222257005593947243649161589017938738663068127039680640246547120004265044508615458527138721003817508346895092139362902988995232642964044996747337848408626874085924747540451590540100743332603539506954467484247229162066204987009372513412746856816720201128846907921025496414619520438391459740360300674878296386313979298047055248646650627648352378942101774055550924893407654562302080645042470209615685211809224267794065638291175509364496795039115181781115117413850654036523989758562256899118241521396966046084939175207393156147152422017050780082928156493173901996750374984371287230340707473467410353199172358710041227145916215263743786571775305297327027160166232448823551057247470473296982328180090607737948012858577752612128611365116586421791581234898071587389680684366549712332538490622698976036547654842620518104379302997348243075340742144242624872208250634118844747704890559416824306037157402579107488762419025982996187623964622968912812666323293424299724391647278815931538678698444463166743979679204351975611137619493753948757364393584709930621970800699384951790656371502496837628532787294753333615357630793116048529724921277733387984225044141567134064755041362967701608152065663707660096932693278447654743173183608190782543167739463975788901645745850780560264776834574451144722708536094931899503659460623868193639945710654277649702522466306074014959410940757993569962641208010500508746634882067028166639245937841927642696492355865747251712526529754366323135468373660323480903199580957261900122095056778069912425992509181545659825325478543868811948839543632067282827980869792464590595883961995344148824171912641691983219674541456371924517872124943357635945742228407093766467584220678223021232329257713184470239978034947376391602378634441956525582902560622193654425624731808183273024208209849360798803834708936730440883462509485776957645336017346421623424339570142886736004526647527439156651919133536374116346334603575536019954173340885703578979201798303336431033198878626558460124578255548318165930141652256504961095745389222829609865063757230124024645436894436078019218488043309466007508213275226621483695031234827699074358768960274704239569593083040105168946707459362454764146285293791233724402795648489896346745756195573241731322809082722866918438452287436499597385234855374280870665985955977490132181395832303033274638588466206927880404042498855647656225174736889453965696350008067501378825733243717113124871455803809999977023839541299033862328461288327290070841684557007907452263655075922006302690885948340903915170510014709098073008510738670560437125084607834441524609630940093055593302279306898360802563135444448063848856965963815923071404918226935656391948542115364206147035371897229279959658816135135867089823136544635803122644991797579407577289334142961311929246745322795023603519270819199715417586696355545446402894740981363872987484529541097091817995946284425731236573115678263550246616072218984117310156180082920029647192500994554283008915790437138692518636561612157487036883868216031893643187779197698468009244843751218150411441128613326264071027452164307199693536336199575457432219823873707877287254501205874970999454003755766973189592048642744983990898276350146194011242233995053769503221474102782729328764562542443369125466233160239960921595977789545197199596989997024917575518224733602229934019845172903380539846096379969727108753885079245079184035361014988264070515488948498767790591650127585211769120974160430581618020253443622344532857498243495981154840191785134643800280068788733023022728759648289732980197091186187047187927606663939485712718700171167774066002150700814024444658022980383070283139787816665616452376316740877884646989105368202217334581102454603534112947240497162122694247689029390526392353059922487792491307218394920963380570224947654534963715642949551909270964052237375618742775681443655900427844795765779074201294935816438073224864304885865279373275622023604228608898735401139529544151755291128355137659146991127282684122429539601961920868134594132641337790583930395529551364175625850675147772552352664976214953712709251380451881849009701731478398241472279517516468529573309149266639997235760239240511733661637626307446988633657316667735080831219191376584503385043825504010721894426382748053845572727889059424773389857271594354965818846828018621847305296998043182907898066572725930552497869891333808447508542641207549686556477837493680161741789831366628826780156605595227022179596546153309705570376920147956494273696119252766530713251688783775769411534880622175965383103049222358003544932386817398561180131883432036095887475182881776840344670657567599084029483578063716642645484255521620461909287066314007923596115110727512634480290027174651148506281036236167541164066199180441721665435146544164212657389783852604724919265066553291506367510734531995123356632169312432048024256574442781057137793657712382690226733671435828546319904386416003729528234666647319105696434861226483540607038932236637923765203205417978233900103151536200037920822785441308537622684476186638014993735292049442347870548008913517064927845078774183604385598815141764968260680270951503477131684281208309523523116067119981841304575202562793172672417485775420279794754450981651878720154764200626237225421351663792777980629781833752389651952769915041035582580245322928985703057196818907583371679720296704204252055276521722648038694861369371544642564697904291783048071195085127913751496393134289261809280968079427999384337836227155195310390962217847941970568595272908453142172310538877262268810154374482254737762312852812960513115082662989283025559312478532177400618884749841237169639274644739332938504210720871564900184111551113557113347673416183576517025192097504470484369011873511037085331678755714929484903891662079872602286636460257998606259644666914386321464828940769281236482328659980836426832876851738284607023193836308324806533623602488010834620257769403745862818192497382982425503642133177436930332325323243030019458612786036129128112661345108146535831681345712809641240381759745583650142739031412514939062660703473461991232386713925299748230410631483651786337536885652615727957057484267352711397926082886975058996133737053130983630528481747054312139329721602634291251759992967529445550798678953957334014546349256022874736113826266448657217053697882833190653575360333156393194469370685892801858874978419471499963593892016616403272527247853818362713434507175401360769003248159660324200068864990449184803366837417768570458778668411575925583118934098419370166303530650744195650301214845334996143783738317724823565652608263209823496885995797430181224433317010423309027604326092899229532782617568935112263671662412909921895945925511955192257905338462552957707307376969604343074443251774213644776262023385189210554654588147246750700082487195348588697573689837036561571000488016235308284267775112465568470723318720999113375528078112424065936463275017383513970999828200584867174032234915979215168569433692729067453779564222142477151749562187169861055938256557861712305777517238012036077895389111385855196720776096416977991022112521322808769814603935567371689782517479532343284271784211616922808517008163724960956924355784720712971287410719343683977317307708707622408446320787776134798122656367615837693128185205231390678628472108703545332609282194108335810152833172727250714628324731425610028017928471702898264280150221028753546965052889013940527781180694536848445260934269137582238995105955156949876540931210870717098608855232127629691920743959674843717025827903855297501046333003760432992722706385836525655509948003304046319858641812451808507654471514181977221260522862293897133058412540289419673366424239225473804460531951639253406873108690911553203376656221147012561885847571874981027497524535432896791833094513684877159864831113089720354290286694013671578311455258472768880826068792345914899771213261446158012475291545150685041534172915793233448720546338633705958130920418538651181897204453678497023016966857524663291495347445234999333834242578603309278451774608707213093721378867014882763323952475924060372331336687750646787367566887765105153067966779335747652122425770776529803979224510229810721350384885771197672512388039867600646237225798841070555207233883078849004045283097303339131355904786471218789004641002616754533038532079782352126761189623188235296177285769465225802466479928279640563259844716340354011875525764386052364566820537899613772635041374148869734605055924411626591252575614045550803393419015869895858148643692809652269464723466132534250701432907522819213359628910839856232542617450251620122336058493345202782173648570062745401756628577472031074631922128177268699744126729763712565396398524183210149478987509439067925859923898022900260934673079982506881324023499942580435243412940067913546852189122550393981761861293638033754574288093141425378761469122755377836519389439793076597607589515950287921045936790640703931441368062021744399615730945452322041480319712609237299434332875200414570627344805973918488520838228320059545188064138336459434371141527410157809200060865865140603946570088434875910921129977786257544709174873169517962078640499012162731963688142546148294295925435666703037939643539238302457444474998966863556785827186117828890396684807460824973146582999054633832867557654293752873155219433149314212682651575377212766468812989926755740531206460036405575249641270805239881195029492362210367353873130516306552275643123726556519817472865987878220058751945591543582019618633839014356287092533314067701217274340288667049338140898971288986774568227620036313501507054142217314867915195873187566366782131590730972761139631606466729063753817924400854275509761198508241128420865753879940718821436682671723972044878488293062634002029587451096529909580029163932530959861252367405805682110814839950193111066086751508605798292703866826281039272549798037889012475887636372348568842710752163013227992760375924213289122914641721186793487867207541989182925758587784226277042090059552387483247161173736905671813905017366040131849187412264947672409224522722725943808787594125066827719908184079142861406668645146277207950728073490833378104529177465488523169529508236434134884965491583122518544914811490593235048887678766015332710080862574537341834521086509259591780314346606295861580742457511925508572683403023358103150920387259668235816909627636749571349814972266783303647943371462871216970542669993883703365349114300687751234667018218134465653743492972924160942498036712282173976076788441421782756025409606484640601932148712880799862621058038916639117681115187017538743513784980289828591862990007906771959424817276094249310275348503474584073725236557814018808003413115263078665407520935083201194633767912866493648613047148751005584466623216271517394972757852116043776071168709718319908953411168559933693160139313736978368873599410099179040192651015087024483126189612079762775544136857528506811279346916201744791891702536592952910927344895019941353616616163918686727718743483649184951399680881637424009124574238647778403952527462946061816689505057365223614188865392813707655843670211640234121489881093075837272819642915068498508430530904722974728812701069129329704586235593862181178240447657283610674306360367062067480176606838469348770033011805386527264130780062003434109424692664592428853470214046144293519792404191086994218681668482253193646139457780431983389402949897902556460333233732171224844073577405753369546345357678504707503901229053038237582291698613011838980666978086961043198578312428052994003859642700065799159925559957127130070085951097442115507465720783421473989598155465401797090173119684787023967129568851221225051515315311558338702911414507933661442713704736276268464685109190746636265442523237953123115520236494975772785287839551463855397793162286596349234896049211729216356625921775355885754560886650275907837569514674413107720843335474662120219265028599062987979285918733381045605080615847258299357792624456393499017908084572292939103839608306223280117000956988581635804956663926414747230732736202067374779952026677062589123501442946078586304535298384305790536849339224482943399885721810278272516266768699862943533406876344672950678297226038539195237216130029722673533563645856109489651853336301966165016987472964978326337617306511857828568094735457851829134979450084526382862027392011589482376087243930936094306861948619473575601516735064058150095777549349651819483542936131780241598112663360865376772357424286079092379399705109767616966601591175655876450385612913125488622838147268988294334300818289803998925273530453712720134210860277967099627097021693535526543172698492682740726378578215720864749136787187220630526021114801468526400325027087429841234629360837536368247576556375262536433507151238834327848313594640586421826326301557500326722278420654746144280851018414361673229276784061467030779853466754605332898920496296733932977844396653939033682661128835151992133423477081461407295474488377266332181352605203555333288957588459471634056247786900830104271761884982769321444799502320533976574503194261211797182593066750761446635380359182979230370934083375286849298654646519040422932050195181007583346157034256261217738923958048916338552008672856896379190611613447655437712824361654395870121809781054714438740585722695906230326141525742831691175374666632075428861885306712191025717976776899032853274212546529644923355338453784874923335436370407514971406045361220623167720743962158459499390191486737837896356980407623795326076956263064472428671553290886919084547777995454510396792156618828439981405942311883318127639585287404378681587626361594607593761791137143942729304127812330962750491731672364480647221274918535784693940971938794713191785922644072385727061441740232255364128225841523286167000168519133430750729135949207985016079535635421668289251145466838538985103125245055535170922237240923584824272856445977807118649917090273496660049812035004704035516734230061158967502164222470951266702288312027557335439132828044446503916739035002213719741170129476413354173358612143367149891490253232167686305001488879194201467813208063077269390700033281620535707920187928719291166000732757917578674766688516864765428862350529427976052848760945346389734545075423914634357673930248642547531926617369185702012031797235729071783865936944926251392142293301736601197482890898456466750617072317901338224297616418328363267654925827354880756196119325264322000165739217207661227112395655121867283931288115407122341761221875722925226719762363394353287062994069874547394175580989709082931990959893924011489882698789816126319609920420188876457045842758154388299962768270615302282016262266690231445648484285915883023070856571955743831349255988786912201523951922510709947708815085305159387884451780745738542690836666840154495939537382103857274149322009187226405888411108993027816973640874419484637537574905022919805321200836441321539180947048955956846050703192364511918334356960878042468918451449406115337272060768163390871956253364916156741122261962302178663417562537873574970342506570332787005826448447173093066591503647670912931814615815710457752481521374730625654061193568090412516659176550934654069551680848788706232678170742668503572345539230526127528696610547209880442923993438082123348468702671543553538879492690252607837983593083383441159957539027160584920021458822689389594390197409987251434280378721611141040861307992171767403730758286331457559887600539592850759808585609993123350873097403697406145145235652675793825402290941333887252424450570573139165733139636180113474509991550172245327804042749342476075375267998409694776428190128792021565248252407187434564794860065219627613771002046510133799622778602991557224171210027371272441131038515453259244607828299897087009629954141921364386539836387666124020422569245061370446507956857235759080721187517141500301135967769729144979422191595139178945662134395619948189035921862228155238010213410233092587055252955914465338120270004263982207810999546667030787946926183404232473541810301703572909911991021108879702626562404970079403748697495971326112172260078269024117781770807769231788055166779595452342711077761766362092469608457989313220605577000938899378866578432737674809944406725069200028235585697127031440306941480382453416556694480771800658177503650682127935634237518988828542710895944031479262207386431229418145272925319275072036579562735634207986609438715068613699491051734934428812514635937165123828399095478583794331091655782725004696172490004688682352867502474048479809370258244786885491660112093271119397386793303345339846348627468739334973140226828204081903979814127160252273710816739731032465736076627648983876210616026599810668734238203820218445249461595976575723112179653289254055589830892905850289290725715811653069996336831218709028442261955493481345808159387766655759116943307661157861705182480862934196313195722134192477537154352998282085091197104382012245039663545747815551980445124427988503250462936295778372993056885894092420305204284236669083701838543473511185709892590600485968861498103170271719692060254298326002478434558937997706449605469877520020919305957543538611818692809619983074352930654778383986991676965846359094002219416827229852223151299058776554933258198982763169798306472228906651573959887445031749960885472996259594981132271652364165349817515403468770642584102275312100607708810529759361843325915789413387364825050414128663653610064981762136823708663807974229338981208712877535261464272932642559287699663203625202572330782421334119989277015015703968360212450594629841754621695665720655699311102325922353448808475860570107642931494891049385617005032224558540077971130394935373436534298110027093289017691553737441127998179021891882360122584440481740757198101838800341899141242604953027964772881590564905120123804140660086069875281573991963851250652040826590380599973350350353968370612898093142210037918458459059212751781214513615180142802779786484815221750990830504224261884533029050663275905110264290955392860448797981989151660295724215330481756567122809761508309639091027809878964643980700104079528755338310743928726586818219986190320785058933872651735973158767247129947862627984209692619567905325225404580761947440578552062641639740599604721301523184286129194521173117501220580738934394312297123519419161165058336105573491325731179589951017441493339394810673832981392683700207980761074012984789345046614936930374224531162331635524992796054854694285010226976496566054079727223738506289185138053348912772822325020570078592717235111727164771383167495067216668658859134351340468548587977381027903736638386515705297175533071414235377163445112038220029750798070435664462199698677581159808383791056646448126267479605874094549341021635805143891633822864629010550625873534261534348791311460911931437216499516319758932755076214559037289480329478342539601697552193895732276765162806317293434795508453623283824046887471079662541219857423838764919526119218226617003318849525235528090940854868786545202839649447867335882982068758337601593750098016641514226579428345179215918749040932741325025661834584771006755554405401082652196803821128577385905434871033119284059174012712231857186300798747062402912060640087536400521348206419418293511564832403509944729525463302040945477855048073853244326452125283442511170212205358256645881576715828029085371987034357939344685900210378687240870212217921658861337966694299635854463034704320102829870235499501189800223999440098991336301116342041519858598471103260182855384107982592574704429234027136544203462946145119017663046538716220643723113751284422431396140875251318639779557569556690865656829784306754137670299769171911718293811826056658547371091741372087571330074562149109279250584640321363973188620793235757319394690943364318073027554770719680870481660303144883661725570199442796471421667082737588930055058306827082316928120095670057689892215147379685541873043865023613187722514461798141233719798385867228800170490109962154574560950153503502436099821614640587868414204170585888312146606149636594186764431140321999144138434182385919739937112554376537945983313005828973432077556733250286227488301752503595137952938803833846937018136527583177331614095100921254994013784900917451199806777116935746177524590014155978461268809823315520695399933779349997448262656084072867451321144780054226186211144169366932117064181610819126416419671585322445043925244317429919757973611679719102368231270450407981408141900756473425376707463263948711767255183234138548239024722677579212134139126837356294538246063997235816446568120114540618467805031640875507679283554888543704664487541514026083255216895304467124176510864133704662198289277228522977809747773136504711250020118647148111255564716245387068955935768274066304083686213077771989775882576751824102990707449773949770046632378446906296025124510290934064616077464841992664964862122312313038453956124557755329445890783971499567477009024810272719099951816937412406334643061116393363198178677742352593756536546512861971726815696200998109199973924662811757869791123794569884643999853405975808298254809704064467633772603663389637297009068945071477102063941566243816906400852563009836584034626764889441993847016920864298789986348194388319302405952678805257936270266177528315337036415275067905045492179805153862951828840865947068750190276322400574665482548556257980736084324830662131337621008730252073877752290691692100959899595675947517090312520071670116660302942476972712212561977761241041489543292476248127065269248448612108898664838072216982346056098976926730620025309276754984711371899770757134810631820922519535705412186903918752063798220866056790132867801602051894090739458154306443715665833431128130688905239788338003374994218561323408551764349734290036171123646157033173498797701482787160880856054089606004721456950387225953395476558987590405535052972987161703076579712986562807196269428040362611658554999402147398611969815493818924391050114683500209763460077684731744215529960630438332539797608038562543400843513846323220109878769621005701711527559863918955234288844149821698249396750176336868603398430621810285475609657745652498201097583974670497384625522233548141566277780339568900762381042569619579908949318799646018091126612382124507053693825219259710516476526175370926324114640240989659851931551181045784658660422470088347707757669290934050406478222107401571132960275538851196318888363181670048802843024466312648178308888004444045718822446447472810548095013288758705636051827299981866500200368249147304277887636155393821502429882893828295629759864090337810728478668422953585313930386454883349300718525055101237899132157118459775867792040907908660450675781793640345746512874265858188506617128626362334317869293742000519628703953322516878255068243148539309005496454277628207412138422316674754630563099295975121226680361316147134217079930929063182393772663514907769808244720824274231188536556817635137896415625964736856329550786645357071395200045562172166982509983141048255324824980311078823138257877667851085805069738524225934870997765243072797913726801992163204344131466524670937635013170695872344746178109722161146337907629919467426637694273619689614434575911252733100833411924874963869353422484434883891168241921878086709218391891614258707598356081549083040221904782551151762840027476321409919019869577331986675175313060806022031066513550156948624171514886028227824270769288530862803656481370097618848591706284223769509370663337597826330376937584041875014838856775927224646648377864017577345922983341146857882358209109696869923264400144761561608388685536861104905754439689869840361235695371271546080724670478914257384394890941979401967035103386181782562729095092016378635032414568193843611431469736864718547435842997955575472905867135197293262200416719235243643414297732598163088956536283620839278015062868173713109337864777152907971252911770874568597889324369175385097387536272108994022313645793021245404242954910865731011707831698981706319992880420375143303183783054485898499670657737928525959910409286150931122361624620081590915596573028169884865634452962059881244821419394035564225016683376685452744272272357900408552572034484520119726121748028061077863052606107682766402231725525659882731624261261295121443523726059757591148611348560321989453862560991931687008830432837324605459076583809215667426318380967979796060929181247964006844108814245971492976941668027139353082551434672009746580796957478889585351189247970469167952350754664915972842674580530018075336911368074873127290241171382649585569146802722683014368123862926335614228964534914966197898874233913608121978016894172972841230244133710517982537536862589475652213711627271745722502646942050195028818941033700946009667293976601913392418709702330361884388899867540670260060202787302635623917075322835906133159976882155597911903954918890194129715597947692491678065726625124801777679761201616481221186848368835595161708361421110792026438958584910615378470261683321252053370677149072970517035186233087329563589268061863213771302785081345126451605269098696799143811984998902644848477572095883017865839590109262880580658153043102066926483348846058849971413432986648398500046703507489643409238781629057170924258288317221472113556978061528363370442187277459567636251759934053060328952998041603318693084539232259934634777844977587867725301336553095924062856162775647300671510867177702841385145495336115885705175359267218489163171618627589293839015098508698055276010476001983350891615886231376949657056104704386802523405632950896439978110359163123610112137622665839401391625775165562334353328531703114451100438002284474908574727810316640585615132091885248546750530134630775879456146432751926159707613546935975285915788107752150019585578610108268409999117412080769396048866845914438095139179752823253500462847202930105476382147166229508801724504511861940828154871843257605056031272614695118630438323053442441157226268937631910375747547371781108089459822091267582336573828926194252086090511832255621971566296052525136900966981147038360579938981171542010495077256065155132010369115873841257415542240674631831725446840804297603947788649717050099159886659703951524374392102534197870799345589368533120003391715125616506836291374073222230813421476869358780446736996764445993068755334759190816165006608869010822655745008062284602914464983557715094995988482928419067109999951091427001709411723264507060399537485893210414814514321721450420943358066241776312469750446536757988968255156846013450811533770315818464222321359290217376107496119350515736157999891194097062270113322443811425465091400468551219956734897616859401800009670417462518073989130101966043431149950183601260118680548353509822844585354996720776779566111198913542263006008107721795782569277388614963587046050087475128941561322382986663769723560115325176542095623158584340335194511894424557221686016332325103392290112969489217605827844964579316803820014316661897311842635386964856666305767424320194610230094410155448515354544929455762742673275684531090990637971810167001278686667874363551463671139518884740193340212240146378102240763848323228061267744375021542692242187038309829662493478614546831638961612146522977899406128304712692931704412304478897852400041939452904887602978398507661674709089758032707328245628002848874497207280899350133302737462653220852635079807441668681851925620792183865716668933343375442367449546656040530643836356969814694394262333215553708657496327808145058719310752411094810523322162117904166564659801079126533072093320373224330052726457321001156716913336362988947692780702894354024140173919861631037942598865296342047083201545808420809858353834361952899173924614239294702211904220879416032068353127800277276164477206775219431671295957682289537570964889965157441145372078345245677226834435776489755607422189206887825294364437758248869400048990937403698797365447982855707278138221694512989033800643288441163388086391623102621220222247243517012776952723858319509286444750355004046820760051185151364492419556559716339121783950688933548857859722216615659590089440913237769310997815868580798363540400247538675437451910037208682954510390716029485202047271892072260302007582178054781525539605434680835640247734899254673426497106685430571090093563000164404469966844957009417086456103692167975424098572399008731518215434230548319991668444933003508692989731395298148967273854338673924407699040744117479696999950096169905069280978261639392940201587889753021462194683277946193321788861415909510741143031811248264997338677215857840468974865518213536778299601629259385734391369836125338350678676193833056394933556118279865554687208997427728234354176652289737892618810321280233288910596833919227869571364776120791051383261990320854564821944115698251943785971108025649828999853384699928133156805828662807521488160403600664127302590579745214146634741202925429827929592603789784060556378439843175079698045552274663176053932188475576812304524767318146262725646932529630694221711924558231021718144942680116951672478902557359588942315428610881160166143826356003753347158526141417662612452070434494707717117405029368997655197553300832009346434254228067396548666452311765932128897324483211691462025665072659710412769072535874450971477604575203025472358232894132271654355434479271146678684175878605792340345893179008916212774012660239521646810347175791549304403876868321683155997127090723631632460054358784645763792391198783432823258756037694686593990869225325585285101127885003709545285469899108240965942989093188376637615019128805362512643320846268283920990141331028127852603775508761826341488370306000410870713114056952443228739360025860515211408987273824808681333348939462510489436742341176391144743923146718304905015846742235640342644446790087282076129203209329982740395574493176656280920777947762880260900448877534653369738512257094200922475687478795925062315112977976875046182207788070419856347681472395063072378378149562670949959947865760317075869364306402169707232991519330165852129038402542050606455919630080292604536322052897651368109491642729380637941243650356380307363778164483927827265934250108102795127632588265967741286267587824879091731515164004788052979261911509510754770965245593794277662242813901947350617657155437136972237522595737653639506402058334557408317177180385399531889903017365021799985540590884730254186191514421559073760100474205287473645190510356988077738741554302400883802938641270238499053037201390105895514536354765184896931359370351427627552622605684101810722423022142461303987635467441725318330502089630338086889199129634743026501268801994759713168862133085020289714340168502732568369879568783877983764600770500711034053109598849759938915605841511142319236133100618852715856981690733311981861905817851953164794032486858314847545855577506306522152497148909242771760185841293217821931440770482652856716996252408514437346016249882682027875406324430709505138673644169439963938723438165738381382834214068131058986878260559965659766183544036348258730837550702363913373914470565155192849072097247036946709014010427493330340933220460723044966916313198144464949170698868730313945724187822183505195658379723632028188570824218572397789218416717019727100797289603240338271872672676820656501925051355639542104481130742235699255499695763619336537751455634235251427535916609931302657537842479786649451064740994497293815086986087176327731793803981537703602146043170979899239326840222329280800638777656647862520809320694881946735740324429765765278487840837128999507998912122889415740757454017063820978129411105435344957507470757918005402835368145430944125723284163921474151127747458427280134785449887393227294519940134549988424436411654617444434939425492838265715889387966734003814988359219697353819640354137485883717528063854812044814568453403295579521215452470865744623634220854954571369151529684229905169041214379442354144447449371781564821248557555058032420226371656462674405362057975814063700774420116165554703367217400160413911902256687237593304037421378861157557580618349601340607160238483438212205899948493563687247802033811541069265830543249304671187773350850784402125486976163911306684694794620293441979671525586891141470645939700589467859836086088704683201741434815702155080836708996704656092518583689495159700797949399597441032681057711783113553475688419495327589743725466480287832327461102365049509761519556936752085883584912577078218700831482452906109296632826720194186339448899648375205740341740254429374276939045151878678196702980656556839968766408285640173267804761425661437017837525488358433423184953109564282935369923375306944953137782069550689632863259667769701519824459238360246380146271677884567573800584414659724254129177709705415599643773460849199807961693534590706944428818913183341441489594336203075261879767535128228810003637465843414324209690838573796739395116799579198794715966053745415295878407608456196971496686300412978861731851605896825826559356046480372914518033339078200445655495858999721918285646619013863239066535868360032155947785668836934482899777078145795669804712532752145084522659922611570854913533786125813082865282277474903122154959957971233694668702640330111661062573145879244372423465644303153146798460535983096896807227780729807198546603598252774792789663633411308199043362090390323146256232422773928315486791144010061294165568437503428164229894331524063602801104752306693271587720797538001640677555913818240529313024281073629809675812302724029155395394225946724461617607958086843348208480140595065678901378135188149644289871106538531683230990241764664858263240210333183417137264119260181376661956716950550348278683187614955219349606698395898273674754671565812970023115613220863796671367238964184854170194539241038602997452293636111229768652790143713858739736362233344698866583288167160842830165523066348490977786372402764242341981508411464107566390700018366893908797444321062969931166559764991467506071481296716196912480728338954317660686806211702890114256225850549421956067707806885810089649832544415620877636673055197119305463403328281845154818387384973195513710866465988985209698083462971880755221845630444718772919038627511543123702067180150526724589952977928049114728686221802376905545265065773784360481073728932158628382464125441012060320675293846582548687737982086048877126360883888648899935955557090378569021901182882893667090700370435695061063342943523948081663785419602996085790943524940812424041441307406001359190934639142869586791675225066350650067403307878261637795565712116924240079723079054145319658074046766122915325061063142679394933979170127667296665926695502005684759779317664697476275929043490357118225813054846791584211854665225181804474659181054237197057884212499083592787140079679398085740087170549043701193433679904556821556606549255839080884353990159828310103344116789064754431916206914343098825273242100695616096183168513993245423000862287026655926003204652657294683445218992113915767015806406903721423314841859526461044379312118981859883598744985159831304730669030081418319151368345343966303407489284594154832973608561677024687722458228353103035613256800070379303384719195425772407372101032736576536511574399407717074382749107802917333539425653154844560733841948780555173683013313401630898619098321389136437207012775266556314561265613350623069383391805983062271502835288134586005582841199980205148626869795916870688837175856631269175090124018625952621104187973296255776045618355164954649469710813059600253819569096954473035789611963857178523099411823969813674199188354919667757377039479901230253295871807627362079543415563531887905442733229194131901021192595705990148770026559618623534849779700284348875209964464142264801781023188969655227272999014663977011907480890329959354571641604555244188293647907099296919823141991660939682496144265422640494292206845710367913143015647716557992345950672307691201293913307998740735053474873743782625964451640600472380680404081314034977064494011906959045955459122447671168591614167132717532589718302006791728323457211626230659982875456806753123844861785819503868857440589930977602650933241975318179789217070588569838802985747956017360592540999238275068980991147841268147211413025720465783422961525154436767040621563563935711353251481202488759708551785678046915494787566949532075538242139733598342955541336899982934475700265545214055415625221248614200071858366962371644391762865786715180205898974286587578739309615834329609977412118793229737256116059791673078487075745692070041251775437412996210585351039918422514347546568253177476419942177083724936593432043089407104076710057013346038932702216069890832763901210954619893709791690976465022192783109286338818819369065802866671213124405799284390626571292950710460965100383686218170073297022700612848700296943945093557299260583695394652030319467959984874577245307843486122198338427658860298370640523850933271097814751803859460462657714456722078550296325667310095423760098434390066221541322532514573703503483122123686852589630190137359643675327971677339637254256510331858067779038892351314809695529805137363074225789620224007442904412619594829210666849354818647246967729456942784760012027991572683275342812566513044981658501911794951356858654780318229953549540426258197289053166568188920440355372683601216649530852245664548315724472043082423133324474184850281841306513092637841689290832018694637588606321102940550632973598393257280129707050100238846549723779141757122100495791341830957099874492761576487048559521491703621235198087583180705111356958768611849498203887898280204875243492335166636806787577051984293571364323543087290015401302078637163993157266365512746002636722568575877012407112466482957398752444420297883701575182808507756873250913289734928922394915658824903624025069639303189538525496273780898467955541845683759601847661915404559106939574293880343783922151585572432034738476208826343534356768011828678431712548730882539419463498669458104922265295304847401681752253728587070919208325515310818977864605865128297552151902238188004487131174173094526028507528647302778551716557189136234184803855769611836476150606530931609631559230650164182957994847524512190503441766298262639125265283035745562151122617516750621917054137994341668039364711926154763277043952129181899243153860217821853263514551060862023327931313493787060396255240819654823950643526410809068832459415129947368714759075202046702653684764119792223860346142365479809528520147057058759539976876602672706482366317322354233601991302648132567817468422666197242200961925548677246160306292121744886639832480058652148280156133469754415496472662975803608984415085934360794717368475474940833626582939336010547820326520313636927174434730540280293221545653860765322134004186247162998568611083836878727118954092592813915805460605490602035128128244589785089813215508358077564768646775976566295723690535862704170507498923252609500519335142306535377460830887831196270560182403607196799903685932832225194557300359610813142987115614014089837056652853974957539954216634414101537405580602242530730593796528989729093659885098697151671932449378785147842376620157331191859616507410745672332184383643954204539786517055628749285273696026541223912324920825005331106099195787219243141131433261140802556505522215974329804703550001217145899838227207747219752562047604170643362906504098759062949571375999216278393150502655824082415368688287950074088356748769863766366812743077405982134684692819567465323279976552950562761978314709112814826856125308865193162972534391992392135275807773248818100085247454914515160800301085227617598194711109928176139369327959688051978244586484244648594912356462945859742042104711173291809442092340517237805054906203947440018358462726175727122389845204412365577823427672712726162084290432872725177129432226385125148537386700875646210702547937107098666692251625774738181212783265185899724058404550788128412181814420392374620202098836769851406738495869900697690785124115639503218153132932804803178807468700228935020913736414530424686849451487297637630926951548372884999843555633286599078581035351058392743582981713193947773549003511683330241137766964667849416264697120932864733793489026009348302852851787275227320041918725768364857558442184098473848024520048640544762822759473991764128099356175812439290545084930347941498320254863833395983978547125981949086686992280112362528985570770377134135873161064089495405960918868355158414815182533809549451006810784603688764061725228804153928381537619341859605498637155876298311572056205900077566288086682340940762939187509441340563277294244182474962507132842662467765892615299312277395789459104153645260568982430063346676759789449758909460178473260752825293109613123768737157031073037102871497388610393190735382575752832770024930158152649218475816423044242581477607752235701705024942705340351187957458575490821682548783225590276080893393640689359055496465190969460723560070500126390261689029073406563449312522621138157742036015062148536462660064483576771722613966994851456679845178013475109675396830435881686456252763445900750390980929705876149223788007127495403840129915238076089521493508118962061894533489456084474877219873110176981723687395690404386775467862816662041683537036344496209087954253276035843407987988507224700814265844877759468816205852435676901873636442563534885100538119451242727423024757994267945536134127139347153307243525434374333714730285083232684124012145994489560325454392849762684021098683885137548907306704527639218564015292844612217999321185776204820668625219064509574730567448244549608623630568182510352898648593207178200277563872633445379378856926413884529032205987092741934519655857185753454531146313074262245322363248975680859884027146035247913653520747473944429099508583193185170127898270824464445903389954526130498440365315737204896993870361844103173859391154865010348569636951992447678463516820333613946965580372076513567173800572658417498793691377122651852995246515918176177875652106531422790088233563122024910094313286118255807687137570417418525279922114947223657109489091135947191097779193786818369014312332839784636235440839838945526475903341455926683199199672787630815318608877450166567675290115968276750145791011447909406197552871898822069711847050218362382818954853525529555730689496595896555178109217297443445560529085665018504293860885276214698042840013323005369621620379865966964296388759680152346024313637131755728225600495716980853689495921788034206190450777279088335082885202478554155669684506517870086523468606354444945561408706069566345703396396818202032040498930105139464900252644024468635046854754977632195624135376308428478438454476667609565014932152284433282359470810491244425934447613665403380457812963620092784581228877701706450828826330374838484607802493991672975007494070882077635469605862181574524104485645747958458533687909358911364207624986915602010217012813982298820575759516415631558674216851918563087815704926300544883621634315454797100627060191265720709986752415606155820321057922406405521819602938823061410181250053125300789547726524935644424070130239503847723034786475266324566453351200366485169558655363055799746175795561571432546352795006940092728842715782510263665124818054754615489635860286214757531182265182259972300218432040955751862406534104709215386393610731697360977653601028582884633935543030850247708939185702903604788584556843460617025783668984039919657592683196691984069588362638103013624339007343957810167823430638010460112330981479147719928722104473853438364293662940971865232317281830269984880981420066655133141483035510549049265306001838855427795245832778163917887480367913210353965437773417893712304553692888123690581591584917333625488842970246419612060746903742340599435719424589949505546679087460396180677907095917073188886814338285365496979545781612582053196188192490541461560523443354135416422173758581350932834802346883890735605892481737897303501496893279534212363344382744949663236933049795566779181482602435615732883383613467766886449249865171234561112501525927437882261417473515799062076849011371426717103537719688344975360619247032492960545770739017588214469982109024122230729992556769055536223425291677122382629182296054873866978342313277058499657107240699828161795759490099177450767820540702208802346075656338960024171039924104875795174538749566287860896743634016587400182668250970027193196090958893769006014272380172902736233679159214453928780131844551662797092793615501191218555326686829942355380232758754316402646173836870869906084892688684467576217439832153374429897046120258712401838971666327120891196039792176845379793254433783662187368381344328559238841997356953301523271919988560838434188625040254603838296635564868528127082334719583738416776089177885662033817964923166722579910279941664760563398187970608469754714691158257175456687031787529134226780148822875026888510646998864833853696569376299922020230834251920759975185181418480346398294098715485997629206769040903316875750605835051206098564290327148093153961588302237267778467268057010420002619315783144710308196731634282836712258681827595791642551837316460510617416382304030477216454313274722924131185867304006114820931255064483405147189109713645734979219703850877077345169221774865594261006360772849728490563957686560188506850339866741097754079551416530234453204101146495922954362457833310096378392950688877351626025179963688497388590912003748932101367946981687111874814191465725594453510875698568395093201703612596268232310320547928566412319658140440045958744947429482487444563509186638131286852926184210032479080700470761460885272006629704293559060318582806509707128028546470919567342547386936161235704626263657490347797656225894218797728493865366377868694224198940790227652525736663432704301979571846465006292630152272264577379762686488809700188920207212066096435778823046290573103871213238828333037988031169291852280694131954497918990451096051799419447873502325655583653878444015374659711971986360865907452858866609823046601119871933695033619028747622556096800189026970575410511855931067916313898098533644460847056180377242186036278534839835597243078060359283220942445831228813193443056062998400457768585425954932261295992264736057836606245645944570980903531428122497391475634881494831399506866635416089614964844111975595096583742248335042385867766237509819445888245501181203289145289977370037904274523468343095807089174707477913500608147744632068344164600961919703283585040145232400647735018338345528207441656966471027689844689145600827866781672173162875896240583329807266450319512444193832951419020162770655348185104183349955153088049607046650431734055038739177708977156311998670788290107101253601960753592196164599191703504192323211211486785705777513153784679913516843339474912218083988610555676004696321975184786699364491011641746319652138440101220495073731231766519016715518153634175077963576522953565947265215758323266688005661942804104979288318389390448458573270215274366783683563349970726920914231000810344677870040981231437544784704138350906382591170774452201124649877503002246827373192164747639453260067641977767172937248972462191017371231673121802367375044111595858308667688053463127083279598954021664804671839537278830660576338444047584004762379279898651162056374177136180416034005761008814807641057367853082504937454154378669641494705224908738710005521520827269684076305670041580998065667205287634205216021872473002819889782946519348390029126461804688775970404940242306044369196002113874590930568800582361551983240131531726787872470947925898645081218708706122988103655538276075821272116176416904515423472271516842136311620768806716121128586909993198966381997124723993581699446704822243220540471098541727700689714675906761731134911041660151069741451694324984004407769268406178151249491303741353417599595689967576212440253404481937779558726054064731509271020139065066185589294168025104386946858362754109006379422203446001637865780665770968941732873217461059217548218006030235176044335755176160269987706247201824879929265248477601085852611260455629459895781632677723816936846108135545977397458310334520126829658700465518731942268970864356628897635519330704527670209888632959073616951819028398254590079510208013539495049908838250352185001947215907256653234204569481234691595606567175383927394192889945561993375059552551302494079621035863998589255618255285852522156610376385556283138471663177861466274030039262269542497790894713565889432029524990207950821561018393560581430141962855522680606694621222553609095704829275768107995162363790439344182175206446747410988967586207069356156818912619160093591804362061675120996518232451758925469284031135076208050491892089975502808137357942961500551419724702858004908494897810566992601583920365310817267241106267659909353039946907288590546526135237723449053434110842284067550880491359927880534561257207947950032118951154177317833195854976005469604818752602972572739198383783199465306470953942885085225398344120220247902552624852923172766085395358907490615096111468183623935219740388074630404877759882562620679612658427315090317797350680055981310378768791655293767358864416029459840924304952333268738531754457982018884055678751918133068946095333378569985860356670046210452807300386720458048104143173253935788569989670126883725459519069514260402755483291529431888506637741035555093783696201467180124627917937252743492285759429396003522730413382432191747709016329194419831504401391159345765611612105243229881929168955982710280610260220273989249854123409949253552968572918165992846798588527259749697446883630769663584730952042890579834735763723223239409688764268598936229258929743553243147536524869311314088726826645546916755637630464119132458854639841007428855569562440114276261202582452629902419530831379907415559650672977752604667219019348862480189947152233110482502825599789779403225784542171427781705469158318284485649869931337343662104563055036589065479721609951467278609369673003520737931754204352873428738124221935862345535146805748084002168453030359192943619104396833900293610067191093056904769006242095257738430843144525919412778722994927240716345709477612063325385243709687244942226508684379042150747505344872713141702331199742004109852789498609472366587657162939393388337501871874697537754177989252141079184532152047304359049800777678797963914226321677487148345568489704709063061566388498182635678244951063862211346139810398259362695590237346435334045113738595247235647236891016734796763203403188069168478703589708196613122854989255343659169613080844556869601004477277621771245866942948084940842210350501508498186847961747497964951148907868944533793330564656500716717336090576287161085037643420378197132968975698207109060984230732064132490941356463346813227593780293625346083868999651541465341206076583660997553100762625657640961800997326908908790071887143402702463905719601591918339732965985094395939420041923164452924404239326783900062906376714981956841228999060106640966316355529096761268062668449397370158303683527285368543358080252877683216893869869222651135323404131442745991007844966044918029512971294751143829044744246847136004601974345966900471270656035877464522001674677942169257049853316299582661529832159069651181978635719899982520905466975320425438906098735085642923047720736919437427715827792594393142339635789641178890686057105831221677115457819990350512413212602078170337872576809099928438519826644390928143594861927447570259203251446933170659524296784162252440729612044495152412484892908933181048202786444378937928632959943024045652826409392142006343722341395405100337864668145106262548710869023680473832987443811493941752455313063057206009092367147497638967261773656677981798840949205619625259889979928149937601140240324724042204018064033063388791550164021414906115702522509084001248781256464628110122498251747585536866818754840339032353467483669548536954730237563188816614823650762754844546746908125048297432289198294302869978724352237864730570416095088378908888147562176747770019467283667351502775801366139921970180625942639510573793768932209911039215166155512159285616318272507613973560474270140451306776195179461051506103562943777611451038110450156863289120256226196743876893215946121854124600285761627503120938588618017271561790958153755382095457430698692843390181448962875556458119181010058279263080571555036487002277319751156982107843018411549606158430277646940538309983002330007875559791935127252720630613206684984442800229244646265798741443906416620671015698303592124623432274008190214435123110143554395840203034525078252613042347218780888496223179704817089564788669939325166192693016026109811659271743534316039796241173717661964771918291976741567470296512234734324670836486587739139445433652879636510280925949456278474860116145420975519806538489416530720064192971266994974723470041942704198694726064954176968348879000587991485877020764990444322551587622935087144474793216877900180641145899859389483853163517366317495958708819128699654067534610996100676724295306636813136247404223497433204539401210783642110818585396394817235696341013801344146308137274840705721020538151242963988214263817499460525832536955193199687885558046340942802595681915147580197393021317819591924162381028834598476981700146277131475381253548926639154482739796784021007011568509490812575072022699166248791163496376463994643433346269557053325088521754560336168215505285458701654418483689859627715313623297956940745830393255629741850338043666708694350500087417324767553487782109137192023588298928750799827871221030823618235496144321292073391474777992390022391806023121448031579496284693337644633086533509129530710457526275010720269019371074266832870891776056286152669962634080684611520209904669282057538997622453014960536950601975626082653266363512629104199565169800648305283687557557246470355720134638727967353890960030591855797229941738561974348079008419140294599736428358105279363298587975866288121585955348099111972641955887494137010699181295127640721468533385220691450426927640192759235650229352577286880916466289558360798180631662402363999386213308421121640872936219077299376962730053126165957340984692328120681295631532136802268511570152705739839728893530580830090685702281114758667546550466459517784194186807166896569574727083387105139732146326456012129047898107134166795384540143785839993983952384227957604696646230320747247647072618699499285181092039138136825499689168147322660751447481131462476482385302901694656580931462868220563040609632052769860124215446477563875540670178326106475636763758147682569465667147084559073946936658985755764068125374812049252072975892917938034030717470585292773489810446368007120694513096417308154275974553035965804140655038264032717691686972959690025715516797531957391028571619918754798705129296462224409991083115949217878359569687090467278888426253858676212160491114211497147568091038496851357163997471704896999341748868794495831845999735699530756522887953006909191877340479184666722088704665038397911273495268698001147410505972943456612514766737275851532589596340706561090337594104471788633485254568800474029848804419227068912674238670213643389004484326080610972055446525669713249381292545572000669245965186810317755508161492590711251031747716380958238759645957682655976829928875947877564241129576102486757635892379855615853327517754830918083414379975914557594113414174344503959848261243374027633399832971465013513445734688081931193383438499878511777643762930319026681866514051824902087969736369213285556772560357317116691572730971153458327770360556601355832414955401761720520807146268008488716423443984448882353525987882769316568150466606938519162946954948411263913042672279075876005875614327240813599505079799001629909566255846867575612311121087016480623120411202165957905151229746849340269692518755454383036265099982599424562571020408013842678488012316295391258311785627408902365024789236511699566267997536250637777398689017560394391186430794571987563319571342441564263077332681345836689424310362182450637102871868864419624812181946672776452037726492295606174255772434432636674630969502520176969228944015403738360340348781122267967552796032042077907299100533158307844552232638660959338369949246713281761859316698621568777613194758416182876248243679826351644202554292445217461669200804488825000480373892220743167968651638346854828317764333777198219773012922013890944626020648835506070212426235712047407928563132456012926716075103105359624788097074195209075756725222329354794499179647293413011258702108752249906442301776174329810003078409056770428199002154413324485454074506412254822225145084975465017646157267448521710470928575813248153871560633174824484670655302939449186727889712939240220477783231560015418916814155048320952214095940004892933334792249167960937126669221025472728329068674767129419602308615677833240215027197350546320577404328820421521531924530199348907253596764674818113484008414013198814018131053074811589395260810199464948349228239017720652835038059909521051624883806432257583340476164188459988075514290802676433629345635939287546693495918355926556392706170656475318542464156685745013338559525297553883176110175233112763412625821442443123660768143877307894519609289977504881690221681622625863871372393161285427283265510787661526376983632941993583695040475126085248620049626860624038317164584644498034908449574013882023923240227991894813474504077575099265610610118920072176749696804879509415204933899861174837044783727303876295718382793999865606104950823790352044039821989098971814771634941689282146606937117016506538327259166244501009274103566116354000911428208365535700159367202476499596514843319237202431807490896411814195823774653706757200118112981717595053003874616254172659759487359858684732733482254488325579554252419490586478013303853651276084822055196597775309011515850287029271770420021474026008234449731482230574702059364894234321759739073843477474561744169512029604802796666956184872520903954341532008810367021343748682895085705072841150505817303592619014933944373537772694291488885538820473005089572684327470740272538704860794240476190447070506691264220380427588030569346886802525340360652386918158355515248414914673448646838527188600898143640656030260642375004971977488897803784395430575480955992393952537191120677253934636442783615118442850496670211198070252977474914219880791562236021116492745059600174577940605406472199086841429667478687613713779171636101393152806721592203979875767464200995753910502200288889938787221861701169531121470499014179458901793145750542806315632854006497114909749157370628074821862283517977046594145287863178120929897831751980361019574228402339229608106925317485504674997143533943700718043811975669607253013331192797688614307906855979859249071219581962858666007949115222062941739349902218514772016152529907545262788353024355226997822846654689351205517601216220245452836299127667914021888878971198832697704189046130458596409591731278059136431512691794994765728886619680412327534064655949600358439099500122271845705526746904260164858495191325140854302229914626326561501478108066883145849049881420883921050508668388078680359611665955440711606911329792512568247008190341626506726300662273690054697032063376152721414908388796788273913665827345909033548368799899171396102610067669363347850769130892920352958584420861551511062914005751263236258031361001184345303964206572244479953920654496358969539374196743173843017717300485484426520924086190423187576477175757229356417166088836496919662208651527621955879117449124700154850539119331059645374753980447648981672188323741716902587336869439329664699435480574882229801723359204760737137693389780847152962556587594142973540889048270763375739812117070089932560094214962257757352068537199985057771817669631426940056377749890079128157226370741139925279449943598754667930520357985952261134625998780207370244718442321927032826158431106580561623164084141501164870859519074379175622319826630703158778009321123227667615076821027017146641776132683884060979895168193127252896633872596896467709618399482742222102605560676216235906536606056584270750805208051797654593109316215191131788112294574751174998212817667546011276143389522868115021473732150285820702192453126694392075276236226672445220374474277393854146727280832161963778939712213087845620007448142087299677015867878310695581967581995657076046923532450054136676495637230185318925055852295899854481885616379532483555326529370922333676771641396042290718117793809233301940938672265739102521635760789556331081912793650022847222768918544024648725668535612833889062289316696055665755307436223533631309492297658752138188599261122872899322741534187320527226503030065254648717170085349793073489766500517799824057599125039198883725909881893353202986100627865561899541771402511981068676936819663613327153153132703389579284038997762169588391564830176805695692277865065487733163052671829799925423627925378897978830566320486191185084697634325169944880154433230295123436311714236090485514609825612230246795270947049918134494785993617729780572630221655221451346840784293269314491931434353241819135339609624159391057745438755557896489979984522583112177234660555891447167428211277195969330305972068063236057595933351305081443645850662024469437389135307863942939101236304746623097749097555844704057459221124229553658593902998161446647964754360010028815912217042680691638995775333465451056054255166198568031419908630325750204528203795596592302175887733746622810456671175405562942035560426612075015415108331673549291435710337811891561318370251060342851378692774360227850115421639162627769914998949274240356445115634441755674027854048368368737613922702241000113132321394556987264788396787150433819353886330706116074340188946005484185961498046623031971318945595863380267983406357389482114954895756635051469923434425974622413483687809334776634853118757523574579255878571287933553158347849190867126048406944046084370056714878034612162315128890276896337394680887447299543844014351594144145498531852945968808101166275424127463987182906992437868899726471461104890595284576364659355242705252367178788326495611058206561563607563678650918091445509247676358632239869969521544769360177881115864430187580767847049896832487757260319077910108284099939616138744941287903697854946600527474377613150378215071001360952460396790367321361961751652132237911762528650850329678210583217164232914191108774713054897537314602322539968922902877389618894130774656270813328176525330083909251539943681936377582014852822533889730663724803591110820459396542411366339903830710020882307583856274785593658529231094976431844307181830261865133334120523323685051590336733488840663087903716974784891082040852657259104693102059834258642965910554809253634407076682039993113329234252136144467650001969523118716657705853564840256372344421739179823524835133697555281301328009430502341028500576691784291708073851012541570749715557084908364422987844999944940054784079673535277212141033744738932644402188292301801700378715670167392884075741957890054799564165848003008612773940703602800873387760269483803654636430805727772847041108669073208581395231729494719582368896143693088163779692792892388017927211294106157703735902255875936526413017616759757629692167064180858621298409999414179681632856676225502470153079346826727689973426344007481100080321241390308168397321763449365810654021718677423518155034132676154943412772314039323152513433263705458458970999184068554780761505450974303707434003972349106693962438819007969956674968862643983566640581287153905984730690434371590016280137781889772556833075154101151290892753408218810384025252497290114506995912228654829967451327531655384310029844123785557320897892824144557748783575158375013149404607337984660743285541669687148853168351848831341478727662845092873936554911057805180881489686799073911721722168456082294958365841414984636000282398489651235695212649936678466316695939687997115550828415507750268203915762248652565091116721782658138172610000996155668068071956970696885609815979183556722529853719632529847741992144611350992030264918491717580625844243034790913281124080686726829487048823174254428138141751378402861370025093339841210050929516873322534544068645294484694037400266768060603135204527881273513911170542252175468496328030829752962603114493885933334478020858435298055151916011417696393681750391222491975930558146713231200409590066072501627771900490453134967805723140742579262857677808954157170233097039539415179989059369125010389285817447940358338889240985429503354408837721418662341092345722524989692300588589355596093845763715052310935604184818731251757732308470234625485956480630714811974999324486541940725433742751737812163264711218254529036067359001836686479162196096354309720610899499577633884238408639778858368277323774859724852940635520035944477135085705644028895818792106374204334308039402076432141964571131940706750074273359922289901274420886780815935880106123782281222094855910243680677340304249819116371671549498296601643057259456351014625459940289841447646614446950588925845644217133811639801213519381712622306415358156316269258963902915905387886416240552361401694282629747306855507617886764093856688451101001579079252817630126430137827951319109531478791231798079720890259296873726306231466025271020898301516709966156068547138010877158888168587994436474349077619996802943697727493827321170047493585297210193911819016952839706847243370843508119884263394466145755899051679666281932446728612444063048133755302352716434125290228442425166151682097617090991946616409450989579742527893672899372991610351901350073679837669311963288126915849912438870196866997535504679468719854362840085552488014929129176490540581484337072603754804613314382066432109885937599726326649811012158768988325576747126727478931068608850843828849080086502486359681923084473685852458161868421546091203798860573651502555162936773119143130634795617070149292195312208559330456106118673436489512949319321951242143674930353175140672161058446199741747409556662478669246607987500638953604527499204706981057190553715210071194365454936338806735695874871255610546256114494895673817688438406401108899936755853582755179885507763855593203593370137593591565697591474887265926806452204294894096580725928990087492747200126994101063687725760107887830385983762718152216501177897526220564688861949373051123084144695209983482674931524420784378840755516923244165485655309923595134845940441597680878625058473196932149624414355788551326753634189071006870590541693902346337297342838700037672180954500390959999959859468544128709789268934323387859260312215192615796734923439647467954656643712667440524790490477217738377811367699816108744198486019563824014969173034692827598059632476208355602737721276350377117671864864485853573206478979369336590475043765537110476727449626754588240237512498891816671082757208587994449477074811202438007476826815680139673416587482095553722840112858717137725623321555455259180965659597488953157163255401550091159120177951936960564707168453981100202223038600029151071863491811711149932714995694289065367806684951957549307586482772347311729329086635179208944850072219312181580685287975644926714587543034922090658744637896082851924279682067522209636984142486504148814619396938679353980978829306111484443380189175411243080874641714555649487199669328305335279923888407370027813140542159913294850183412970067984335304897588465045002861584747856638127248134918703862608937047569938163973765707169844649628168197896903091575949361670685864749461183999933873569680102550174973578241382945068237915413342248219351738873551926120840679633576506734810888536901064513275654682345460704689250131021494743235909149177874306011730267837879842830548264574161028346640008219134433595331148636076020397658684676547299979496559296238047464047852074617724584732436577947582260681056822740612146169841459579075114630665530884464203557764087562733722301284324231903694040215132781343053494940293447048836269088720623374163702934860324412960860791120203552537955242723247903968699171769002600231339669139347952075217934987196953264213826854245759871357110989341199878478072317525427939508087381978471524455810041709989089966809160223694425599498467950456404951479277957847726060188159011005037201076550155114691301281676279244477053658229478489312794042866363721202122674206157617532203305079438933896641258819799112193483860578122536542995394218832664619473419633144522463874794554024386530480669776155237326589346797458220227662044392775371429507124361659269291527139006808404277343271348916478138406747092582682142686651734731131278763153080696208618758226186709616343270542144107625117373043198374954763877121174809210001122230909064832304031228439277861797137125791717303557289311847896971172921736000927419474380638433919761507446093354531221000754103722074712876640236415550429061049825812578860878711093646897728250392883950236211320079108995149729947986052498654270881893038625735273208852727722254084716336592216728288558122434373799149554951807915465617149452463560201988290412775766640087291463347430170858071994905194137200660030755710747520368238538708953850986158204381545323715756298178073851283281641697682292749972228266066652488448616247962372151991494950066747866513728153738562822956442195494547477312855685893452857056975553170386491430188496967022418685591073881807538561583532408492563695774121167820307993950529502319715150453411734881450939408797967041275641729770758839946571381692311385692979768763698067243728650590867578684956695382079109387432374962521678134148710210079714087648770665466335832368705037111222424788669162262465930993709380388417906035942062315989333473727924579716548148978370317883692448686805148955443177265730830032240886133440711782395807825259625359044279629680585537209603542831544175332276679158746538261855778298229455599354527339271761704528198457938416652875388855990016629689004168253750213184035079842076338406130455166567691189305240598179843116323712583806175101259306088283714925849512712385824804141757758748040929806302493916194485005930422709251276161842095150600134148248091508466942617779233420516667113608741566026561822162371096760303999119196655743753917355405400364639100475403128331442414954852853877182590197087889068193241730720787147859841764995992361488322750692075962528545288523985954236919203021697317085023012194354556910265936924615392050092058168760186351646189978621516175827736354613755050496399603225537836556486770139368968060121149887225942442091577858421108378087130217486272053911259081123818807445886393816240148423502498577643378277554772417976818543144555866012183507052395453443363615936166844754787310053188352958195052701844059641737086026213047217885723914142531068064935480821657607579478137759343555876337957471320066176053732134429466042498636987503982022400392169808880750181384276790669112513827731315855803026596629587438526069869708109706938378066672239466067007554768844880075966732642824107289468606573338023840800020991903362774855991356008362362091481190932097941401722644035380192763399250015719614578920383318407158926195976387992691520314530133165002157158620092338272758729524648712501690471754472291357634448684970272597466126068345872637677626329955610742671421387607852013850656090107493330347333834447825664269986228951178937235397639850719297797976813092966703906142732793295579950613606386806848732289770353000673052345882468993894150552165265796368928681859915082401344340485582203374265791801269279111094893967617469938059008290430636496719448259046769821524633195663915252397776386044329257522411207630334955714300651713034387131416004490387806843094822682024099266206701064518471427291763191820400131610027618978381612607810182902655691786117860803302197561772824349895112192962869218239685068425565832295161451285473296062937086022293413565785685412393685998499232312502194103883026469698042666911688565391394236880611977685046995797302982980992174292259059779038771079231558109767638383245973351062300521182529562111443597021647583320756517054697703882637618411690621652324454049713543502057996585649464433192391307121830906351204855968817559491437714269823937034893568591383126036377158511531152346721400246332324310407203021742562433989325196339685686583945431707526151128842102475134164349110843676417768849056874428070767089765312961408450581564168251429461940675412874572948963630575909822212628256280890671624551084674558174450660360428018648722501875824071912825795007071989271440623439239492409834970218163674406359285538997063070696049451627642368364151423104104779777317127960120537002038256702219941488663570830685726860730531193364739559831470270916392240542066677527577247855744720370478233565976779577189221064349264129788546757533051282174411578667708642590807507256665094324464559991630162429440052719279473479742263810761142088581562278745444929905567176836816388640770799350581743541259057754018998491150614565229891749733491033719618224968191765370747196719370458964671763681620518163530421802990178016664936847913531004361696992767874152608405597909391917848877887205909694779108398483439673005055373718321641412896838561498518238337482833481713916197117080745357646281823653648162413617496606335865355406584140537682011285385331058063794091134527084458191147636280980436787886898108674812945207066249399394842122757587687952402799825481713340525436208906514886046268411172334644042882035893296721401856639197539295035954747028094615059859814842759226866534415127201182644659747772534159176486634106415495970353210732065527318412724338751560399902317076158403667792345897231156948056416912356775777838377675025152583078268342419198941847795041544734489512362459622320418667368856857705794080938497618574307628666240644361698192257398697942742198526160522859379321461850275172329476697042146959648793277060630064103205193237562673341938727996177139917916856993455382074544233425227534595249005900413901659985218532734969377088055398311314722620300136427461803131962029417671016356499006261404344609832811563343400459847180709535314236213389904816076421574841010412139844164542650761356197981698179076120793490518769529561392895283295539313034190009295234229468893448298740828314360726400517612037946733563247574500129409540105608693175745009904831910598949057200719090989830273864381897987704499683846765542227499429161205528764155568837067223366418265047922352586964596236539114207418436065196486703576446859287597157266220646952681047403353509750597022278003841634903823790155106761832366241151869586021272088373832173466226861633793422052036349700656980153424062086143769532634154138568417252311851356983798361443987365448334141260593109852633769818597818129290246174350479242791947071955403651044674059339779350048625375637897156005372942827868968802263082691702661399997895927680940121226861463201624623417022864789587352311865500986739555355341896741159423640273497616102571906849649192024827224422161371344348334615184423248267819862733122509147074554440536050760639358190229098503031181559949508216716066656681734971195089451900608897581452214846743183631382224669404464326007093843225363605787081988251514287926926297198532875226677254809816790161477706626261421075227029302849434181648582658092606982506908871873888141042232951155368406597930329212066578773396589996075738303923002143252422408367280021288475549431376107720475051468774937218391045408795074851275582173228415695281755332653535775102777900820245789351274063334691393302981981715690139633782094654283813572042062873205299735212220816995979976160569871182541838037678635241751020710225900250092484467361821470763480318347700668358924166185281927693343778978816947806265003089196375793060806758857172643253077305926598655795017691394979305470738399439503568179949415813455379973040501698493715624199735896965050525013248574819132897735439353926667085521525988935065764586548540226245422414824919877712015195256279969194119422980737080778900751322289338179540336344751848028788813661704728416436786798348058437605543289823062001113986586675375148889011180275727765895913979018013248211475218753301198120385545972836689866132757636590954917312985624520243174682127156711527686191386380550708565544329621509710241082209298632336961932328494355697572720751684555050037657620554537947353044707804131644574282896764993501150859107153678992520341127516122069969718995708624223104796857158507010494014363655301421173275259375828314845716681544538046789160680715339692491458829181196128541527505420033373486639373433944331809243242252141956552124805509835167710029742043801733688787076088470944823479521002652922354051910823338968409210449776686364697225100813665586465102960755891042046046206790673925523521071884848112546224588438745814381284063503541663034148982004226981131990914415252471284244570976944417868813284461710607351505491689959933688808853559534598311846754330059933869351943034365509656415628827028692655390762462387865580936937885161297295388771703173709241382086115798550982883829898152852820066959982193503726422154201524764586028228648667100839417271378620594124044819946447976389655624138885824733257816643114296882657760808350241229794526226187296816620486329480410062001180145140129972402083594018405867452713342967919101307743162995172803230063735835610029054179889747624379521036949266092814380335180631975231538950537273914459204784852312716921117118085304084136212429759534063947248026134090121430393239117431702297843794370734739995873278890082210657915388975553799317951649464788378749772270831835812021386725272215367458503369905354635420555850834243648940018332645155434864513253259255419061356172277464816318868050268354731556586936990520582979964533454796022861323933619289557873296422911852552743937337996784233227396263999294047220156424174712336201961265611779496682744406288769989666903390074056995347283670829650781219024171583520379383658392558187682706879811506217503248552196121496337189731716763112192240421635782316953938589939026741943965793429460396985739254792117556844171031000611999925457781994302552517354136166389691204367655813427475904163578421969141320695287398795252974482644986068966227937470695774456304380121627344566118190296216668858077589274863382014976800462923294474351096488939836688917893764732793442970676710164309409268854806929195047955975406582460727523568641974831750701362404417132176265352713326188888829016644224664144247885013836238846672396196922523217072282198229893459807476303822669295009842068651858640845686497500657003728995906664205962714587273687170950682407752286906409158791439326643227187294466978400342080680023791399656599552112484247920321197228735813596867007527269516893548189968963318786212875817418560344147088492583580326244992836831075148248511350718503413364117163802316647392105148018788728938792768667015540090199114386215208282493483178304269165899256059415109788067772653853116186847359210771409501190742649317445582195166359045378479689825024059403222297396436118409146321472291885761943812318319582002072756189329103041609904029897246193635977441237311325775631703078458899543001356101770771717416006651104229089881137242826690962421210028422882696764291405395868312783529948850160823165531741693903640207002800302780797787718919864341824608784266327018691712488115894958774111641044606795623014839368529727505207796609882557525456707401952484443688863511445276814420596863959928828089008771313379816750663358896222356627643149039385362905471855665041505443467305172435578889541377292416323593776631119218804162833586519449700992064611289089139253357919645470038611111282425297268361450153499545538323482323330323935795434647842508831070242044719476883631227757014624707745703226584010594320843368460643258152401139989050025557198238562000990342522828304030754263022661525940399071817848325442016658063173342418521383988572741786370764809613143894224502640017994232654286449665974526769012311095377300635552021170211328735347585973653602284481885810996492339987171370353568558959636815884842747233526640705635438085687214759089280191153882133425413505333280485450446291658687675763752391502129545238064267737457812405331853706342252026734667862216626251890297879881821093785715752859757868984517612068356183332160755206491978309593826909669494748126700061234499629294679442114619557467630419116309948973346696595002858288980055347209372882999162893373754010003468828730910159482051043508722263672652979222527204068104127043289266402903180633871882371046255314675199303776779011509894377599805132012080110974288150314789650318810500289327592122365589496579681933311075845816048853768858248826370338030254173729856660944820351014035470983241044145876272786578417228463225517007132943854596057940763720138165877637325660138838424081208033283619336497871017827904101684437711703790334354448525077328968871727011591569042784113056154630115122291869753151513483003928325704756285954392230600133705273978880740162346466842570064224908502062258609907259637150051939932802751729668886739990230750527384137381882002400724523494732105762677475953174250323566191716129651179404216158679850745043470454939500431772116302874016832052760223734214257564735006800026923969689863586371640511705246396694321360520111187749159016114367587434634759395231346467281996485417371910692828411724431349135691618923087188774016627821984821164265990618851909208878751222868476731559550592785426254778182140611104340503335646626084372351332614969960388552594907148017448203427316576132559748134108029380204309824400329929082101783678280510613633141828325734056297115932872719316003677751622660971414438439955062834012065368679706640852782867750033150025104941552151814153831137143696518124452888560472140106120106669248166649580061592220724562976662110522126494193677724274262531350481696710570902056780223653359176004531710128619430633253353075846720798779922501131390261561015709725563587027742328036431570784469003665560757015968406703249330464439065149215215733515395254676669790024152488242017081123845247769320208230800429574135061999346841967268869895517213815699591435965922852638836217371520510495783389585238190454122599950585999237994563880946672671608268509975967097000174399816624871928666622810982906067309901773048212820135268755004785497927885334419893584452874988034141907150013946215993691930692686855275561893841980298075474515740610142499635341114105008460239067761426736044693943748307518269180929604654251199081718411708036945282334425128419526733668723063401015975166086173398064062525071992637249236291788311699144256738813017389609077506079077634023741223477912936779293349463596532552580442210799464412189746172748492725719203487612007330876402374622840432816602485985103930531399206802836853291121976104745157831177428290824448338399074288384048949566194967824454059072764833277211526186919001927338541028997884514555273536985754092519409587339777451017729860061039959989243572122931481689899377027780315675517477466868678133250721841648509825270974291881902541159104678583492402529943397863529632375848668396699330710278472005407514803387927432789868934544531829463363553109005449038203667340566335469005061137535969925094024599182452669818944782954105113263942600394991779698864144035994628263340015145092368729029150965447228701698005844067934925009001208449333932300686323896926950071228942966084854938909568950740093206265469358722916926641228251588497081190689783887236488334423894282408892752057891056219402495878844129491078209130325705522000378310053789212843163698810131986955401588075631208905786837948884830616227954575366180368388907282829563682509467635228452398018714758147575838976310332448261529866601661919651987651503724548979322815401760238042251090238386304007966257928398584248240029096911251432944891112309570168947651858305956763072200862672693557333853123743359557225554490208119609282591464913755424853536381285982394784012495661281480145820894931224529852043583021508932966202318524778441157483794769508098208342910061760703822782908091491062069848439888917593370367614271672193052383343071528345325701728136945672965913662886164708159541304847483835436168765598591297999105211897566604294474688863211033784295727611806489023423372598416543466476408662261330608254469972675661496134718806593422439612013748085993437045344567968005525584033924840404413280512130510252141353856719510627325588036167162306876240214680338073557965322258571677121050390432602617850263793321882915676284110781206955598219101255327824195605373035654897835385610052951982331013815574547990872574126325842493100651804997912623498761492652875314071376678227507945051890927801199961660357626728604975896747044563138204142037091491488899506184938160026511365134178478538231353372105364740913941589515346829418024391483822506161599547857880618660830437944435675630663653741282652885664870184309271720924049805461564061887224897322811655268705408850592500376706863587709055900587081855275842529548467140555161098057879748970565207279434252190919579966557274523173764166002414341112984689906099209978114948555345275452959307629526037693764474393333598667326214934998252376422166760779354735068417376918875407645895398780187842785827355830218316531403547484226643728815286381699100335818343987523590464044913446648367627358081023301387289076445120268441828885756072687762256692129684901314442727956265315353083670313900075722883103507112282358030086486365997362506612541821552455653872603939458957277672110851554922264621167830259863692081336370169530960164438580771827025390934045259138231286018581906359721005280205844858149887948391867414024333685054597851650458775002601069561901999860931381096068809864390604215379388283523052025964425277131445337651854746096438773964776820734390773776092952678776943496873014177923553468948913291725921386101307497072098821912776273460955661285568949593873317673276562714302506891919830312761325262526035331260676894179822870543024218828424789992781264342023056212532548916124360726825104445828904562552665301197470115741994009934474714613056932956020970110618980400388800272239978143912607378659276810503320318749394297807603929388836812625284867008974718882081335303061850006194388885841835533132371499258969120194693198695853101112791535553604522666331785099029000016731439124604233992608209159214624997316630359871371959003909130101953209738443396355081040556662798922061276339361420804315543549549006222960286991271225146724079194018826108685507576289749548882112946259779541278973462435311352234250092641802321136604361787280645152386404550695132959078647654208962499726697599099694175474969181053023897872055950230403260011341036173018282043435901455574079419564614006299284949133677400421952774837439544644397832846251002763697226653915922789605036962118595289618350241435758159399223136652820156690237961370310815776393447408187635611670460598091231230862361512545086626577878563451182956913856309553961029842155266218880699283447734674418960398591144467444341948963014176552370736806949886337934438202758487969243889904949501184842317770281113451297987272394908541576618498761761773074519637488011391840941087882987401409547594171519342839510773423619113608175512840531026565348821532821368589673932920263282517947803081160436594149686318270071262518343876809539251176314026915000913879582701806757856183585968316034608466267964140888302403474381200181132067034279631719874536979492039187877982017472099699344382632902233490691665205026305790966481752230047451551307584677394753712109856217849695972470792526055929744257909946268898857420695055322531019714732188611105795814655584921014925959267244350844983412721215901152662285268408759673215349483348922960197054214476044902336856408564896831786855621952707786838004037163388462675877379490144954248256807269732936721055586434783922243116028565434555212565711746973934912763886401333442271254914754483372566593625045102934866514147322974352676650572487871459942084337786394131379313346466287375899708856890879142722830292527893886289876736074234000295583398726998819087426284184126139485991086027954848742636465743696482083010746085964913315270203229849550653571519378125743828109420948842757442482950283142469198466231046979930048126905621205939411399453537479235998731214774753977645814162334562044710234439162434459509884352649366485580217516188850768160165178550715114758377693844475252941210438535150077801276607202953098208606794154607805257189203238162969772220853882704576681779706520433868504801032981633822405850988890337716681139170841733192099210777137547470325559767981118501685080649061169422125961459039876716006545390184453163887198611587467079666564378405767666348083100151630613687572966997710694920414076570161384894267601963007451505617936188214366171873791481385275588708688307045964182750625836164760520147798272786096833801849647610773417642960846319435179787428979994393056878963233023269068066161939190021272208894004081549745597129318858647627316376851398132283226345542563096977396353080877068507543189208258737639386712560604085640752126757537709421689460563991366801306766674632573083381199614930485767746866315525540419214618641132216544657893375255044210278448896233056005811506411686556501576865961552994358281233521597053118872016423297256395573920135499685523241434083280050590340806594904810715644213884324252979747244031066465558708892589942637071470391676032509455219249860751282937810817837161086446306394784830631216112857392093507112835781725496284218281964869341266014261845822552570169251320224044708525176249771428513504505755672427414266836606992598316316784790682268506801014624792054139408708822716742733025004393072420572139804114944166297868792967960117680396580086365266005892861815110934345350042166773666915132538005157126124540483761423919093823714251973841437871660494506219488871969130492635878030409442326013595659162106875746462835720547652192792930981985642828221490332520357234130125357505956663301772090387365899805104063906639453507708087568414599415950233850458219615623627363345750670540371116380341005204257535895015239547191499458434887262423172632544690347112868724738569532279893632881552960118042982118288401764433660329362627025946334661403213809533774227234434911101808340038123143563104429332819401176363872841452047795852624048524046367612799871898240036685614785521150779794700530420658217428276213889021914915399918670606689185814024899917258163958045202618248812389886776055892861648291169174969539503777583742337639194265909206708533835604121524774334641043481196454929552431758414091526199174516553236135764657377377931454628326522985479165306811286904348128957309546683321760271257191449337970299569074366405884460222207235743609231881709152246317407736139711695510640847984317487721345027970992708884742592906561987978462427104481429059795318220772859883589090436916976342266941128456973424363181264470884878159659695934495149444309861053267912745832844496221729954930605914962805652973531460786309080705338341861092623049193948598014554057363336303561540393153922383855861994287984282015385235461372422127517863714405655468002632703623436743721400217361037752837540675873087572709388029542479241512668721041816472164331128522035143933558988971057811794878147853186506395035170359558370571129582006397876706351294072144980946837001877581567513122038446497064631128117615392870316982660399314521131518288975715278241093067263647139458642560747509091276140805026990977373278164402298297668035383657191117920217950781210044522199489895796815715515763902333765045183267128638958624077531157771562565861087245570719399555664300548910777821325045815249899734652209979227940885326338676062536646175632890193032778612749721422642731481757011055791812057130830192100682278605883851920490854434434987754584065793512421781677642803887769300020899540057815152328131470622388790105544588827860047532998214841954555151729885172813975127817891211651467107773354056714828509841730773266605417583165632549493268485761006718492185669871988095624796850004323473394751402288089318923842936038936348157768518555347740711280637222681406471504549388190195712737755076382597844982654069386073675584645686458898359273298502988758377252410802224949686219719426372774526109371016045771124401735540479369368240295959272623105559471918384163750831275163342256813747324162698851328094135896349452035589514346285995967779154591230939568982366153823546132013354013044352996417921996659454427784557120376554555236929773415216240546332246067365162972309536351275393777301126109351317731496202868479776279979723948291350302391290186066914344638001575499084863926858472395177002241993220011716450029563915781580263432944424738635854222496833737212388472231348805549811748877148092163573017188015607293918018480018409287111112060057620012619167514102017817005055733639133682933382213184500800203453573889584471441575985123725510331363773912816554778435519211347481401328577622614392488425403387809375913238405222456955445063761342124604431043500835184961286695694047689752738398952533525716724276885839203344393117008046576519026389601626679705834384667822834318273195579645851208285008543887659859315648641547295241634077223417653110531295238452270766972385930887765214785086089832810566926345716127808340514943828340148199200333684465868574453860794596471961334043704958648868206843317803465032301839887879141292016674832538676150370649989991400896425373660301560547756422834625673548401467454763575119739071320623559292901982814404160838487076035268376763186118283037374025361684610536213129894387015226730455520584761607107441359352011992472375125913385035318344915811023694838795561989881081070602769249457426548403815743893706273587792416494979730528805693409940618304311508132309962721746214220589979404505639734996766596178710430736041677877486147343371321237907061858201586628223442223691501861221251872224427520902065208743297806466861054179928067854019317174238303755943521492036056662141469416111340164933770188646145529713550523179213142588736999545379852894938360843144379426645250050318306979152463620506692566106396817616884602098718154228162835086680772110973160110063371076704417271006811900657944798869420993242273593236350160544618666253038900169124024125843943470951451085875984400001022566907596970331386048944607827553496066315414584248918973631954281461273060313271726694141377693868808250658081207489739959614922590703531296870133378346399120497748383787206388671802183721135323768136441100143454648016332441709192866830666797522348346126587035821128699509397397283389327856720808057068479951455380448311898082099876397319613785548301349631223502237720801021812133316885841139002382177518542280626569171671715319716396856510212603083516682258667645208788606230155798680524761771318676819016144723212555153810585896076763677361350123961796165836733534184834845000160477333991041069427387955772421105345799239308690933585199524357236783095068980814394266765627183838605404658508862793561679630112684630904495933978090749838343418700501408892046686415380939687943099295296853723211536085591902947581524240365322417470157996352807416727039116182211160118793938995260110877650273759749225412782716861395391402294474318053296092664579814051703762056348461040351635900855815791948814655162477210239472708423325082378660620341620641528087829293299857468306561953489177089459703693907390899504066205920906045888758365222831519968708485954155482684520539108246246824845449659336477783448285318039966121176877311687925139118020784983152842932757824886467415964654293571670862190580659213977556109579557894834986037578860029643322393432798579148979247986183723628077934600618506410446101353621095392739800938306679897623855971148200222237900003019258009686520357774479379793569170765152841235331289434669458629899394239464002440083976908806323197925816079222521925439169411910075671917547566085303114930012520517972272751285476724130401846258622495733721494799720189701723940697249210273641377143870459653466112841909480975301772756687425547431651332140278939068530337186185729993638246160072194784286266325312079943685628193917533522215720797508975034764073197029800957689041185228124145990588205178258741838256952283546986753501291666779375275633857427734432042350351889851196345836319060501840702855220591753638382875191028749015889564152636442275711556218923826087698077852533518036039230634058060557196440276172611482740581320395856931990988555952806233314985528947638049094229400347501922108750987521714405505444327904782509882623800244768441715140020330909439418375763441014035932018395410310248271396406126570830157761658710819350549470946726790478351241010506383517263136323019972005627842934653408343661132749214424986240792075304008432648007276196564090010417188596454524136901622033195180029498869476601862956642703304018949297180451984020336034286331910652498975377585953462797727510609882808282762885306784827466602513215978075047622581333159130659247174395557296446370896366843910659286132718384450602124439367687940169698325515498048266032108006385855296067187424890685478639412240245866622651664795581173186932649587888238907632419579238184357992113082976959723994283884353931673511320579547173365631026424259113025050035826154430292230012935634651977263664836608999421402548007344810064880018674600289565803341787215282344230320743981458331507497801207942842288311599392947890085938776605750488570217136293135475961428061064825172579540968995765164305815325038672121731445816008167357191511337066407400460958351651975152934786711402124894995475844473976223497926057441779811402154625268865462476820276630090175287079094106423914221826796422987748703315927164197537182139621463892732618742235628571974019301555000337179873199839586912887157711253235083373898642783274056758327851483555613093814513631710588050441519602935372907505637480549215207825401886379303930499779188055447195963097092403761818677636265087219822004307815670520797934680888531678122449446239516049800932357631094375956874394512108843828298826976743272938298430166351203159826165349152445527738577814107956936266677474965927409375369022386466735650410572835658562902168241474875143481411861640571217058251515799822860919486248427947426349375923687409259892117071391823385689288475385082711672314959059969824580850626963231031700079043057241354434354776372771703978681124909733092553005848408416644670054636492589388309474002576391673202947030255141485581762604163227532168004806759676159835187394922162664370551104348524226186607198367505986215498621267938469080302211535985441712515964198103553671074843265758984863472478342668370163224860358576401164328621221272560020001581768283334424899622790908821093549356287888475508154580076610423212769726674317283126125654277013179819606416249985728969842819759690250972166006255096027977830292773997913535224038138262648994861725359351145978055315157850715033621843208260992100208371795294447658270632526158212578773625670059152404097291826513236379459324893880836218281534311210007273452842327182854449531606972946230955285969955402240781225942466984666330819317153025364882736270678247747189888068010266450093045895924717523605775065996417461164998819384386796200171506317659950993813429775360756992721976612235623146349417299434341909455530657147995345946836647889302659131890268750434154681972240952028296242719550864278289888896027654079773458115123332678517789343758571080622803363562437425161963025103396100809825999279956221747275374891974623647962714900531510412336957122498109584480006912518489866156646320393371641296339612749261308893511255732171735714605755958033062469226382015573449809708822955487116693219873039174335461914390299089827569273472388056616251266527553103302628760828686257135187045405189443881027262915361790416132793344784221058912256910284732390770284412653294711862999984056487968300004202872391677894526862237763963202095609371606312094968432930754305935401167004082021843922497051537140444286643676054632736829966959335594746703942556559506623202368553232819438450051015049208978506362064696406342947947033522220983153528540967743728692997230756327042372267411952529127316128052143839976779882118358692602945982745870077985723172942213207407508600855914422248990838174207999944947885258737429811896975748999031800188485360659831295320657283456194405544302517290669467275147577218595396917093686091438912164937942916653035156571676205308759898737603755710505995516621773582383777130684429986750301675978091822044334098483238865083407383527227913341459033478707298488212707785165062282318694943496540884853738331372296119033771460677531484236815845028064476590680161960620919862778727139298386097603079460175719234605212964210381244336939940500827223360866157957762012849149982975101601220360523878195646098697300231816051776892441023087032833455331641443183359343070608831176987560818358594698626967000657342186959397808018658438138784713044767305567733202604064695388143720228964073680270396825347148394945584714630113263641836164387900193077773213511398581730467104089545583520250330925789125338900434056516359878061601633928324081918258549946778724578458512320179079225233461812150079303721170934966628984513314020409129616830745520609621006883392659922039339956028854214409585934190541884046393422199026062965855458091035101081937110832176841905741130766388050716495539257532513894399034341489709758304980843804374849579970837482432979050977592878384772742369781758386567314925671959618862360069285870136899259708005114947507615088370583182638918175591754496775286245958534151404109621574054976278876734573227598612996770310600038815772439310946942386392159388378810351373293077387507799084008560478379761224116772396109768873249899763577872124172825037924437816643588257775696940923289015677203291155746401944171798023004778822319218149663874248686037215888760572898903609540061990358709813688162823243651869467873634795286249124173627686263614469260470535647000639741513406469958415663433574978554910980370633236892431937518028014295756084552116610349327303309404331672046499625205823308014052394628587122889985689023674515547564326551296046122515291747051723962879907131997688120718204373030143880694049437969424879838145360656687070983840981522690685526391266602088401065819811665918235425479660405645002829577292249615321721792242600510382835432656956848456184196196585196946049515311946667385930344939192588535329391312835261536026154326612032219984397278984227051064418107040115411523512633043077482542451315132855613041431957942138414972524100858415918648273506830323428911997867894859376177176551318492760080483523557721286146117315782627603654258007143944522233020619385383526414563672641370176596612495257606993255048606314404055232123942607417425221078963681668409914188037922809442074462462954237305564987855294953870014035761478932499503325513420114464168578805407304830996761788518329120178639070729989831051481979080870578334422994350942610447599502445300561727159924847337729765538161440638548542404816377029606595148950799740045658218913455640339888851109859789981978001434181086804599383291547146048072872681120938044333239542643794118052216468224958256935312867259547387380560843070101099026104688629224259544981109573842412363878405420468138304113909202789929569857439045164079864684667437711474677953558521445724352551312203978882055924101707303986748009508377287112916184150098016268187955300000674958564098692454121706505658525366362079111902326675508376708636321147680155268639858564829324794979929527008228439819995301337294224575871327884354638995978338159707368720384876499563814145043674035380762947541145849973404174335630856543232407645609023972861967268410997097211888791330462552640978328530270596105362947682424056189415858927447441087027033497984037662135639969776472424711602609539837542639843117738640809587234662688801605914383171217171645196161802199644580862843337584831847064622971093554282890995140897548229498909512948281411791505241559692433527507269439182900935792808709249440640259107487965323346670199094264142038287359583602465610803793172273816099169302896803133017468443437579970816576747863290993101789460957244252996714037267034557658417231823652722543018122465393197272048783889321153984072395681689896992092815263204034621853995352511498598600555042839030511144727986560146524863483289882839430035601908246303261928726681107505957219204804833963388327157529074028224379532095722616380043380533459845461962752178034538929685851715167149527353969973562044351290459321442315025802991394911235219734261221660582360579471242152210784714956560566853406293773124444153942738742010290861104155184059973384322582241448238068837333548765877401611709216619576632959597743481311341741071407417697885434075436021571564655167698936653512139940831438946496975781161065253495481229572858618972659386426183986921685920761776679008575956954075358130545510607356488013081528958283516772178792634510046491015795129274214547876947506713012465854549660964552114968449455109318565553116326622042237331573092296305814246673683555019745137447894501976968139357140953301506787227461349892832989140691177639494613755525086075017668131982107061735028729761728332759267883504838365008866063202005207831506887319059818512134266344044644066215637381122297236508360190510525294739168832513774365937936853327490379946077847657008325785900924679604918406959303824336154182080489005912869027212682245625835893117735571695408960330384189889962573232475994718384904244231987317936756257356586021174193425727787892721953410199645494751815185842761446818640110134627155562272712947725094405215508093571176534742895868251022466964937005206989528021072150566157470896312309434166466215804566608555618209617150519091404243862595412644087437528133893668391737147036294397909653696728364929146061893878065293529190008086897829293338571891876771952539102959732119830723105192400690631455348780546311371081588529527930500380146780013935105598220779629495582413941181636271953573384072359385225089055552206897295275122082898193086006946892573727774122918170493849228702684206362518632312921194727016514279677726910896294691461046774491590757313630137868248301274162717153746491392931031581977960319163194184428417391291432010744348121792401263696528251655491686773064294544308963306229541011779174010538769286377383097728932208702973129996658996694865799737862233244892542698083827327846496478196972092970160412369980340080621477248268471647121467182285054429272244343985450388255107492072915057732275257347737991025019858984584479593767890952821527202046426086720035148245588977333327755804129734424190923252206153950452653024635700438000224030456829228554813189959869360984618148403950822735411439891988209782370368213399988508535153454656200919564848219557750241681523375703325009206422590976058802869918043333114358475343093993015520413501689332454604758787451404354084692661051840038938130821612445312782286829362704604735337185130673645167535430840962236423502304980935156572280927022701912950001502857988120040754525635764214937095021386816599341690416200112302738206553408104633222239651756296766364237532683673749798872441174336443972619911102642309702975442484366891247593929945040466536058797959176826471746594211146968327989368200579142349028168231451331481882091923758584766374019474105294076236177598394592016643396565745459043812678239404872804742001398427235946178168796784511116203578715152049301425796091288288801800134298799872966687846228919955637034687211275658257777498051754890850901865774749251083110225253164000053621459490676158814287144146080612909982743793450245984660481749471800238849005575571199557421796598187261839810513390154694580539351202904317750957345848832833218150299400846742800782318782767152203601329368512937915679686327357188004309696911829414604193414283444923875267360577238613600477292178779257356527005797134601962362714346311744264527458126059364614235024832219701356026402046475245580632188646383574159001090554926298199415853814403256039441013146285391003140658548952760859041592135133277737959387474081187992336340496419565435211142177588979882247435965736194248582714660204046037549087559840401630420402692064033802842363195652294985163919465816190272386817127716472666379752135813002186392811838972739737995416797481323316908091399204640685581322426172083640308749497560953821805385683459619575043863938560023575807286157655159547009634621513411170263924465656795513576017600258446070978644473644524817618351064900294224013973805362532952135028924504015040737080150936226199362582283583483475465381228485921618211642907004044749648684302134323552705262027675085009498208989030574352215793028947392506995762086411771020180468588602769502564557647052078029434020615827382019211174513599265325973844338145786175402219194805679610782244970236559064609309328250463405756382991224078287064242109233313612349204923263438450565812172689538641911401961215922630120588806730477976189916245168806154444669902899864289492873573587307592190795915884582918898100791090505205623915807423401894246990402999501970541573356784436950100089929507616176099610714885039131045852461807085133018628354486814754706787489336463423157681134438720352765382395855706245616497314595716848038513097088959963603592799562131717355057423234661797134136329704190470036689841754333007275109220112354147139183416053592786750627987324400985473452861773048697017936712631930830196586432947912602206952326140579233260203664610496272005557709687193290220773047195150850477741560092648676856114649075409679323273121371080487776008997458056923620998851800451113591799542304218953989463298359933898510847640918783167840756553919581243125181492603731159885024584661889883788202236026146923947606897181642658121415857509329997948925504873887135078249625167542086625282488021482210381223427952800755733810181818388673305489615462372004737287306919040492943713103213730517374209082632163427054839499429825202153421405863846988423734530817242183451598642457238485467992356355024694458712261306994041668244855564933645490778479960557495709538736309509657347090480902521490552896681205892345450575032173412097340801072158671435282140196654789109733311403797325222975171466497014823619892674910859425368869681693827588509631316049226902063961254988644404355602431249566116356687756159952030772480103073459085689720774648795382411306078628854151595943736674317943546411245689645722445627794161018623928935423435491937526918433849735692166931611691214353371398635714565762248490946680172269311948269836229174407996962828466201820941656731812731525826778945839444957644167442796197618708060636934371419495565836661878345646169849937371986779920153492769462085697183388164373647256504429219451669715074217621364515863948713809834071827715574755302852370187025238180097216618853461689120071621907724975147879926218625393830178336813214668202687688443572421243898425555675470018352278435786306510664872884934532120268043262249861729710283230419413767865429889226908224496455521736761007432048462705006961088356386658377501011914362034318543985714428294372753387836936766447119922328353999852411390531777267249132172949787765603371233416902443527949172380528661212485858242661805046770197968831402122407345364474808885902599751301983048591249240829628474645755645641186090476785317922796329973162631418575446163607847254138181327192327483166100296375575630755053352990949177079884681101612784796003777945775049802751547781868550732458614242209882256553553051066667433123773829016921951292553529581176757895703718231587193053264233923466392553881860795294272267987491839908772024346689162742826594051325758008931500588019461214884213161987706152424841674535555223803335789634448946621251429191153151109223066918359535840310345820505393827824532688433995396397226696909940434958815113657558708959733997086888446492967687682351715016124321865939394730980629109520852214423397965744609770132196789879317623837943265771132294281642912990084978097799483280623179575905667207072242059991280468505811507063387809619670409767166704412304547994983390194430902119291659176763828269101541404115824147839836278280391341200892430088647373176759491348761622277563048045557046643583279124510907485737625655769166237568556118289155614568117729772834314174168597734482374584708188714904421390321789363736257274059317144676474652078855293089353962343029463720820519981784954502127441063471794164940738651262075029512621879684990876127147004385614484396797818954763315848159870280173907602353598888407206304867596283696921551548559855357762895722938971455818451959861363554511648072866776801775240242226047229460859425159459171166244930957500934206151373379545185054213999098915920449598688803249392646959764629747771451442938649644788376592534413919953176038160223913024082965401554068041117919989044961407205925635675854844489197641842907816137745411725600562039394884938044068992072743119257419395098623390308100209662222300848553579898808320479280364261045622542974091369132694653117853238468591612150070545536064934184766722313048878632834037073530186796553078941052266684615847263598446746321186236151586236956119441133160392403573359968602601712036834059143986238485110611381923448882007567082694103557704102298683825180549324000390471317506256671669611035788281445525270530965999860822709313155215232420850920846187523929186679039901533093960648031618267667432419837656432330092940301100064377385432643549383645296898430210827497186654962119185718379600807460616047903463750004538858508377896243150586480444537645782084520425918101013450066910429646651947307634037461112198029931064308562617220667127210667802756564505822969898443860046677328647450229867002857595296926721701052355297283975153069810320791746623342131779180468474008644325794096920941934675302194182823179298379710222678044020712799555765823662294026009613267600459412903133417932169685583404151843404396877784548655951774946240736265167324770183955685277406157971722314669849234029857027440146442475073884592679719496385992884922214397616621911696674699543605288359643380223669057712195317962588915858053118968160867712569473316879566107087421776094881000112540648166324769126843494965808897761816938789557105681654125766520230400719945972305581181541405300005959744239052037583089976871337980476084603584870115189375567828690890274696204909825826856626698020732415559032901150817475703142620157971469239205300809125630267332301938542272197897584200694537823800284042146062900818289040714334204540083296243708425367050008604414369657182207672015058603550859895816798295686495631673193381710136794776100798546228156722564906838605540555616038193357677084659445898807299130245368358169287983779878154186998225984963818816765916861565912634908408125309999228908182440422475036967801101910237125287401129016299400755097992439780305524802998474024417797426924115661614652589005600361995789551476231588383140139590986012006672672130259125962426342559736083463036943276672692014446690878224735158568215483365106910497704795523595101198895875761375178449434602531388313832917028001356162144959126506742376638145794649271174715609177662252573753254336592322492942258470716454452931393507095914759440721199390746467652210392512498360298318940019126817054043506917276140739530789579306937391756563340311166366015955045619699987983027947437913204418368269235754390754718014166393565621316819498844301446981433080479695604629113941570855013412721460997726571103556062394136185040850271894625692957155905064900992730879996268637707257047004790904606480111002441890865590824079896895982526431667065531833378965771529648461879339119681470492703508011132542573286820284189113080680098924438597940063570199336836380174745284424915401515279307959039421053795181910630614958086592189727285579248909321644029883197841057183552476521382629964373652328558189432714001563870970186061756191129693175590231393158298357889964762231803680166730403921214721992713934847630490346851945136964574559707967561895019683533139860552104925803370833471008054106783462729752682265340107981355225736070683605080763430662446966275478537125154084295831965033629214470915131278801065741733415788560483270042718503816083330344546956735671194242574914500226593776302687524299897306420015347254046668453184648220015900937699450210403539323402829695753870265569064188074506250013353743597703482271988151517700630258478468533338877992060305229926988446877840948991140333008972828183201563659939218231094160666060640824532119701418036824440852974877103956799108342178493905766369780296492508657512820295865543077065400513266735656985645971580844015820255248951518073131318301562467375149409327566297464755291760404796469088257996514917348891749231891712236432004546424315353472716911623872243341992063716612105631014664242925486431213775631785857982838589577475777926230772056889839364921922828914208774626437695573474591586631607765417566994397808925469178098318684677534243823555856206730433912468189514934718884947563286145772367595712737861609296011940884166534827264922116566710762434622734145809022899861567252109290625130011209362875261012412099641737584954258451449709040930827398697692906952575864129553166653133100710845489666928201092109862850345218087973926054066950756548345675912314201496770626517408369628365872432247090192150387883231781882980371178191824723734177211996274522336774672018327904698994379747308811842834763181201711236350899538682180770723064210696344743331218568819387236632274215083794209467169037466393876930820705102861315766912006091164719661347086085111354973976632315290497455971578678110345190275982219543191615759046940214987564123953795010774400877110703876904558279030222912028597082802085598357244228883012466489993658311162372332440694120200954931517974481240738622977695776387346348876742436822252182737768099742289950086808312830060412608290661612765240342208796711893989297884862622059492850072330602640382465994608621771300242976197222210300644725403827975440075384661789654640773464053825835071385503430323749667796730407646059550974051462674015854723116385627652572045628524507748880061449078560998981320924347063654224366769109040057831986496985620792661501394513824890271317673842177469828355924503322791243381693527783749779166707220009459990490449587092036373011346391718357365051343627147960529683388675580836332019860715715068754588683951888493446649299479157881465416956885789548925542822694465153870740772495443573877418971932311305097802857637791474583145145513194463372363727490075555521271351466480435046294090792689273814129194176331234215456299252973243414836989753083189923669337938065462160625796598969060875954298887223065556273738050183452374470608114111120610317989251458535116756844687014441648614108220777656951418444290201603436606360437852704225169830759910874545841115879976099219991776940683759950833038780478943540895734951866719353977394684115055252096302017460072948265229486708299065871428348620883815923103070912370557600551236663912000131716535843188516706656722988581411008760312666564650029367414247153962519298072289256542699110381496721859092728884871945573341433254005981716897869352512172461381880431933750042726421931773732535381881306841766816718302173907388555003826370143826587478074289298028087304620868906088909690027568262477694448464313817618135460544630467928301393281997022835319621815785991469026803564410301428005799984582702965022768370988957798994994892748472549633144389195408328922763718910242697435096849825479496809012035733849577816857735480573990387193946768795939271830063709102815140678488167644873393045397600612602437374620319093962356059109250760804405846125029358908184800880102104478672528353232102267870969275176152993775959029498395264037433933476534332697929691472975739908207571517217470601771075066372937932259975373901000391498324948682901152630231929882575357605535898276560863298481765550511025333910470717961007195955807012767682893257093237339112887807841456073658340194836677193505379407865760701460995013684318912479216049221237968626550800588716323334224110849893416739916832236332885393192447175199296724312049119324761980367189935446401227536916146611080680164931759658974301117493713648053833891902978645705102503197257551750625481850792896131689102452551080068536969307747985609523944640198786033753467626817208007412889145499204262983852146988989189140838131931326840919310138767295132694372757134044674304923869169692322758997066793603027563964041759683604036233008589967421531243486508554658516064273204183335481847286090242955726797429811864707010328053784858286523277283981679422595390007558652560056105158753715453642562767712489077151119165917502973371782781708323233434106594595038518790087561786427623772461543097302080901971242728289455145867273727213562116426456957347331349238041376545440948386113066545417360072934346161356003367033334862724588327522204814556658310451532544643530914523639504685260443407476236949406986760540330148321217046310437942236532653348064694941789533542568614749860065359725134893170958883732051159993075505973288868569081648812461176064845645933093153400955215614445492556540612590169104533411805910814666367632477903926936724428616397714973219332973221603362948641403564970123379183183872872557533148804140260272276810313929931737926734610610445048132738198348881941319012667056328322026334564933066325711690218026616830369937193187026288276337800292680392690114631160937923876053548779916541510056932359358697784051014010582565325591965798499638621017513425293265050913343327998035365042403580689469891791491194377538907229536885038801253587309561536782151279442399697766931294848128121569471815238655161017501735613529379577768314395016004416977887681314160255689743578383753957712448890243600880156674370217419173084548162271341879243717292065023888838725308762293299278274825140540653080040461918772343686028231655456295462252666872030776633002355688188178950574669156151176166856605042212828187786381835143540392919498576500780437603584207726155606885186087530009720809560582815095182436304890434847285220184160283090471989574185134724567147588654758808234527578071046386480391652026206804701810067666225375484018960963677416501908577587495077769851667089630250181366439785697713942690420471462090740744625287894205570251583373743261534216420215868686983418990932904618921597687416691307387757992868065400653310334623995294003654492543787012481419749581768026030577729461076750767474852680530098089769169515329626574220862923207026391836432872874151631907293189902584942107704952095029266057352201854763220020024638100346096859272114441816198383066535530124991357727745575004534242311934802709928143921177691875621138370095314015735977740838667695952058049263065535524023086695140449830291843597899491244095262775373013869763887005554230751257492033042795460532612701594199824797306038485879165919243400611019360589610333066916644827858095257204427047607703095822185405083070777212301193276743754391263095630914044396000506505191365017184462788553022179338071173417729299024684291798955456615260436192046963952174622810965128016318721830660780362122965901109280589888957901555154571852549617728627245459757744246590017981180837783217727805880898777582136359711939433234937417216208883228090210368433464430396445940721998363171210631387438094612170114341674521905336234605997902417944562205370410126180511206246037738069825863715706462186825894104684484007593396580816712635596393449546489368407875693880265804157187274669235463925486673750072442214196529747182318186089246798080658536981302703853843544980266802772767322288977745278028104835066370482876732270377670686539958150046369210000853726636068836113022945246326729247301831600991890766131318240266075970894719070131594606695611392329886097486168260449437325423066962864540502707817527489639107716938761698619371273813476613033910660650186097249721747488644142088690068137422845534017867456177481413378212833885801456215295460833553981307463004354322120206848892080066231427285337745993414124837504651709176228067288775469156619385497764612031260005758357695659118329979796926087537020276014296780462031775138923982585893363734182905774991044426639653640567702154196601707374773610279740767072096371219159147342654506254071582585551659306003659845329848491003720854367634089293412380594320026748635819888535451250584289950976454434112421592235239814976551473840454088274169666223489067266261609406151375728920964726684104366556314716457348306187266541608728799896876007286628823798205687282477410082089371933710737312563264852666106169516056600664150814431957449668511368113250438469506828037691011166160988857983724300260841945498699647282060282934156261606786724638207363789494849849724432212632381989424189993863931409180032263180898584555235020326916328705686745290432648750050818069577101149213135117347713309076093441757930013976604232756157185296470955908469009375867766649184551867571954609864791734210709314708640932935758288874946560836850281354117200516218173370874747093013140665515611738443858283729909154945656034380733819800015137721399481064426482575167573572207064571133405680575425066162786929221206842036387142941734905419530751549989137676903350059823112325235142686428728652307307577101250586756443990006734207554236340455907010950132487293957418992899846452256253405058674392973505491280235039799074028526988163589603753561626617872758116048946734558981800178713839358138390786650195051958066589533416620825164148257022326813862072567463231394261534329301817561495997066967311695728614658658221610685908566372281990195722059505934208970322839915449121124774732821480934274865200629317429465889975518269324014237134227645906579527983953593030127389952356768227871878448940571645361509622613918821857902959153256394648911492896262931030797943931766350510485272213182454317979039448414931405060998445392467617665128305744385348874539378562969811767670036863793932903979665251119853078047368898934454491306550690340967852990554453806909314302098738870445299996674071210137128675468492479439098743477617606294147610306919054593938790809798255889952122211777919555403446226363106650343369879019180955490703307589634551205515961138804482536064562013790699947994733374958502088999345105141759946453052684981504520591467693304548797904071944998395323237582583366696855645542034343684689464417416185058302284246114215889869243904192293900574772928722318630095548351742166738910311133030997791833512310678581626900546503168188074394266353647636212131885495636743634377039790872342826993160305444612823097257490073089579277409950385048278673383670167228232944159801092341338748342066661720476742655688962471909128445557485782115181947930190593753093984884352891893085185522863022860331590389334924340684303050092002011505566302169740890548356874215907418292369077973029450431518518149623125264368042993583768259937234313646482908106817736166192239785149409659420602063640116058169935703056487053287315796368119763254652760700008289684563319871930632891703830328650442796962496529834125765867333638272729627535536567504885554964543827319719096464303767682821326088879881262234252792001756593820479475257974316765054508286775301527099761572737490887824294723518771227337398329894472936626736641419271552628794244180814724293839333981582523195924013917643332069217090655508105363501798588988908524601421689557668735724347530646666253671192115804004585168976941679913879198483429856332736204731683100283078985715077220797315449078975247509125814149790765333471640841490770457098721348966408631463115998311937615778034883194508326362920950519561689317089033158848742382674235261065534594832978031550745964759687790073894017352536991716614099080095027107339705234346176176547198692666321027351983702296074645654862992116686774452987681353606039527369839289807497114437716532816343237299395618671047955540721311249560622776251908785318237624202508730193319854074250973344872978439556428416955745597951370185802786801515552721900778570768099347235103659623011506549914141440084253290642773143684672284915356807101033731748050504384408800329973327545041212391336715633018367713428981255513138480129391703165870579110674568870831226260760277519616374725751155975344885127379275766402721794711055740257254343173858492594351553668680670246901584326303261693793886670873743111175568663923488196248055862467109095821222063216372115222424205975626890276940103448681983723753842160371655581079237709580105628007497146387613379087571990861304299246827646348487504157414436718281083608507220863432947393351947815479704046515532382147667732172820246085666916372966449597650029627757044039748886174806512618089794444402265529361195652685953878280236260951108258872101572114189595507965357012792058259700648668945966631096811840936501276917553012838939140638536955984922568269960138706813009746233022969488993797692993797344648349166162579291076733783052516150657065096358233134096700046293512461547263750848441022773602409008207628960773991944391780102459450389703324471490846034278541749070378053076826948225902956725211350074746382443591743011146104468491411482009320857715574304791153116811519973577077556017320513670991866304386445502913914621647372827692425673799773687826712000513646077426375203099013407561829287331256573237609601690842898905850602820207470869242542929889840150683850703498857416027049240843064195720092736591970746897752467216990386119773776022376559866536712919169337082801787514963196249655904042961176425427144640092585471801802591483076567152236182144299809813558291985105111477028322841632863542315261150112074970802546904465509915552647792394797230416758522745355517681043968305362704679216534176066454824684310858338308493502662715161361842970084259013400862244316749055639893685815712351177282035286291407463748608968440313402327795820683727996606307547465694403640667452059232929541932349911042736753767292957016913874240372310571816204086194622742776255868644609948846206788940022597699820705633925229171850237152491247274925313831117864128587955059798499083368289073907002564080616555770233574916526401838165255739360465755141241016583241456286748657310826374076841972938200869605419610393442723575199499908598567865983546454025042518814562271846268816925203703537784212294406042272283011134045351149120698065478645779326779814168747832167195233080715217847896612658947636867095284622732521782192448387195720186237710466677451677370977590628262255842223094092168360908061626690142555098606465758068326052290829537541236697355983368576641256866243083614009777219027654595089134585880108110771204635268594289961321458276029695579923221980292963314985677090814513009610825651122495675980166981512384332548701917788044770280477268044705384460113510711204330115197548391901861037830409757086214194640333395880721840336347079563281454023991252798154040808502557337977296634997516134188859598914169424769382349859697573454846702444468916813652202085107594108754532058682140397934949999340577466116912961305578846550935649967399048781024312413642778375952838439202416373679004433704655447586565992969516939225369122637525749379688095917973530271677065559505501605892812937834348317710461530226750269829062624049768131056381580550252497104960110056415989390877728395672466191216535673189853343939390277697903038183853416380629795256835617596464432770962411748341548928018667967509374839049976086636368562542848347311341996262531056098497901693574732581524402791867669803233829697339420014940036630933484269031684902582498923914040240467302363416773628812600192685392324231769414208448656086968426637641262365171248454623934873075054827307496250727656412420388254669161225820827215792635254352867581905141129132889556455159427209660767322626450045638809178048845683564727709563048763323203400822769351626991161946795637110173266603246343727551497546513555870093926553496545205207517490493425524610992530870324947242928944692023913974246109567868039707470764030708725655403030283675004482663189978991490756917117334820732210678996017472675152682535132511747305441025348903532735400293202315301212085552811837396906498465141148865428389614130482497246546255587187631638106284959262840797005442002016391856709401406056993117918716781863265778296772159090162419403169347424172345058484772302009645357158717373630177566178902421859334516889020448378639954287731256600702248351199494713201461482407102015714550561295842922905751389513440729573109201883614015540670601284955920880298611255857369599736485532436096903068115079101561383211613971751758740866946219633789275235292202407818107403589641617434585712177519564786289988533142312817889385130897156239580198696978286051239497762259849798126514601573998700702494218976372089044451115876458318742165357142765754490312525278371352310041850217826993484716924315236895797492212692659472428180015251940036267409653718378471494258290090547561469087909516789965577462955034609733532627745195372580619581055479251214905476407944637928962990819064705328561347394526246291938538473601676213914060274609130937219387290595395079739693354347236232286054821573900667519018346529121225150138906937747413199160720915985940692980600516434520209289404751481632788478266869632523739248333303724867117170300412561431844841970902435585139889392465117917773846850064427012599311976015149346174772285681203308748387781905367789848419445812135256255071129260604693325177775847728587936387892802199787939617206068167612848282934119895514222887821990237595589893368469616215586811338931286173272315899599579652695404492652393439967450255469059623164900612432905401659030316993822413377356481475826590543344039381255387267303854011917873591719446821943320438846243238203811582318945322754416335144456475382771030102519220008868836470885276460547396682381121823618134234716758299017252088892992275803313477305471043113513315353139248169894933846149842214561801859919673094664686495666546925805709261946726962246437510131966150393249689261259660200439639896335963316459344328017458977498144904665412450129651103097135990646721154962342681090185440357192479999732821287467716728294423411107358840247307215790378171376600947741863198467205558389431705336713257482371748227708638027084531862613632262078741864542735902788640697492204241254527898757658566470408159118117423224871565224620736950336951226511332449522459211292272726980728484881503197867304773680913167063983404250328583688422175579404626522039093904348861285558144123836326661274002861598366388396913919053720256426397562322833110809972976939969540891583060561610318401707889420562297841259634460157180638204005291412152981166810268303724189218329516836387852912583306986873934583250485885171508759714488683509481364489832628856637501827302491658141015339500138504263489272067014113046900042700628801448230608238654636224110448219242486517050776002265851784029492396350498307713689727528423380309282036890811833420306534380680357966534465058363076369464322831436627026158896755387158276935374532390348636136808212910612254761636500085166612590019018865995731822568158748922625675207371789172688862690225808063682514857263237911649276516631914520775104524005853442839928638052639119327848971307363674472806140076949634961842696820497584333626541876543252462943866609654962813497697107743384904138756458510378419951639262516760527485075242858855771988526649749705989418689668459200981019436132979181156567651432688588557043247949786098905647755691316597043229043798851150204710313458222797815628439695588021865066025009409190939403410430994021622091221327785678198265459433352215612223130826451355863896119113861194353065895926334375251039115650038224450700674769590847992145485042020228779451974879113663124408236331353376483898224293023792593144430907523931907101948667941235405749590812069934724742640058918024856845146553483733582107114137904433094365979366233280873155547830529935541981693415934169513190225300141400030963882325926173948697238162675193073018341789030180928385411215161315817525620734710498806015740864178171035308275771897021537501239300702279426078890263158898572848627899412112590569440650491621438471679260239776148366114445728651927045210658409850902957288662499379845418212150807847953987312904003836869602842847307228894062193093982761531070602059432118084144687018627479800164432752112557692293282900648417194715269706799106338708681386559157362385489045065130332010602089133076351866025391759366026528101985857338659670558121792843844933156783591505956264948554631253540335854629446381188049387004033059953510424991097085951194816315415684373668991287835779240990974869130011600199543231916300280553628181460700825522770139887884329988512016612315354933439268180551077903432285723895859927670207365328785777421570076510042613551829314471082604977166590520289592599737225291566582976642306488827384029569738161153727275004871665003688797026571284250504079032687322502310174427135868351840060445287623668612365386079765766249120905638419682409494869359629448673963545756217556528134900702495187621684367926200028596050541048310475363085772249171998765911613918203914448870591933292123122099125556355940748935886415635180121102456369403371091165608777066917529794133813426588467588231623828439723277890122936513412883005641510439583447367136035606324677542951997168802126689132980542569398609786458847929311450433085018700567790461294718956957448372158214470511942929398457034995765744510806252485171355453261270924875458913000102552114986489566220876233282507054951338500818896529421548972762660464649565671190934335491722024040708963938022003264965822762562018832022157808243036957177177762323607872521547091728751027478466546557964930084753436681896676748007808872117449724277831232718296739942195974266578325191149873743146081872947652731584250417646388407924739260943304963159300348809058021872848708653102747078779756310265308112644252427326595892349142083278860341196128383968837375254743894484864253629390609874262597440169625819106589957421149602425651374635410393088707925273546556931786364242845036774060690220766165227450125544717087183947139112027530663674221286716237036200139936543808129811848701320182067140754893253928901228061559711104219387823016595500598041063004623549160379734287429482141408926310501230733193608802495280516993210088741144456365103877069223640571187016678973800676946158721502637634138095129073386010569282808904645498827265440545503839272073699447800842293256024675655951496680441153992986974991168522132009708337018853551973073239359286969797139011650256291441009089103229322365138619314231573363610849480760671374461042431140323499486415730967133071448492015548290227453040834062015002503281589822480680393940266686183632275087092395449418006576811791548677343590455905170112058609092390449158935181463422484644700937370840389850117839539242511511303589772718980432678785696073868599884535227333104843821067461822155973565198197414908653577274194003092781748163657094184449777838829983132692409609413852914907707141260477324848444216544247268021076042348207990135154947712237659899560801671909950526138017624031072205093239022131832643681763407950363617498641680115910867175638843916238833207020212736914044100912516837017934548637281822197208903579681430164136299530976869514602747149735375331549637831960665574742756670420554370951949104272273749839727705250021063923889467096367533969271299380526128670045698032274967470615371090257246712220263067649054374135073207703600660159979152864945073683927141534007188542594280878592054615073018754623358161288725264629601173935673907685775216291416587081492507656357465970225212269402470531052751881054612407144225246660777975929690724365023332649456993401228356192880996916054092808632888168957338111429483621434452330218473282860239594340139780070739358261504406904294908738879833655239245454077781349511017997046365983792044015640564980207834759252615753032125631384752640732803031119230360667230993001147392742644905269657005944841030562463909056849065300634942747576492348299093500842930531784282206941567419668763767710526182458903804290479924592511129926893914996191884083397930215149360745862838399439374790480897720848021736074630886033510660090319745696603770951884201050781425018624042494404661484627295747219612647124395252000926654653932773789953114835926836300535542382932918329573867899933688203563636034196374628267709715667597446321220087094057007868669324445186579008299668583946288709476786723211247886940929362008674299079927078803211736868176573781313079709168397855978299722039874940009569151143199053539918809597125591158178853953700930537791009121168901809501673841691996299245096353876814892571611454303460323619489878793020440310191410007973004297986745398562229418823530498969474694355730041266788640221573108411117856173424907492160008802115171702569294278069172816539851251065803483383402568246148632637661400616145027218502466448079420417515018986933223235879113251022622097487309001397959048376622955092769804030693977660617963813738298516223433300571542482093092330745383005668343317113735536119930721784721042014895619519508889197418763236934206448692699306368240646833157573696327494692909128785237116637533821575565066595308839352156949277619569246713903227225524323535891538902704000679230145483982670696731022615093896122503753266562539635519157398518033617566953610216315221951208413499991142486485734829631238044612188086125553570512617467292290838063175333373822475182364026305100912513521495496831642919573521442715414797573958519670817401533231872739584509056251891151970372732927967344775778124228070540929725338049653353482907458537014575172096199154411279231450821296462879910414111540297688470645813592856037015593871770588862688422810326650799588055369478623238697037970501132139267527079829889854547337565043450501542073768326767463607093897322862745441417366206032758465089479349319323772549775926930958103951263361969112267113313485123709123061305582385577750242106979745983317624048533831536308945840276823637522229223467096753137893875781566850816863994752058643646910148003679346192291961494165251763977406376303564504239262467647468805905712567988131099678431275503549890536373156990014923607738709211769668639950845226286490183794572974830131187839254577084747478930843375179665050108926920273677421729296720340828425151493134206011089873701349864114142341881812834792658967196122790817563401310094985397515895413365738202882776436897549731443636159421360840643421644622407380753337087835725426647925318715998474766480518366748587665449427472391227402531700664802579508786992575044301763621018779531802995290922737685909564515606062980794865269901783632358261653517834741458351884364471991337105132381534343681391672186830190461125121751181184708967808204466021937559254088101547839708404908426780670084915423523130063920061973518204722961304599738524613578019742089672792126635471556615941954971346871665866676345878590015116599152010554260414785068503294196933220935228092414909944600390407715005940819903155405731512156800503284335589986715591160766475874558051495220967903129226252753087980025193915749376259234106166812496965264346012260639783097494427880524073699898301620848385531582353735404182324555742136950455558176153229198965679787422957410144609060303854800773528095455605652450193063674102719594234973573611458165868555959370058528374723962412129224746637621545175067048009449629790559348845663955114931250246355162271362077357802980949407752590458295576504867944540404800980003672001229028169391854447699757294485620382755685245757436711579535427096199560892807065142080705618110834961654098548858372485555781451597044885754571649566790229376172532217869836014212603476249601301850062519374633135439898794726319224244929511513398191465919210032292973621571651771941659029258920780714651624788855011488512162228035930404402393591998001705304826868429419030221883967742251536269015381448241339199353418058358279874384598943433269179559143250771803642384246156944977248922110135007476410736571580787059827014384689347271104274700559573801062247427710997173928900307244149097926190125856847104315439195930140074955911224280738431536465162273224716397851308074273916893720442531398185249976633283624439509780497463424289504906843937757251616156140573019389672822906496199712742040165354449503101315753871624046987193234084340820818059728235574955944713247245133782848942965930080777663840716814017826604646077733925147197946658718188568661541515027272819988948522736443415412171803343910678399611649942795382895958199904373373606954666469760022917073653933683880685799641113022872054108332247512146792294060440301058186657075253298296860211892885025624093064030607864845475605937930174789035959491509301695745893857670596183038851323198574669461100991367330316437250772551024537933093286108010515687029586357717567016770125770523099517807990704096740510360623833170255949610436751732675685512187091962420620442558640846981789896671689225063307826674382764423059624946150857529978042569348242450604428543462709020742781706745160643523746841647784706287480356130867361981090384771382866112402046210561318841353402570202987456841792388858284618775851742000882903641428690185164387252941422307073740333302128105739473893926714291961098010629570445382920165282889173654824780495983704850572080783328616032536212905487706712733715396769500971985582927246858405486562549188632118336846801974798680120316036115955833930732813693915956097244924162027464010974924920331843525860310827173803601485878054513516270080149337231970989009668711716036401604690844546308170743184157005098241563138422345369072065333272463414875996893177544821253086778579480522375033566939427428069732527272039330575284601880900886809713948485014536859693173824627073735143190045826285239656159949493084570323725263878189738010774738728395059082539420374422056993119266541009763360764415794841852942384961516676252586901416311198735817050909465074110476135201358342825929972132028655335438104996854689204337103226980793414742165483213535629415758599517591689968685587844035836226607408603646212770124611481412996745672732813719073479851398961778417349180262402189060333531859454395720024847488659881617632994672256116404285754676422366471161109694399676419951035459006352090444412567738632164282501318974012403957376896021258456414306286641443964411000135602470610158145338449071941501442018717485564733054703604905934536010960631489950662510970665020051308207046527777805146159604570188743543397823159775851421661175574927233099835055975156624596266387182915712797019152458477989159677204832640830629856548840399246781027166368651731605087784730363671505177203440668752673439636532081803505775252182661874462968468025067546766801209629018838773021236429033333016775570661415746502940937610573754683930177594823911250831393446636783808418957041610526758544042376220622957026373214205084097346021630623570784515146928736920669373013643246738844660952965606691200564748673746694849243527367773203666799934722237208218059736109265918511918625456593295593171602317079809236479093892352111954637401799259570411912272582687234003216354297538028696584718839421168893394799425580565342689397409737361683606392673390579268399252777149017561197484858190911876119287536424387901704183096595546995117754396540244152226990376203170239349067223309356017566982253827125019002876604002618100880342764575961813402485918996329507883440645474767306217439524901445774898440358092039302169399495445123322524459321795883524630039601783772869101968787794009485922247719923572092445387135777574810044470982515564204491420822333261875405833609529563247506192784251872230543504925311984970068419539701368224353672643896244136838653214598186949072636215582343237642686326272706514204467489066060272250427908639297390533963630537880810521388135895246082131932199769938751424153728558445563748374084189242740908444502977151201851707860278396803130486898761278743465746225097092714255833417167157085592881978901564167211995245403497424710081283390905488878354562808961924459278083085910958728820825470476244102028956358268632183945705964705033267074304604195509173042476101826603904246334191124990035299016495425612367501059603038692349205275201627284750639937942735771817895302818340798436512929882142218216940049108584454476921049591650173447773479520786600397485573096310263706282044490699661441989388443882692814858101968002817887119839052815712455050305971223584913459740049599775541471857579407970992763501712187696252586881990885595431577792676017673054923910860088699527447593411154433340109965920405175467052840030661258224438862750060782458780171179488041187314072854515637416056518500072452975496594333128041038589054078311030391266961684238288341500058846745190919775589842397897631802005971007431774239438744153578278371260235281187064924039881601752795804910168962204732711762654562206499339809168220875694632406389353753254993404641613100309742595606268935292393504011914923515909829674334540150608141497229657491336638057270483812590945175159304120350501465384438385347341612187852486581315108401171001832359325133695230472574604492589225885363239545602355671090521919246323589480377011305142959532637881732512064247290356267807388186577584589304402168794206262829503138588837633147083682506428257665234781811832220771967842794905483953071571494337719524194073495392042592871723378859579588494827834301656989260740635245870203932477072276597384217172114522082868399595150169703364213860547728440966229428628850082453052190433994831825120454648113528295999185355875106802054897709397000022346448085713300149439124431056419398923067234713484558128353859845779862158508762758872939133712561031973115556799083931473666141936527535721313048344878601252312682234115101049578168810565548532490579547036345500824076822550113476675600769861544752372142881352127702589032811635232996659405968777932968181924615021543690713543496149751900531562181072365020753507218502317774951093293017042924643236717901146105981228720339905894656985467984323761380754385567254770383735656919954175047661578707225264436407700127066912726375700843764409422086620135571652037421659547074384917890539867393564168704082987627332476421667933921541305205358643099317000546858133649885784784945603264082817113483447682515099995055576795324161060165106860348502369054723506864115358085891564885675115459293794309331018353430911047968452092643523786755234432775631586810028011575042223999687387691335985545840583200061291193085779677128487582397971205395128701907145524339994213963752932542987596240261092709243821418439016330872470318369454731989579576791703089665734358214793504208271148815385926199163327823687701087562340815886018339862603541851688589894033755215478942746190355523284815090652958311257289454225879300797503539905008373481876785467789865709319934336265330002520492670273159574069782824873972608772902056456864201658894209867294817696567322892440399828490837808355975751693538736247666055707009182039627863164967605032750309813675701094206299955136937478658686050892099114196768901543793114913879869892200084014151656019394519059985052603086083714095535282233225716462490697714294612386121175474601431425419174204572731381103524822514245675476402208161951997719052311171652542807351728856389293511121309063345112750920961890484921252236947226575162901094988080380211697145322657119490747384365083322146678978765073633986408802285958148855826201575621607302117613447286104596588031499922156433673907613519157259249070462551867449346976991775137290845842018947585022058940531492978890694096240918149324275342424668299706347579617209294321540019769825003375906435961247967143225574217119254248738652296418378931635547468852966661036941359223342701467406549581928010069412776417223007193841618247242337194936819860815373265330904803670557502974851864476389704889743656259219401837786035049294497672478405679590418543944528592941176330469445993210284499429184336429406050900633151717446119341974855705832571347510809894299983591609860148087362156146706881554446624952532781977903118516625083593672187407058145417692299256967393106174269141442011620630952309080782464408051542545677155643414022330390310435557981348183377129787698689311581957210411262945607872937727433652281677371703130255025845445325497756359630013204264018615416359393412106421056374978714091081539085667649963444670311861430809984449153599602341955558275176927923370391540944587014157491147337406913286190920561720418185297423601043889988510799554197680546063395587172177852457825305846443402642755964914142837545175734240229259277718453233422709982042763897262679219534842726214754008036576100325296582696939895673584117535028624051387069862042069795782559085104283792090825191730318958919397316190813690131214884195760180792032363995082313926706585494123833871702660119331176616075798008951490336739348858060820764377622358177783960570531390782080767401099362220099926804293150190807766010800616819924553486858406366423503318820198937810990943543991987415253327315590214851917365157159432337021214948743189043124355566242823282338195852539035500105731458175177076554533836959077930711640601387179038594248838120636064121444574711414640961043799012754510889402166156242980374652682153645989589478016630659426626519001169691640222046186980046516472848774024179314799590035129903690206741651294407982290841529879317444001702913323603504485189889432262299734894930711267334410345717080058576304894514424540327654143636573171006592737297940347373023157499380069623242681647686409408064299641247820794925809289122432234633845139120198125958990455571649198259912895940827100747577404693516908069833577720050498907175699603818958066123957621567895144621978456746539177964987725309707370772941942359704117570426876066935939207809332404712717319699209599529866129657129254177273010475840320912923376280183457999002972531879006240445688893246199926097100281715251632091089744440030306916296797477263527411385799962761223882716454411278660373892147915419052944205987518417078469462952519382698950563922882075206116237533510193102317822769381288122810861783066564042999242885944295294407916892878429441158797998244294728067100547766743425416662630878884404978645066617418322391060277237607654816718549186354944559071621956311102257490348889031895894896991540208520832184879099319748213357653447529155918417479453698512681716851063992447721488341842257848446448986648750205828348357416238395555750874307970896415026545877869341844397458697613858003513337476421350113450202779927419234466897263579098080145659143121714141781624419940168929172849586383660941358650963936286228163922234910032299028266243562521922294917989464131520544794087256889330270773644021535252627542592476450965509017461470185369012349125116248112678605171112000864029468211635944109562954787793951160897755942929943072774654201877395651653550299193397411201252360242087206347915863707846278759472103201079679401819612089829570081756939683266093359577295905298582508051940979601284825799918105721354836485298567406099178798339962043334516742634714537555596337125616791790511056644389126186194186027988081101232790228701955070672981082833615227220315824588721945949893536372927131215332817814409904776370365036198134484867767122646782825898001836102103107351991088150950054723242262338505869295600722769180822814170782303916058153046727344757067075181397967251032546280484353669944363119096027871381907197559965309079394702651482545242950024226016408680099796239888713511761943146810158900634626092217914578616360216696753685164256364351907186625512033985961101554775890893164066393752975294924172668616495036464393502823211162985633311077887830289519500452662064169524616745282115738561353335938794207035912843431108459461670330873174086357775099328219305673338676718237138021817048583430166329406299404689555765119499593571404971157191769123147060802428421872019137378458548893699581525383488044183263405453916255570950216276086658077960784024552243073356115245383164323990251207005726935860690285919970805323770929171695408086820606579752997629457094352092110783804485973410335671809658675181730780677799524659105029556458675595616582332425639098934943382862367101477634424438897336463540950884170413328333511668133587143182501026513969230767412830723671222488682721610484805841365639569313350503622977533896283855002186715630817150082014159785044977205072955048853231384463861971042529386624356790939834442024178788804551727151384940666403173238082471549192968467339929983950302460743437493681115894529938349179959511891939912811313226702604100067355531650625668021709172583476414858562542528699901284963505878555377842052972953121872275849520989218290680246493192712044189765016919616096709130332483694414072565431298727473991317427773149844472301644079582931737621131281880582389477024292214459762371024419616175710631671137108429040287964272696039818022594281166086252913253301562093851581103175768606253036405212219338238373280845806806939521418249345791939531661373211527829011991046054552342653975798756380669094373088799546864757360302405783394724014211373426168180242694026700262924164843918629810278621488816278439205950914901512956076079969068370809642912036736850951804312090341210645512476659768898378452471075708070906166263405511939521627652285075031489095990846080583661907734227578180766006058385518856328699740123582102854032985554918795793459881186936084892871444748654565680169855154232050071783391423038675337880031984390526897743200791894630926498927567381924315161931401671474668730471467544511242082581291512199397080508004943407306042691005423402832249171526956524480418118707955970103969111351933591518733154875497241864636717923568298118629975605616139340753520441137594251087997706274407523036481544558474900828342350246380093097410664584448308084415017747033797176000767595417608515996664604651286456770327472273477749995898594655656624369508098319407091763310012420461162388235891656387070476488946416423559111097170029074019000046906425981666766678085181647048409174061164487463884451444885259428146483254623226377203176838580882063622192101143324610036970462188807660193105063849992978575285175075860740475699118324310783319902429260209342226242302892340537171138189496884930628438634704928778475348330513123949293438924841337092614431154452099191204566232978582862305899707974677195488702366019345627031138766786287591652619342934665876593777790349862917004864840305923277304310560409435507198067953428759824886811682675000283435319780066980598511059439451331059460426064012688199954645696889800035537922083049765693236146315111152230207449449017750120137544551248431349391844828212332381664405515081169771235156320337603357251996622717553495333406767157250453609524907765457185303926592980325896435970191878726628369544086076710216083065311230472016326539548681195598139843255224535539931412942839995232184525897574849531560476011058481110598293450726681085410438588941227713852689939654766226636577052629561652446424409358427320655883003823370451233235682074584431208493679022442001614557259718363635851821802524082309167491164630653067806429506102601780049360112180800067866773539928176073873159434501507243945186799838610248623598328864065124946202148475365338230624116667430887505275810211577929215554033421960053681457300303243104821183479569767894504566731362870766923822864803047664692317129754299837008347567046308095848120755100989956984592241496815653062508119405701954707980851955624377967937775245819189911859661310589534718818697261268862203720131031253846389154907256581340535935387243868484745630567568946519412571545865936947265277394986047961502176154294585404345041114918135910785376800055183100183431153549823307392988495150333596747528575346227015442238417390202771270210993697432434006519803803846343461427792995439184876601060926055035458387391944569699761993267852549589217058851078448178611222284652260459656436239475789621381177140220926169436447556168900877768999035477418266905144373431049122627493159867245937260674863822456983602074941193442390921205392644621726440129664417774936878622100138200433769952935091106197088235125370691671731850401107697293143606721723894401889724238921729189677341451932613095238674249581493745084290441783564867105257968184558021818144354295432954036856856353859077102759755408038143310636463820860378481202417858455635337820018040962916016829117835332829198144275542815475434404821489772161136563730118002758741938321892325419176552542558534856979376276028622373759042596724465321302739169161003969494190189707480214772274235974255979316293151313927516094268895831985093394808904160049506987681399435021284583977297675395500190798900923608380337691589947952066773495474197698715507567319604715680127310803735264167891221258391399092642272626353419012114598873801418350976050137942520706324925005918644685634564783049993104496626089698849711564367523384249136447932674493560286063723774504605342652918783528192488141488286969588843673152792316469553160186109589429691351321002170521036509190230687819205225593907410505893720029553789595631426211247125365993471448563928156007077233896479686607789574529662153853896276935458077350788449232914880352423521875235630889949124473584266671877975480435746825286078331414074118936153845911974527527696237596087745783593940291298296350737845046608992507714214428476874413638464454070353287057445108242946333911371311721406053800275231568114859169655762816733775326560000242398679838977580302293407517484852198995123909835119665587551952327059387796162662418683764272899019589805302702638568022733124291191927965035805330764425075100197183447973368279272186510698029741288570891177490135720532961751599844156158684339597390380848288686489587095223561628134467254762869419288429383778867588365351636554193803716495734967179363515403891618881243427209577409048308743078100943605978069257887477006635492215634895023425325633956857260073575453286201480555420120576940138971866082072682791082404648973346947346066561103628008364485001684167248218109027780820688738994615706949473203643675833154501768361722252759662602191885748243036611695384820375564313427311933788783616484908258696524467814270880175912135098331832594545191906634125711808345765427999451429084203614649787956737376449023611391828208284286531358721448680274704158183597393419105343728896626714294101646402394106611724198845315259599254204578325527934407441788407982860784016943343540978342399028555866067694777876699565082295584853558489131481965816108705173383869896236711369569603839931086626531151194119821731903411325986892122808654673584633573572957670420850415334630892855430134501617961255266064001919716172006164922547368971633501594683193136200868479689202792690679577934678968689396097944095878523685235556115331673400253190620003300521217519517772431613104364791061922112243567575583609718999696924604093392902322233615366711923669904702171669258747297320176988971658334927250488985438530757893231094887233534114122000204335688170430451440060530228331269274863300213433424210751793953170712146365495520203965394225909195031517520264523285255579569280937929168021186474301575889326488621485937616472814138807129740046715855310105751713223937951158964655177828905511647999071199688564939224421359403402553789675327715848769570196543160655379788596467249460252140441034395669932976757410443545830036935513335804867303329231172984020030349030310134996921359944849138308442663448873134022726017361424615418904625743424606961726847407313928024369290552079574897749900888707786411895600963525860498521209682844262858300160333083053243313698662774560265207243041253772943694461831480183190108820425087616668403654162045520909295104911746725432122206773847842814528326247346753340446027553810163837418119983660322946379326527347967723313116639674088613969455546884795426582977319575929683987553108110767324416426681490993611043030536280719300858400503868217726785790519012519218138222948002559288726264249158171442029421732012945430029392861390014380212071105348380160632262233611157927232104345675907137037926544368803174516468155772260552620975733777788378679698514492870545132334282884793998018572661024185183462342849830770356354020814002226732936224000456053550814094053382808178115854418280099440407762290252584972091545886893039065495453328280188697626355640628738196457492342852368665569108240766843229222053152122316501261684313425565224157415865041473088519731519443973736815933923869425642606691492601325539423890156952856876195627395744560310066620398886498274092319231768925041958275543719235083286447615524987087758962593596548777274276946434843173954933447283581292560421004963314327590804437254441870485354153366034553930492345981897850053609127037231484953813666248227786617354872948046672494238751969272243672486272794928439901610494535689799305067925192374476193082059779541132239011937976911250474167112133267939480561609375604955510266842026415173221572287159163556446044089527137160613788402467297897443759921698623586646909974262487206030433320928377162368151314230326991388492768973620530082239522659013113743900888493828400574294770707286766094219384726913925606880882148239766946690225399631164060920781821661707521872933548980584951953973592204956409804642830810110159242170939779945874443272587769760795559502004485016801934842880505658274067226814885037477467733346336608816522152913687968983014388969603835695050417296356269118439649637049163852596591649497407066544285371296227791831250848629593498219041141355986408881358968880060873475184358300541505918677683675122926489531847121640808091755862455289865745459039276162780524571269655702988531329449181535631299006920070105884155355174261300432012728349212460173226983084907895840524184601769935923878697458906248722050442636804484658543532200201293108385225900090193159140000311114244200386586587229910009584103847011057218802599851743859183620183086452060584651183246807326978349372954383530783707064488619314777364203830383148622734674944702459440415911408621670091341798929344904186747506322170793600890192697977559341767273853909955185788256370401492889773695376051120381553548674579424826740757597291747834589227036229938087498588541014810066744436732333913831327808496110393548169102260437040905360317209147501095420476097822042925899511020878865549654260977783651432098939147612998789080388902003524261326481002416718972043558502353130614493391852060819814958298432296788154140685399834489998276199170509075500493705522856549202367838556384053386500888535726941448710556535828763975704568160371195202876700952144505878056937171412655898472273006800162713545025173038298219302823730339957073993301460667582498127505502942208047261174928757016894321288754345017301862194342082594069470566977785118995577524148566641139603338656970657503269937855727651873128076435195097103935389165734530890987448182270405307123504338071753948382448598311993707818956569145541164902148765576287277979920762133721774416019237541336508719007897650064488400208479928530703248855542884449628509107202326440615711851388878076644788792891231797006432291545723661304410137229904045951162605227536710664641051772934102192137371431646705751203774359968660093683530210152464096228624751168919428649956752625111871998145981332539819484084738782501329625158668849218281287213814818742355178958971392671563150663802318724952523934079261889488104573246396769923353684248464917110568392760701579366130547261940852201544174663789495056144021623998507149075391277359400619898628285460905949323115345355242841843732853380303263833740636976346209687764982180094709348916422386307780267211870610346437040564311476986011476823362299001511306635322925691805510534440254585195700789484147645986067976888725823508941437116460649695834619086838487248869846644724390883645714023068736662155255415837595008143190786049152607702425563389061910848361025145668248934462251258128373561638749188331334488174089288434946826832819452936852569807257831807583736193892874302072947230796315714819443735077517633836440722241234320947938432937589070106954861611176418425406746239540803671510169326886551669115945828872310473031471763996184437835854741389581709976332354522320136811996281909660416649142468371134197589928486268703673724742520172150574769796643333572730286907304293385317748814352131468949634123137131912949025164495929613407949321167151365940941401902921172198616076145105919633671021423260938688845992800829824285129194684516987510791813710859601235273192267773241467770000709168501323968316375308453414014273944449073091760158000958545429229632718477752218484079638193758940850648038095582642040144054301600010718210721863742293547472099834323875309705914345024652037955484315907464964105192753086550865192805034864988729268098674134058398744247426147466904471574148051950828827511839795127856284274483452189934710359264613427684224003855581946898079642169672261484334937903854464178215969033333154792970982068210921293835392930594600631759474031494022431912439393797845948334315799496855615129115686962845572989254326154322316796245818961985386111595347612101084003313859065144124997964717279121007847772882770407183215951000937063699440143773597386334439273665276742799243684256575573725862503459104772678393352366864816740888448671226198948990521821166222150231284296342764995777853447445197383530739463770849365209268671658002993062327510775264135356013848170029194082431626314647660204774229989853553673362752262620231181600862294582065887625018593298854157670571709573661370848763203698707328371751699013693594684319200046724018331302928021011151207204375018279292488329419236266273103733707866316164879223775903418958887899166112444796408893959234432679708609453749434819315666971865693849700202170047156817760471845881155590086134904937532403595893620926920577685462063109326950126933726046074928226975488547938281549937416698696317810706666298959582355242502891950308642064438433477823493377338193784784845975117295997653856510184369075025474923506451021207155111509222538031755382311146724050254461969144443778651035251411826243803972803647097736409393739044702378103573296664250433054280708060690591022635419965872103220836909464322153249784157502827413573550798200217243765085468915846917285289693386185011427038480848611147945309443587011187647776765308292682703885635906096942469570926432220099135087967174896166985797140359412222845698177946122293285397865649552019734397175591385391729148576836601374325630435865020839435772652323965931749691801880523578273077875306294362939771983721014320720276957449638891494417909737130032577438041804510573179746472086060453830319972500322923520354123240010502947286126575899125877486101116648466477856297502360365277345230879065134341624171647161790545014804059782424552654929398794969728500378618096993188323331777429724585308556973158059406937940136351255723106076988346358051168162275760833686899628060881658025555486509620547623054605168704464776788741298011093544669093441699517463868586432918556850571567299656425049721999846705733411964045581183490602669916341048022377261180902363465694197071480466688460857915199769159971215814472376693049892400407155890915530283032084185493662094440324730764955874761162216079299477665913979170568142196932273444229457017148922336646954841626449044736101575915429342398725794243214719381307116683473011390462775732805175381672719282381640260403288583076562066535324563009567942510713805248385676396060709207077518420921375732494810892565238681161876307371521469427912842836529312917060287873764567376370446874018066735335417207119931624310915558126981297728707606699300930782988812267698765252943678124398820139009908389527624697645111697147529492390765759901228264323668110413749733028617733876349885302973728081218515942352177697850939878259375861260538699848122757044340703633093609161419101123298930241543850449058804765443787519350973734465876479028853241228383958493447118342648694346844148690185609451084031934411393829415342315149111544737110774802951394769269812105127854021937526308214032452495165741079890493630231147164469482443056599525372162800205907482365909223827551158663238466671236066234513347509452900980680828447868918730706062800479442029407991146302893910242525714359816767457062126452516361949733334584755391056766237044712902769670969339765279760854624485478582536022906658947160270782276569926751766868724260121991164691241911632455260802244488513709038426047587902277695918381812844211658922290669287137460821616401938333589192228428788049752057759080640732908538509314588119932541822220190962327898604423974524084494723218061626822384148009711580525067458211319818111012989253751191449925295183842410542096551207910910771486997413800268710577398679969890215964054816097505325838171437049456340019546674294422174387862287060095159280603326301455309858874110950249608047814611888722405834259081576408044386252079765179420952224561626039724843931366500091943182991092117837743677513485189684365791845112050164547695254670146818195024162496862868921797087544294880980739309130135629344280501141627017930464182495689724552273530331523657412221240224467304860398441758800522672920431624996576192318975092159833345507037582833484902353847643849054311190641794288385873296059575849723593311893283670511065047054430658767167033862813659046899178562209857584312827928336627744851964648095233057918786155354873587248218495494945141908193312670649122531222217501677926373670782324037974132455628670410880337951934736405148628638063571151171886755331266215802531998941982714060389634898784829989570716222318578471695104385257305870814630395705766998657447268657070037866802227051295286925596423101641363096852681187639683652699901241649765442476556279850672994612781899766413672725099964683749137668174032718657926076660230346261729113691867699867860578716808421848162819068387435537395834138056187310048215593367606562196844380267439658698797848032376652870431416600243821919281091739262556633558507748145828912492065281376869466947649996133337864105978570323462334415075807977178587023956421298671575701697904199236223075589032468146465774330004420259259793794888173987398897517236588035406226809461982432246983997172073891093251871097254088993345429215288365110153620188204961723100305942186282145024424758647166113159700891636887029661909050647067359237868126583019709545399272134551249609996606707544242211878260911645575103064989166046111744454739397126717822565975771120476285722867299834558255320254274313569307390933075843525190562444623728970050406160119017541796315636648319651477231833804810200167723579221042299165028505812645759998338751314781590809023130485616088174456848612461202960609085140933261884259802047306888472580204947890143602048408327900216413805905671389785929489152278755903392517061672908583447265435604973488473745065313692376378622930016102994361678229509344098589593111052146261478969754033405939478365131600086709490615888075060168423669886203113057772642170852458451724041187058191775424028316724341991090475936309173813963370104515213840741600602480534802957469188675646316515720694965769754688226635198411182390471449181677997465119974641213546346906419227237593062354724322148433095613750437151792032475740424842305752684536085210852576514073746242057198280338389358895075094491050529851800726296805766421933934087387921782466192268351067497988092951879341101593175643403418116543247892615412948092789055451727333199771081396569452659801002669620098307151444687543023662521264447843351592547778929738136197234334518678743138647192646282361340833231943111315376165134566263987048467440524154624232997851977835845222930657339012274926600715627019841774948165034765986272553626723385684195130904505829477766858163448644384540923485584590523078949958096043923732237043244236091952053321829323606102078139652038602683469145062447485106727732648787219596548270238316048338472459645743403998231410467301062212063385264341908480688208502841900537394348122621286979501122014006834672157231460158836522123443601324288136250123312987368387382245914034445488761318082118747151328431451411260324271357098158075683867242729838307264891388342402813187347396247631631573941863618849593870840166100829481857602732194645321415294942937333530629928538817573781047342085031809701996880979798990164300100654608116056877484192836786779941390076726925307452105150356100795601700387154505588754494054848012046057002436548899324428509521014815054377030424459932441210989644716307797967449748209392287887154023100860959446904612598415329202594183861487606541563390817878185686193037137528863908316532379099156077883134432508210970324460640809326066235792936322443685840908903449991413119660715919712249353725547374963474145354001748035740697149044605922279457056784221017275389757276241830596308849516964175211243425450459821623492622834248666316203277480456118339205581188394785490443274390342729810136211950969095997376596162518780908029547666073914391397504288846278591733355081909556904487555916310540465184996329920059232687191379807905221722650083161260470874045543760445182231210982727267299334640941200694391324064304445313322591844436930489966811710535960807414481293798073978185406316772758471411777299347090729592695143455313488039582222229386943848054326323667695064767544555936719551382364339149610982462619461038695310987845249100537550603999770137202825946365785947029498895422292646134206601621485476176100327350707268151437878050121223725906174186106865529663018538163101243382494238598987279283703791123792778274229829740997549394394911062855030981418491436539292472356936826925285788815212089902361204087958917263032323031290917366452738876945498570780808758608315059177630255226701039299650524016948552903235898693526058639277372522236179408875594807215365920396508084073333899405836224114560308944898238320190627975435144415828998496747207595096295405450264269563720724592898670062157286742541929996614387757355564085506797200769474764328438153519067906614132897421404500823852823867446197616039912038107630000923439975369097688230522261054265621612173994315475521927908692893172139827336182265040885850127233238620070277329034061054554476394372769920914667001213477798054654606822256476742305976076904825375873007710075778945919324013610060379736142311895627655415941682152487187774908892180147507802112678394343228065244878735006285377814350926422707676585905398458255187082205628034607456457554509752970330108885300032003981398942323085525450211283222878548041448168943273811985252280035017781147120103404451401121391503053504502862287956100225955320373681138285903488132342980556108723238667793015427092026521076384997036802116992809970434681105933599639772050687143698655709853927316576402538640500565676898528611657418069495269707750698444967775825448797631888304963909639985411508264754252053345970197102183531887538567559180152762859393103997289543934650134338478392800446681908273610605761234138564241153101946751306950804604928387293548082839185011479144879308793719118282676056867683843308169924361375155756254103756465070987653492869510107761085150120660015022917523788324033201062745870511015500559369327257951395689093426812541153313757439536427914948361794692355366358176458021273782139016055861789707557718653833815490967836236578427746976116348868312234975408863013820148785333705544596611156255908054218384065059845730592451048041499214657136643387649757027432205831957159398547481375752673544871152047018006869092769968638701692399334303579970019760078544850348655447566412649010282000758986525683647316926152146530446446199709066684314552338617681266691387059384438596483386464775898149650460111796885725741565783261840949739292928110910532081047977334511228245706503982550531842843313176186434916876805088636573009051434464247033222611821070232525955667285116005489627451531079694441643491015570501894596600453173727624248663275807255720595623346541772665734585415237999747393112129982217244730422403176620871216366223931608125788622350191191574180067719397113232553231662821166319195298976288440769392141335286611508569009801789970197195256639326091174618181521020861388961761190403966988605314886839607692918175888276827338018624049737589186211310741682741050753236361083459885579528213752774489779316693131706989888694709287232060072907785239510343783873978333877790826899860854915190896108028093065117709567453927625917092128569352000704429275504297888754486131855564370952441695505462049261237768106374284118140294753880550317665787523033576245416047863813296487798225587666496309152064612792235856240095370562763965230116439660340040807952111254737347184340152652631192324189699882905554274179767806221446983607670101995636215360731146120759593279875363572882710603789098764535823935944352964241881080379919295247793584023718375812192911385934224040625621605024750993559662582811654019850483571963349903667865510531235369740452050223618788879664236110150751966495611224318214059378585433327323933966430804314125177192512885886590793205947214074016670421461757041766854894640211631763105080156345906229737505526102227641436465419629474140369555454814939953917128314634022780954630676913113102025090144299998345973388224435384812358831413898586110190334658528735496672003860093649048201202525066454469625420907788601531789135028204671334320456726955351517611463482712012622926638554811130318606149077688419039731862337553452118058108917648257124936688188467634036976594079607849137788331753277261151478196328275524908660562529515132810416953633788220675800762970411035280878850516550925740805604264256209745686617711604468844858608173987260581859705878145704870089060422332140624039745413054384576892988828662833882075077516779590723990523289710770587463566083303617630958609742743458200602203228890782134058603280979976083487863687657962097434663533068698868890767394166825459187484692460050561822436527122504042347834566320636535407343880633311727679293893881901091945604634555345687594520747046852920657953437769468436918740123993595430012500537784663513337689938126877388199618999054577136660792866543483250846166535929444240892265556237301155099110672404520417278465118148833045841455100087324896748871746346059870933703572716180173662865288065674429114554474701079459745280398881226431620563584466686268849834855465003668650044654674805064989580885886722831464183843159423253677405903094748635602290116088343958012623034722863543896125868098535072793860647581384550137397998768203853183289361754535437980317142413977134164222619698830234962721628711296753234539204532193688850494357967640212940245318838698666439730209620017694910642851574232901996034529978715496337846388788206141507672965126837600113288850585395317451974058820213188834017760557156323097887510332368610397067111613492712826783201663636578265972669455804414843472049226541504377528776644783546329609792146636409656788602359434341561132821307524845938592167709067107315408921535144601961050050560922478680813585002905959939366860603962237180879133535098090228612289331201195950498134994318069048495595594521152030038839189935308005197822380524609364568644440884003574511261425677639036381747228038363165542718186294260010051951560440350494188622658659177360540730375168687076512446459116758567081709645987724347563609156947070760613667063140769612721264869092935830662849065235465160363839151459105376268208843370532649992585173583066791342541869487690432677847774908171796397899373426953114112048832885642698170786956188457408988426917108811863865644778381100027240475105642283525489384715379432260523667582100142404898407361124293012872372897180367608163311075113531053949055391718508257680162066743738600058066064238661140020125762412222191535462897875916240889855151482525086101967586430387830554338301502359938681310358348202796462180354223649466424416491064140249162281056082976294253952069227991563993070117509373033586424565257661759904677907542047863809128679037657775379341061553251857544104553597239480859156058532157184584817234685608870408403782887462415228009069578777988677925683389381660350910712383145228993578700223203538100337597491152610919615208969717744355964141460224662698498925464853635189994632605579651541767231986939033303625547508128790468478705362154946920712705306354183316445771622590882278349616026009694072797016898454359822188686035849890645722607332218898877237966143721514271372117570370366898724387955956967642723854140280190850032938020889390952877561876445715649855853206721614654254197840276151799122454455128062181005466040776565576628132022574412997168319325509310441755359544823236348702524762046272975595869324742095166282266736531210744553904695147333543158179163514122090727044370840083419981463202443589849566528964277784851100349612538098536220369225409328493655970998452104095694742748042719112638715208294790241683386913372869764222002120725858387328442697700602663411209888994524007922199478936325084768087182643783164982791111116657483920131912063987259026113852408334357437711110572380270434200641058793725402870103744501095849088683262857812885173503357529634125010488040764704051992984238981146310463164268077395336703954527665912433673117021396676848222389439974251194721673596802046680730507752618002373039305910943680707255518913883549584508571787078200923892784589578436158665041621729871497598227452258006648240190187028018279325965576574194713140455568287733860702954528285482860551451734151241433576274277716535148275994062230114115807625421199654979143351268378722943676885295150562163365469738361041307179348438171728481830944039189797046225246922468285463830463618170910961157807814177263193454184632251184287558471740361131957755652158898584007054020773227568269337631310217863972887391425800241656971138421391118563434133974526984866868731485448872637298521431206295232963374650882723026698543614251145537473188232272213921922332515056712891963087664192965569615194932429069693241594917059636882224348823616831848299268178781699319160973545919461986085203006433634820840258124295798181555405685915315017209403168054012269158046153528843485193569293558521279772217411017585408189623848935073924002029529877537254518132556983187410634127885835064623394333609301055874177710717317186361695262550046934780121919544517530121478480184832476081497051748298386730955276859326298859518502851706986000876672203004944369270866191639930442474107427399190834989048563606491163549552453965805204546556720523727247949909665965628771753678764773346321515254910657040488541832197823348049197223279947081843026650640135392715603859897489284653594345187665018820452969329106670488684410082536536665785122871452527918521029722676794341053439904125298633697420390458483679411936529125921610959886611204972216964966638246836343991283666305215656412611286543978496337560113854873202481438275171662641691672425676044552311749251081843515559151127360526045085457769598534627181053118922466033578471280533841628605560527554103103850448106471455926810647925439056041661921526747815516952456647784959152342166929516010435405709315152022909139195490335397994977743499393972252848774025504291464650625787435423209104554273665455036672640774164656576256118103065144703118845861466336718022690128972752958911239197548248118207433673061215609088915899111025194891783126555343804053404691808372688770615250597992270361677442261742322353910356217677643438903645053111996989970784130826254040204672040998501763640924940474316868505811938144171545420542521532438521916880661222782329424554792712870315521774980731237153070779344639322975723501013020459395217062959670813810146625761029157130443431892760163431801892344181128231948357836462447647094121522491182039752353551608944148951067624439310426598705951890283335107977633935606390174919391449597644809722084652652267870430529269868331676187591700667718698948296314778606730671988543631279936362649179542177147657162824613776651565387771921500631072232753957778162336650762346244859025043305695248899624013585291832735521301604259313859997824816558945387470729015697212938478779005414706090181227913780805018766721751518390541474215270559309937859531140059208109446268969896027533405962686255822253561248544361435986991262164965722437566100918759719352296421964701239346583108645741876167962530189008989452490454500158439368795854719263359262068357554241377666812228076021936457610850181187716800819058889344850724962241090498777809925982402873682305827880028406579483593958603754900497686371694241448279971358416300816914193374384100315910447976975826080249079120512664261252684107818275009098385512560746358207310253332309277705472471458116709276588461482419281006462949487655903102435943665438635942087503596822307398976087167409787986281999505903732903557790460842440831754476998699524648650900486367678618861374735256565785083717418431685603985069994831265677980095835994853297495282611625355748485592883223282579637671899590237013589990949923883081028364123558519730446085657786047205231148155821791274853260019342640336052267685511043921209466637888498879608752897549637100904616052986880537946425900533515055099776690116796185481749703306767218709016305361604035431367734283138330566839047520997945603072075914148564700431373735439561437272642633244698563200089944929619890087755103706123649199109319277407613787302178665225485363547841371169593635155476138334619677779370900930167131867008026785221466141804467507673388982347851590292871194598681777248335887689654765854030648098132783716380042296172711525783334698817535778493885156195694773391781353704793959481436878701450542034133867824788122363756628072116398949522751111092613521930745640249927427601919227248098345470441379282414693144788294261456685351630369652815542714284132941375796698724931804399664774390702441931955352108920826950111440802098911824669323704489417088138268323120332392914375566880110422069767925863404063868874523246609173336726083835845802353567349429420740073110415064093387312962712431504736448467989790279966870408978893446323855332440640360611901439483495129533827537926935342566468942508917079876425681353859159484791890635420667666460778780898740411167746861674050964371078249855641164442680371912412735731645882624468315318493437461414058247582271219245839021906909240251384312432939457359804525860581536933358965894588332560983060608034007797543038212459141392110039593808602550078270723657443945575500316048961967536028076456997053596834032153539991512959118552996666593897141670421805197461849596769669933900994291570062073266138922006751515916877694723063982833067524550346569952717186415876005513716980373416440983405643703869895759587088484599322494044377992691878547309326360503663796908141956127240240513637605596301772321896059130382478458863922107267713571000084620601330175324718562607413870972439145950568122308783594844838452166089577664343874734163970773836073783757963177072078670661216844731845078048825866753027037499405034432666150371295676103968296314054629045391102562762426116867298680958561129556489226224828137023825921068436751223289856291284431268997671103141178363452095355849450685927960006992066901928509816894776874057164687592944522545360825415436942795841303410197913891194115493901008010714863665491490117862672548387584431430304124952094583752611794748078123190753296384354973032368475832223980250357449081212224145134247113973705307818616449460823052891101427495297931770808881630694487775104667755181159400802070326457613540938804724515921600341013053595132715306064789853696528230208596043614843557733539533860858369082219924408195797819558554049392915877519333766716052090307913693344749516778756741796324931367185996999786514667178363140706251968395644886246101001209541842251048265528661466053143313182994210974910588360552464763566516080126604579072958674535323661618382459175460877702197517680655844778172631797051492645350042458245269716716835174090273150781740216919237265495622819619901461586908972158825167036084513838372861367561718512986524480463639360282612218335166718539531869612406799529316498141361154566325826931829498423517201149690906791659738714424996618243157124163505856885620377060699465868586407124037734483731703409870905740196463539410344812420552838987298128688439430890397106428949334045126373910408587193011798395831011322176222358344695153804957321826113791201617966170268548967455933828911062347756719638141186827789853820035946905343153951759611012016871282773383777361869512477853046820229656273100785451281801939687411921836684655642727245394519519512076706541288701857360930204709836244009556706746378991419802089185255121383632496927993167233757571523828932246556564221195607831669540751656219658108637611023562976684050487039601848700710040271540768633103253928116913208692944549042578440301578775934166964737645239759113256112448487729732682335465558985592950459776248684634060297139764647027720670914795490685582314152335006880503761648564961110397147288878454298814647387394395054401925741748642748467392032614855910524912721522417812010587454213500130471294673206152702168969388209864788665421247138278136311962598207698091491893814433456919471046461909830670617306852842962729634714174231403393849565507871226091482294850535935639898306096629317964548128168867429164768871565851568817902184375595191023330907369467744595607297736065231110901508537295819673185249468032418083783611832601761038513905066169782784678329034060543161270984148826555981990967837492689193817495347316695451958637312689435643750899367057264862773404027193492232804267985433439113190611827357135759877000815481000272231581958668717844215816184835823865246088248118539690034342795432952903596079082408239490483795451748339380876470818835471531496497452901307406917529620723157793824845603333326164364566998245976810464176175983015073736337278900903589248249818075530094030135816054050838538048249511185483504216937541064611418658356427251818400336161857044563548421530518697292995327905362263559685260734763126605332199529619609468291124996489486150841564323631171367679252728965595416654773855524623245788832696104913336680064589554353408987830336114255435823658127255965996099558416018108498783666808605642246863709232742719911029352179768832060149745839355220298502112605442873454270830044520412974138648596935698336606365406333666668750604023001017816139758130926973227529042443743685885102894804352282301119429657142172582750339298906416243985855433189749079877369384573470912883418552261243860716908009729792153404520618415119706978862108280934504815479427766156749861641464156478606446414755248937418970966844637238914793447270847061847327224841140494743064693335077863255987326062679272009337724133777268110291097031033314060864856561018763034307684548848977809192953165935888224696542952664291740022568679803958458168280207806198453491854964694539253147360183842825048128983312725433684468276287292684930664244113918934567772794632332788185410534043126173700149621410790024974235997492537323070516483495071897103911308538180844798899802232673053916141034348906388399577579319232824590279855193903518486453270534441595311129957635853960422661253335984042361798210078744611015945354751685580769278846698793246856852233874498803865467710459895879276385769037917658301220424741104084476734061986826083121153337904199510350504115251536410606127158495204862613171209224125562619269855935423466238026016096552847011895717994936485397854082237983022107636962398721183451485336179987429426992302811475261947086397182870034011999057797108811594362491621546920862421900587926874176761874391941840793546794499520480789894695973714105094974231535085184301551725989496638350887130234798940065959783270732972654280506792667043211578742280486763811636418865812936535068817935059215643213623939670830503994696517075373654588439370799614982636644710092958825570610325169621713556096402121173904731357545788559446248475181158888144659908865051607136797467222340834455265378451844719291867403214433810974053483960991864456289594100115251591556664424373798713411412477192653412529289699003913892894284174137724801430636329146278608102998628953609043777177757927530660923320430213433337747623054942356118830884995442505100904409091796518081520214596487077028840483740542720288081934722690122667192755663963012022264309539457508669356395906177706152655489660901058619470561830400243699510305903528662634649295497081150588282386793350339164719035719448942688927538359521839506006681037212566326309278986416134574148950359425250261046020196028492293493948789533606358080567646983770099193824764136509972847660226329500273888172058226327969246190977536338847790342611277408878628311077987674533509803295829901204959779856325992063045929817039108049035344480030723819164490126819996596101221630917948194800759853605650011232280705910871521021605264777278040121204893518714164854448782955932807112966509533857463924605248830784328543044291711808890219429999495073299029148714375294144227425951432313499802937780532524934721919440279510171327700897901823409168536458572574733976986412710308875738134464852884596673916146308340666682318542425908441173523636484639755196383609890230806467415122916480633007394120202894963131483336181497173794714354110895176535383497589120511712875852036052604295271941923854274486616058796854510294035931049194092436332947902399016679664650867583860060059285733599946918157252246705834947178132109252199028305373319335606583933244225442749864864268406421244839021583633496690974590408587250599994092809764055876970183569262683006927971140729278339820310539614269744003066650698159417711432403086660325802537813180560879303232351761890472801402366808965560623983787327120670144861092859361712300636641209160886261454406893455045757366592642034866567975943594942930523786693580311385497611608106569315840501084000373870125887841953956811407845261906769005793312097088431133400040136067253394327306274448319324531001321814109613979067279146266126649642289045614998378157339298005934743589543423453194545981589029890538299143832555621527919318939925044635035958826238521035514762119916640025887785434986939659343427464128478817317410633963031063926868815358134297760685528800817834110680892103438199792946292565717503721137090403141046410790050238690970312580342050204282643750654639112960500225292422242212086748915834281014486363433921912259247395137092294704163728340515831820934227453064411808599960925554157324101562694933336333763114460545798188356824564909520102160795297117392679938972762211717495455266324073904145681541472927497010943013865495341865240764158009063655112681472900197606235507616589953758739265539773169866102972021346285109969706261049346430919207290548795973996945873241300532076876225973828861697573503883695255909308892029236563203112269709496674334133041990834261967280962759804691825970088307908759330438883457064919007530951537401707036262757226309132993468689248685797723325088026564671647919315987791922408860457082558937137022042317320609077320565376892323596015670250787986727397229019893780249179972778444496587863546198016389208126722661911706873898060728921394007369808528614384760293091581315544071256157316641060008881672034168429987642413042180097620013619647370769672297914485050343425389746747018109032907559105233680288202006466971567897121474909336750167856868482282057359604185018035929918912261415724131713265351350575410820266366596831598768862515903651996707835998253444014568924680676948556679036942029941065236940311885638243682544485192282707710234087043078098473257461968580327407077814019973744210310418318634502316864826602586070387016613777902693733051997603686621354201724045971735226239694970521170035433457549987743608424905362011334298829577032775646654204765283996758084229123846823276610163868825856683111627584817584435048767571338705038924500158467877612788370945907081054768239500262967416874138558641600841473568404555096202309905363482663260302465442527063616449192502679758788211289339627955947369997818522984250909833103132730714602412228659857712846397892192719382106583273621281340668093338995446365772807529926279975708915616834241878463578014433928862435234705336531330373449474315402497376334078703467800662420449719855161712856652773930617716776276897174318267219533462147463876866387777785263821505422362698717194470268939110527595999699627961786881562064471418072556243204118877811279545471146847359507229016051610158832077707647413964824196832831374756725551103620787572870822658893673515154849283312227395478734064795539180483727755240378924861299181106492571752903323261214852802240444934324220792259561887874541269306494532491950105076130997426889127281161650052556617740128307835575256328296435536185666141574643908060794045682396233462097000092088377217567080364650555165745347992746184359941127334289033490392975263950649251777651934221458704462645398932933742047399893665259308676325180843789968297160279121865962366739419356601144630421492517119028935736005849430647373417658124538941273329694227655515228205560586266030457095106486251633108444502405582415952003005854468492271848909305359494457198268471536614400610321755160751919218794782007111205050438989305043661681710343732100334153407110168928697765336463127767910446354508066191713640361211826293545346662485263127561633330274109431740550566121666429313868854101889492692196716150288257103008848523536422226063523316302680982314225882336792562809973802906490495896318079353772782404009199591557884214016542258556474515005789970225647206543933359266461105869864321852457502342025187096715630573108271669360348074151100152076845654710334027873962806403359859719747989697190933215638801198249914595751864483319067290107030162692240422063736129856825917306135353453444982937724086320213857678081441751534800752321289652761974021302122513168331162473764403815384594626476056393738750596305888760778485407260279931574153808762138312999047680503528628352332879888369767092724952406749149650084715062435565501945603369420163521841848241748776491138567239093197587189748597553930745155028685207211404156523253515338688577641585605506089080799345296955322412479156516780576872353856462081636820352800261846522183049801970507291849658334794187393824531122352533269678689301312266687311310261192222496273878683680390494338166757147732606567620442604815249323548130532133843785159986901971927080767091284082680332771552263797409074021018595353861053122675421803636827614776987768074572808000139881896031165379274342543389853747561646879162240695206672786934457849594115322048392969684310326005203389249889373239942344113017431045589830431393396888021153272571174911302076605228705389863574155666703561646190349036811748448716423638836011296296627354515584045128165367050984571220655871024687419302710306092706622467387912623027079684023535444172370936856983958793851112870711963741711302048493087479880249908020196458079293069009427579890937134764643636069833226969867243656580902870080019011447196358524326948392771404935060772832534475694634094817331887131135902143307116560034344539132032262005266784750264322868967689593159075156074406199142765658016189464388724605032000095826792380447371086597011492094475316615993688269149586516543287414925470459431432932975186601046348568431860121431213283059914504576990239672438156006524004136310280229883303327359498210596938139439089404123107534496039652584080611590537460875846553786070275066778896579034212873671200891630358048080617956045330083321973716554099086143199622839334670283435541972510310799530783625244460779262651768209066340023734959083585659334502655144218121540344616044719723398904646841024512019185518592268761126237501549632148021355863788108663135196730418035549560946546717317637462346778149205904550120064638324832139027284839234176067021117435202128711595550753408258346754979863234522066452098737945617463894020746559164915003451471840114375225549412152706288788527694227880254218619273429580404348621511243128157847145221134665983247436812703828101553577347188278860887241924019161478760576453528849350582809218162820438119331554417408356501256062176781655185107727660049965021211308455556943112919627885934170308661551655793753923251637104753639708547203207367602987407346149411977731776211076774350725277969597538124396116991896917511016264008035349709460736458948055010718547512183777582657380373777987558303692846305466202872817615546801018571313913383959784179737280372145316774569767237268936531324440964111313674524475299706879115311933215356177547712131398874496444891588300299334621848114635489553099206660435447780722417792166815069546591050019965181174646681842613441530877605631198968954191046058029556369512803948186674266428150158918841542535396523397414397587373821948148688345077229517951218628975939040963263628460126719285444514025504367869925953987272840418191708310655588208008886834042589233857443879828577219723551330642153655502961741251897859603093082982148274108933816943660392132136107027170621249696788955250732331038308159779596261813412638541905407462260169799503826734685726819362496196947986334181999891947978779573909715664008596045964167407121950450284258324097289249149696136217118275586801161994268419708851753560139614335715054477676333138503576507550195561236174123938962865125408982220788959139393511864190070810686032708835057409706981212962466997892746899144398848135251038298771706120321340919724378952958593844925121736858073110155890844070350382083114753146876391838399629107368054787927915657139519408063587028557855717768466454685883765318188893458742061481413357887249888136751749734425103697272715775051884820920729833321312510360101657048373048182626653154793228650224889161613779974994131535439712799129007284729984877081329562894009080322974990506144492023216969996046055095146618308789310181046841977773901760136517599520836513922661027650886794740843355377474999920029035149468829128744603015711983866713708029471846356266969766393281480366973889116130983293769101301538358730309567306888586807159232352228666295290896458139593750487540895242674617844973120987468057194929933179933551171335275361426106195566415103437218773340110111153145264463328792899639442683680947646086044506659760514131292103988987350866023148254110288261335915997594912812488099246689979031485743380471149426424821853405758430241341631554227565556126799039542422980083115186344565743988401424031730352576405913471960269854722005189523207324566962110753607118374432499370739176354619616720787775519335003520825814526351577301172318331687893880945694619764970077982403469835201552588333529205227712010641588484325855648023721468465997114360019265257455175857474693940136585129292551899268438664176332861394019173682176701719959593759424683289186446298211220998862057037869964271443292907170910424011493250961237091712708359428905075609319304090121425463106720328134270314961601169551760418246522079079560469919576792794704843575604979584253728006966852839747909633485951954946898466710235301368639607599178738420079658745212777033255540992030869207449437403294435636388139109773784667397156349543904273760865891118580619874711395101412110352083225236406724047678812205762161201335619261221325240257157154719240890371272507125440851310983692507904888800210285845080961521304827801975964133306945179081753624594311284132968565782761694829254816378031667501909492314994752241027259429711987674495672791095373213909660889465595579659397785791106662700515835305405341295367799901673438952582772437570290082263306061321157780205880390182184923098616228918114871689898125048521554290145235078606790246569098197066574653212520935030517684004501981305194138593818044899536759145409277402384136414675251468796610804512049997162135830953509351133707159989308445280810024120178048769065034479369746618904865367622313525730789657731685717928931824535768329125490353227236097573462768777886618866523753236365321041580946750003827734907767955476842173582128424082280334818849623915229160492667080684459201929882561077137060275079602726992674520908978319538425495633870805233847248555202971028815297534977443710400657562830813123884926255587534830604885085729399105471326932819165808316952163753639162600353558156301924468252749090875511226150242115193481733861587386711458949447096128304655310404644476156913137236196530558680940201426431516453622136182511059797354140936533843584746442543449238957022192348500863097108401753936197375035223179431714085985618532627751367244347493080791494460003626221241419735299238753022289416440658881773252862716627896590141515699195645300974713664368227400424019440124592728479172611054052148314418709789447831269927359750863409718024782631408635138152712042553690919167432867829767493680948469076864598421444620749479921054782895117145026998282611574966706332723243027867071892371293168745010082398554844222102035311935057547843830227353207328609034063464179973731059847844929749397780658614233262671159670897409734328005326899898416904628329672066355060855728942780430207309166126875729898046702847746319487569568750727116842837666163240863149027474718954431663474305099095892464727610621677527191906250411660377586805662760674071408078947459174332684315467390167272685364790327578952080820465155663104029825532017993380800732124326496078905638845152410992525126225767314099944187798499854276870361769837112601166348045177317215295175027600736245328930843158132957284059877062425753176686011235342543605136409671116511405347553353377030239754220604799562128748333212481163964167442931982596474605143230597836794861189733622473784024097842305392947882448127861114594342613222855153844930830627585533563085972656189660907423775201722444844887474827287294903623011733008888116936048986176825734504028060606567295545393591333360686778635424293151148462043859126429875748342803339276343601463016502370323365064604167682269772123375382271521121083716196008721182848409152650208558566875599089438350101937362402142486337942055977661222435235838053823655406908414564755262191201958870137125772067468386677633121207638689420781768874936881765590179771961113474761611690712745496150050799747209325834980303405241512059320408287249877502428946608749330470285249730836214878897812741250530912908680213373919766925388225400623999654427692874075972352626648526422373655538542660053089257624537713072998432792216395091195486521921731835033963032640979532728759349167035688592934447921159905942577469336235823895272291630770581406279643177572552976824454755361927746519287703601113684222373741830649549138088028193109676166577366891865888201766064554119318379580492080334544279955201848901969445776610539729666168999738679090050107292826205105481086998345915493548611741778849655269996543663255649358904036123532975277990043298768760014104351032454501810901353783129127394143293510841691199550416270575131242983590289545148750911001249585335881915023942027095754871897649274195585940508438720686132150502467460614785440435357569003929168055555636659499449922254977515802008776841330992661525931358314478386296388411803269701846594259586686075427456432954584593354825616982873781672820709990128939185062043568634183808963589266155666236059865589878788065602450623416500224056184057473145383559365177052238513333742387721728172757284465864908915442763268076102569581558440193472445025490748287881940385330441842259500091727175407921094939402170827113172587260616741385754648617060581169610744996652506409646164325180733784914626435266821916034233966409636779804812500361977489610432970725071564017332011434541737116033669999510872225134253596797927617876157905691821564280032896093400407787323231607190490529289266564467010648208843273990682935080872132780497903206533969560738564034126159495376535322362613875327012308017644295923627164965335741315700732496124296909845976011845700417664808145260679407295871764315265727676345649993768689666818158627424075775671280214252166207066623186039023499912191480211557225723950093165880542210006087385275778464921299878193093178789363067974542502451965928215109453911758116363943088940020292118369081504358199370894345786859248813230340636083499540692466668539608882045940991612373695363002126805737505620620790830396105968670989499035620429801537138607124978286363938859786687372978164613065896463113601733536331552118683680605023940914855998186533180853101431207159741057258365889780060837244836871962130090147936132199363211538209759592177931954562882447607170584868761585220836646223742722388766644098274222373359172434982756123656695883275152362462524119931995613417518378505371570204003517474730293592082818706040978520205791426907080373258024314136224587051101539327089747306169777744078567854890221949655596164114284690167858040078713954143942000600106472992339221889290469902140455494283636099519684130968171218944225760981745077003295176504643614406492577777011110146839545718813255009995225437391705151720022699081475633564471667273128165638984340706547327127456114234140704331633124730547799753569866179904523983296707507083693324405930813470420660502550712454764792362678887569151012771742451132425603721374188634105809487798219157620883380117749574887149537743948818733527325839108268930705815313989628560473473579648259070923320942012695849919593417353383160059511430858327598623020263927187570799837797199871607839398734800314960644084648803579978140247131527211488505908265436414654129328913446421209949550615961326863515155581065541719233678474252089952978086703109778958226302842995306469165132851807340026129841486605681453625037641216300912273089743718648963397507644199289015419860702179087042266191251470648195535852871272678140059680402868257349887304463903448290487929185649294300840311481728307640136451557149643349305680673825899411299224221113203573895105016028999997045416023546723337581788059952556190211271209341244544411024791551940653932954231465582151972883557264821738687285167782012123515226426882829686518008011651400933372375676396155527318249484715711885710891786167471870679317194725856269274812788622894630295082100221806316599132471587023939725796516851746721188256533486371267013626540064509979090640085285439792806186580283808404887922020853689149068098102419493822359018305326096073272606304267111885365106569298820743257969372653341688738978898590211436536210511881872311819865710561523020910501021274402055217928536696587373589933484286015672087340925436801901289787607288154830355773556370643983532658498962061950155893906298961135159305057849735094547885604849045337577552088746402011261330796071237083951014118492654207455740895071868581293907018778567190151329097356420148298019027200628401656104527520068206884306220127124263765071776324727794822759366445770672467303466873362836854751541885637636402930686295807906065325271445992330692461415436354272858607934496198200258818859785180004696952979068503077087644718592762356472280662811311636032132171554808666049660119662484975034014075309561492093702372562525766359749543835472056329401827147920584966129146504766782346385554439321534231443488311431843178654600370458463380056153245996734201410648124003722591624446855497870201650591862820442050510749814524325602289367282704315353920506841010309718675929801112113008641210491788619022345347845340317077090353230005781862055329576030034883523182835606167669329719727379867252724071048305810502794347688544155145639519948877725026081236185593175864471286322609051606474791974130069537218947711646911019888748735538019022219032024222003751087980859471130218638438382692915384272626665845007603091335475523059757425392696650291333923425343797427583830808235302383058118587889612105706584259085098917636735982553244296742923225508211035451426851168699475248265543855758145508488817670899400715124417611346894629833086843566350420843132261077629708366289297326408888114296010017056873227226152538197652893473762145952250581237037775416786747006448365720628507064781878274281565944582483628846088988019036004326438512365108695262820861735693284241058986588605143982803718057206964669603893038191833455107870020197027846031851831816715346307980638593419466003103819724328000592191025649954085635166210553634680755310212447028762890047294933705508769263380289055823031651964971131055778671197676934188181038455436764495974132983044821787211036914643167268672850717290334709710319701955359747104530447152829817696111169652873825677473742585272270985198176949386808114673697191846073725865892773352999876595643605712666747214570011182732396998530373863332733175964038745226458826067563574476213481988317587235328260256662077104718087462318713139015309293679544849765517619293963626389599236090427412165576099813843750584214813244448408900175951875945497091972259576619235509280158072015084413543687160573877738497589791979845075912218160235663618413208068299802931634147271873694457857640652921596430899488073804756123600954965013297689924583661592015222049108315644180149793884674857655367074082543734435224135013837707356579539298776473533415625757478819949486161419101884621487033275726070212678124221267301246431736298612213779408429534664299802539395280628364062568092428331917717016067854387245874369653643244624389080485560180956179147225887062667581667998600203117516758354326688502524470514731439983841859267097162598731968490502592881236837265252296447470520726750163818517476738185616533354004813417605379112934151278173834528954852847201008864520740998705324814599453477843743124526758814523635908102921838629429395256224318277451956764632599826692394731143277105181995593896737138996481480031408802289598872580022978885494074438674292679771317055526325351580655253514845688531122360898291820362570139171983852439300631094199070970837365341457241817770069506807426557784548815665872480982849084891009778863195565412792088133377694976339943974485145267729111444116738191386729757173399173353857189377488015252682856615063180208432966370078144679310292392441581822968711731090991731620401443071735528166815626854942506126899627949514062519678548806135143126155125044080682191545854623762995490314007768982253590916013419178217422648235157960551579043209580573446532519915381073048082925391070308961058962963550794629574034723832659313593933250508185826249325302619031950740768168949310587399537362406749940768784747253215633913254318720475390071893211012423694342020772055112485634127524206198405473760597831961701509467051658797833383433774118433728001558327771633989206331140197539401672595995206141826985556518177430222417849573239453389757292691651423425711282679950272122429854729585258650908384070726967060490418170163980180040201523102426561279600645924137515330374068883750825589351864504892747703626733524885500284809063472114110646650929866011040218306537966534001422624686711314197999797903992916373716536307937641213617414354401627423324192493162764763022299696197053964315573497612258409709397217239569850611195526886059250286153204635009345327859614685092094109567954740043013094958273893211258907048428608981651545451746862132415706086201492203117551525429933660655424091186638545628326426595754075573613132732916855433505570660512820854798535757349341404101477708125361481002820335689853362831634433725449744473807699984903542476292355621250557525023866396788728411889365599506943601621473565013099707636488380230327527408436628020268465853203341006577508500879957637883311428771666272618179490125558113190344619387976202082754147250038758387715491351627991031617914447598075452831139784486865350182335209540704775701442597043365618064388149091614541566365611709246891693954469691800967308274010527633607365059725242179055507203959568560350983266588011376080299919880244505956972065148639647869765104639632416982406032853915577675329984846162887253463680130959254623715477421950546847327668049005497864998015124424348369474559518598772413229317863790060915510410164742108907204993833807159369167228783620369793953096883580223388327633649300894121853847467486056805310222117577517612026528851718759310201774685827827829527767224427459102865519804412985057507906042027344264482869023657186440444106272246916759350429448974462221423345149021115018560057389453783924018614490856275268389490966714567735621747619398778493959091991319898124595726764488950918056889545010581109426458610010845483694466132572054288457852673470175973566851615904363335293399627081598035293692750613457502630226946192684517652669971506620924633496872008088699816108491312654522703653182656462920930954961089534427898926236831316431254191354205775919874283847559199736700068246812459713745704276412336071066284306597619049034285249725958420976736014202082345853764116948591108284455537422883515442732002750208484567365986608813531398433544830718814439410858919036006990019978549317403890286913313654722546885304422026032918596411987287941605898148893889072184200461924450848525612125780306481865284488681095343574353401087236127764418926911056007020461373468532860447255504500803741671934752825522468693719020487113645598912939753499009528837990702931556119505649325153598777825667679954913687358034760934377637711042366811548023177943061710986878741010479087786778351571354411339260294598466010963881352255764668077513831127370533791231965956917226887021388314800037512150320234307902092845328879037985731854524481786497780911055181017245247886658324064551596673943801808341996646542571019192606012974821489561529570736001598075566890051376377069566508091212397065112489537561752914165302875064326556914408696472579716186903580679846040357808146622854755675762351392887549070753975664367765467779520554469046223733254259866419536846169190686426781592776827697573001612083044306549071134993170340248293063283630260619701551356500611232111457070059460017415521795598086362991514302172634942684819175273344663416897836079768128367147357171558971381446678480674775898000912911191502257799560459225738223356716375560687032450925575190483357828023784039569226228243815479936953639345853328132814164337088187730814721954548064826222769361270205096220107414208943334784296080592080423708101294161742644634571823303080016846396796017263274722769936898647292920334071462562193862099861581649191047752874834073909349282047252522041367492061286491448263823980744936361565209263444231935328767435034323768416913303545016417143555684538790951253587774895997911516248346100682323474733243997457741143620849068076152248580747089520459530989571628347833038268551560200360088471573947051165701377412971109709491139951734577463988230682668669082035115748261401988992594241238277771163111046048465718253458220291878606688725000594710110468418908458884764815555737615702453915019234620779458137874836745318830786617742650289272144621191753530881572704893099265634574611276616034524641872147093716916994029871379148273427818396808596064716589138769188906754828560014290391290119109898418784568597681730574261961839063330322655079050768813154106465687945285587573979929745296313690940499247461685066031130751881479756778461709008778923547440657015204283127355256713843962856802758794399123775995039004005735702746499640585407400679541562517787279909507309840965314297995006944463075215758044611523930182804748155927893322608573600505631579674039808603380659803878475038919099820141933229285731520118206466868812922960504907111617121227854261535163752982813921306441507854323957200508477637208848311066500069129468576019787913550847399149379327056384544288700743959724644054075418545305854521435744538369379914699586924703447894615703917346386282475910458144272138867065470676685363011256856455489852328885740413795520548771681873457643920436436750979698461243125141283990143701520113926096789978147937910817081185437377306939134097745656517093338822216704641585272260961452002910942187579271164026080146986746004721586120236359128162060652639178960295614346059982431780933131925662331713301514944552243132256468864462511934520488313163753417397742500872570471068877808596399505039386524206549351037811792968999427999203198964456020089080390519341515620585917855845650764248264828019032113596893425857404524358081812929506235756352350493687970271353684557191232813488478786755359855718534022109045987090757444315026628994552192327794705132047833532368594196843078346491580061269245282776225457084641283463631539681716407047668269057570491213047352478056083815083215968764931042817407677693773149666103783797616381186075057846008634724086901615307898197358943324701691815776274331905345064572546135797540362829335352778942099958301108419945411906113441478966361201819119994150728283874205819521440376676323061697479877339800340417673573294357066672604494743500884121402453971189201989552177110654784825029564431378811360955676002455130488901213905650706202179806958357962784265448039560851653851041678370653787247697944789252790584115198827291551034251346213265658681101501607977450724588318656537719269671571932588258979408604216981271272881666140336040713849602062349225901864623727035977360722889084449399919655517101592288391066568777322794169103904209897722911509800412084688994159249544499834988036444132631339587898737891189306043156386172959799386196904332892358024163663260312252032148591847017173755632748247750358187552210217614872178662444167364273368210981361939260318676353856828717642143580175354934646839138785827817066739505588920610915354237117275522201302912328989903581413783906739548131286744642336031110585877306847430058871028534143432303867957628376002880732865124811236788969511235735019798549767811364506929165365981924874810727149231013361184471620682520083829033611571548164158369624716428678944245496927434819361741836092342282356810545977530362634431224047099560356861268036244760164132972086129924822040912020296294616561860138478074069413813108023205639049369528094321751653527642295175645161735962345593185771063070018828430017810753557934176013682470935201284260188647331958184441516754268212365630188541154740781678502527558641239485892687574271952637763121339087011412190947383270132393543993552461659729153350405516062823547091727890012210615935310110891086861824596891033073415955098052393549655269940522730413549943136902389369255103403884206852960750131822206157325273532839404578654632424743020565160487145365542147151867341574321455475695951436364937035613637719258885035885279115608856798832701003884690344610761758572490839771903529328603507819239071033108072195161055504090789245038817601562950907812983537102325852595317600216562217944148533526894104086400910399485384562784898229571805819979476208406715751487989642980784792894171014074600368680622563626828276162297083026758682523217733700332866222410607738920363938346418086421023637793104508794662305492168794878887637939285809348134293610869629485246077288758574109864937048542579427847636229643271386623995377031980202679300039096201069858001343622919744391275459388660120115805592935267783145322881196025527710142707835452790988085593486506288263392972257543697989607048078590678266905914353507450276885179625781905116160568213377859573958811960113237430999318736903591046977273477947574176689900819652152332464283555040270875183120567827905146214516558304462128139316761960560025396040793778232479348583740818661610403267513805062616438713891964623905314080758504429356967043924875895316528471634607323040894805524670689817278565770333375735524619807434264643402341041168423687774321490776943383856568033146409797689716728058010162236860492111560236724098364351815950898740884855732960720243874290665222286045918696190778851677508103129337449253062169174925650536157590858589899163744448429652587111692507538866855375027487223611243056673496089505725494688660663300398133349928150127412444988399044024244201111586331014186732868567256396261897779965095100756533043148882062010118534169349071901829794350692349707184188031112994930418002733137165752333099878234095729451141803830675411492857430909520021703289014118186511371382926221900660479334491051619456059456983069475475388422144661325940012304025327816472411959286434657963904890137087684995957342157658179370349653507741430219249911380177686450002993149706030219728621767644149983721682017034450563296080389876621005359861096377087556812656000792900192313157931051660140040317292052318230079508255251665592717252748223037430591783030323729632577541049974732635352341552281491307327120773670839780380842134108552191571638930803217423533277270500467028396452963096626094849358552565150163145909762296257800797185865088420696122408930497844661074400525010869713666893974631313845818922850881137765289264087385667137799696812696798554716352077234583338647556785511782882842290805437448169613101092301573006743595701728959780865864854148768123186403312650907440728742869215194113939960157880730137672144726375265108664316943353046931369380652691233505259788099473607872033538452600509691956356779534806319289403253559783063881831700712691629551348694257675054990542778100656870284553444817129662661170995824780195917433150254332316453589535102643895518022890375735747270348132054755631212406034334248120207451197520340556352075388450581027659732551787956442508531227587497448442747126855323103772051287114852465191222754626377072175867918205843076715174483077921333413832775494824667601687729230028177369976270910325727318699715770791149304244394388990367533628800365447225208340913111201436627711755524486040060999178204358191544186812107602332357751836431772663439537486034225501238180223800921120468663380223140202886859321981063134395884722210571948543983064498945873720350877326417239476335966748354649813043054419106537419638402513303881341912667681689043685755230082174127387349661860809135306232934727683388378369836717084414207531025576780383946906932974695421938089777679096682011000790945105192478524173221255840598270914909244857362152681742101485384192372807428312818624174046542250071967704394015127163874843549603201764868882010159930537681318830221668441770573926620348386947420201519807695977408770575383720077412954730067693780739624220480493112968472257605320930187901800456802172738418069125870007028490945215694719832214765992391922492102463641827257158482086734584901270985789159262344607441726190893711046016597706922614600383626404729226717911554907143658873373322968678031187552037373847226047845943859478575854880512224606846925839309516784594567904281021197404125083227847053746286982150705874173171903102959927971819104341459520494797312534809850786418481846485138507715686639191259289598007525278798494498990019681549318867437895582840161533360833799352223773440744668961752381057099562448641991486362323931714089259347171707145024012179155603592970799560888532504964588428104049439706477240431996767848999067053409095494245334824254776654143598651974787379321500022254187762339802383706606256028097842931719393335775870570808706363742928322335806012621606007618500464898234669882168320416950744668503693036159141555099194490566264314328933657870409888492721324106023477651733051937326723054221138244365741738759804517660122595787756527678511714815566132466545931843494723354735711600595772592536069465655111128953653834955670213939622961319708811032628478724584410083854608810699879828924919018899471559302785083172845812751870834724749640325560137094076189249810039321643059899366901673045236226266949101239690654980783423682955778241937606577190222663028867278793703880559038958916779261895416439719140280844843188269392342926967892955301235393866302140622367679925217772147070336449614410981992084890218772220043423604609136169837041634691424539047645230445059400592050088715404228768378056670857643281320236684784671959007429960516533686221075108546411355508914376410405841208141227363729387812677830535862482115342240440022509724981838229038472217305972618550603978027167589935181430629017156424064426303605276851007692336098768324620837046321877472305756221178003636091412379124622866105547275846604437053611197290046642142187541276806882077828604690775101484580394332718852406585750982266211437273773596474530128680956756667284181744861306570949588544057638773714540127241100380982434199409123780892996674916453003793427666626164470498000969760902539036886867716253006572261360184642128223213737090512288550736423197751152007004233346538796932337668648049293072430221087215283109418942162196680152643170914153199390728392333801426629870619425374084376967118989064590579409368221092430880621577380776127812889221898672515687613243976262814667115247489669849637491674511938113151090308797717800201159787773912738987463130672404523455427050371438972225291615670670825122659001298959945929725629285841523613813832307068593519164595476276107387544421294181487872767253787496622445873891936581391566514584587335303215061624644591489575941980008713858703322717417745426354996319216876260074261987024590096048689159763692151567889745119128977093756806870632432065025796361234476571594667457444213634988269880041420254541702948868785686377063230418285500413566031917563180430934951330978914903160296754848638870050024599102265104817635555140941355487438933821528425528883362617711844967878785409644382437967631987459310543701431679506345323397661730662988856582515291566922886891230473357649314512766711422144707903491481305660265937165057771467392545169769488383539321775304410880050711605167124327317327286788150684713908643799901173003037241630910341132773890037969957107606015196438456004663795796153240839357094686716807664276261887814864502228733299948529528797392058524220990363858365729961510550465381801193037843185869563022637332087685034543188707165583672002927627328709460688909704789422888455422436880417218229251298562695278039725736639316082857772383357125433954604744694142579946270321171783166086029198439247219581758679889847434337372255130178325222036476186184441259139801974059144694879951790747607324571109256626733647910643079501893972952695123451348834350604221963355745700475166602469852619579531017437394769337392261477185585156733488571280026101516810401444228413087722645688165378515040626164480781891668119667914696557243892885301857308620792356940603972766314384377936339620088312583474002121125326314378441101148722093238941396397781392245126909932970518924025924446172717967893480216923380431254443045960622946661533018474553678383035599827123049317884574142740795038337246277163949714821836353400741062096023459144663732779112634565094259120575850501762191423182951019076989394731020037846764077164494874883769492137607835176766099629655241535440778432511142913342691489216797048384628200341061203972147716023096887896275253493965793507890327840310310233610812581118575167795140415192788791493304897455603392163458777501114210711682129870803559443779766872890318748609653248398000337562260964568042634715238537757592127291255112855921559589192755753646098695310217094752644855927378804437600551979100848562651266889898833465260957360425975816958834646374544484832494188401032251215960549415813219254990662509450246225894378401103363098367171837028193627609035518308468985514261823783511354084798346883243144366470854066590721903370230708670251709738750870968933436167875081243692353843751000505493223324925585182378016500324937131592929847516717839263061961102957644801394275200138579514345057421594047176774764122303070505010398392915659904547406376614248200446875321625210345053826391920857453975399412849045841641033685094391536937812093904101415716120344798360507432026799822040968131571110205652621436149658844940474249809721095144505159750623247325480099184009409555641825880778502016712315813821783285990185679254933155942199562673377811548561164092684217106976054072505129935551503271087947032137231515523262742380762458651632155378095796178631172527005490197643916035974691398362803604163175017567585990743186396859173444897364339462833672744587303255936782217226747237994420785226092329881179811233483045037722478977452340490594187369514373538300241012167718821498090753443629476627264528839015382593588778541415474336607977840278326930014422725544670448831049847792082021360552406521918009513323026181691562973173132657389773031673791443591893491530439393662289665520316190857277936850075781854317706780580239639208308033966828406846557677930481027541005528293512188218292537909204990816295789543172447083021954795782869541958234528428839316526837299462529204390917679534264878002373464516077922686336697316419243807229816927599278075512927100271087984951399597016715633079417987676258219213427146653406260761493463845414489257084615914246693024011775323179027519639897142754062297392498993786823441143792264552188024764421345648492851412351247904677377198535973072297422130682478353355185139028457793214133174519481832597226204801526482525754503760126278094510627942427409274572205574556753290859228879461206816498490336067936653696522838393433803673842491721726546629481283920087805790445718302162169533701846466768670219489151390653338080450937612750505027144834657169755339804154038325392748032127650943252087872922603165699014013307172142883509689797484803674459901235222312524059702695875831665098530960873567007548490672828172789782495503041695359807694820774377415807748242807145201207302934410282976235730931276754789232847174814350566396174258913917033097533071982068057106955243646297479577815934028220543528709696674002842319367502969175710470561306645950712543102580050182332282127721420502047115273703184690944723732164535589325281267927815004415681688178845815319451102543783710407397965128132451726419885159586885963727733961346790324049671878465519317574293508848848261685106808411822369590287114870590825884903724519538806265051511153035312112125390671005325041259829280939755834695431239347034283197317160713267063152121988039157713294720728429298104039974054766613417977037830978856972555905288686518597572907379903376694350396450856983543709014826048953009456454228311323211219865448534954376855776205476165996991237937478399472608108233825442881028957099789763590931213012711061862303592815012865623961350632882260822515315547970690931170939246184529010732431333605222366621369052634445067409475606221389130289110261106031310875082542610395097775894599875311677737943466346705385972977936995312588702421048606206575844126200003880517766243246584357347010228023290513347311996311166187380829287752742720643398628698199162306402948632887116190344459817794228061918599309751172722717938268803548830867655198721537870025208005831791597377489108422831572418582929706039263791332411870188241501249337411733741783863603161435780272391357787075797511988603435988445032291510563080590075193575916556774472038837314513188426936123508924297354635657000735621899656576253150489676841300650453218305038050570483128718428928846968126908243923895649999846269986370521179287259481100382547291199139492457880496958343670436737506064142238105872817609783601285484267981229151907941252587403798253939647546656040441503228575339173957899524088224760561683360542766576707899021726645667803479543569323016466524530117061154788040874122302797985809681157823587656437533884175350443198379129563142376793935304203559803156662109432595591297644322096453911061545550924016156508972201010613057706168616178309660828071281418464235381078758906045654024893306408634237482077217387404573160443802770740927415589664538588602441744468851918939935917165922771201461105016358773987317312044562881354460456289506842056113080949012423962432764756095521821386980071862371042408678657094964089500118096745413150766123423733990757716549213989414345852475681794761317157513092194397376461356731935652548064710750160024827563793193342163598052239808784768318963596441026292085849577632587537195161413489009341187681822028683492725272626654603302721571959973985257438908846876996744685599845016551629834089896877969601974737871457400560562201761637042514874097914782988059753337651616513239091017467427546500864595525666622042068162938636576215758204665479547655099533256214393814839574361528011091327010200795497095673573341757961349772548715198270431271784127126117320704620251507266029698821616725950981352067508422278730286759119803666479632033489220645102566091289581681114660365170078546501635577688165616052403519141527141909915539796173325323287044500750977131651865169786307820615317744213112563997125407156165498701212375858041111490538627137237129523452185696809235181781029847759283510000593226660945563602239623968774403231277249135768929349910514214700462240806010904807351353265253333940117571747116359831312988274773919144309657413401759667459090276904824475592787984717983166557960539548638375220225734560733055281947440553870452401477975917642049317102462435658068749422784054931847622253516530709109177754080437770780828340300949741758031087145780212692987448139836694490879379089576794806689505915887032967479596550864875662599777124462760169849204041736516382414073292043718424538874242076413057593849876088787441639382382902482399348244563998160183601030717104180212467903136471461799098449773564078802160452157042578584507923788269729832227597197711988604036407770584643679932674748859607594014048571120556269534710982613307906487928171349074661999117195980191798084636576857117929997924916065468447267869133820247681754182683811050476922966667758268171258106885444421435848823205426152541436155342565192211381042256270323652754769161068041544261828785526751534602485168175343253462538418146994170513535459736068579260401749784816764277059720051177229468382610207292604401582752979082949103857826030033002900533731062774557429794079850826049070631132166232329699216992863762885336394026686392820320964334856152698804082732146445275450325571565798161069062837767142505552187321717901823222614268327562849880260235076557163944174573131074301365179428655245927888576756686833794040483053489322891540589669492811794203499178434430206233292662153511320310950690252565559122210745393834478549655518354329140482564384647355665150031636093307303208362108601381044379990366294835155392400800478160636187965376347468509151999332339006281086331317990027699474714121411185451078994625108691755172310859026145138535238996629326176298835802760006930982334037305200496100997965410695797029377839675554501362859734266797065370830374226378618368693777001056766293056530547589468529823574519896332206270883840502493761373933305892938779020198055310421471339447046896757199778158893463929642082377022425466526816701294114302389104097289389465254460136139269039300396687751528470894804683795577852501829038556364370890825684181558070856563025097284761516517316187957741380147413000564656904304950189306705469822253249178699491553695462819392731942626683065473950631375416280576883717729777191006413246093708805135500398183537730115180590694672374091235480595138287363774038283102484630652339166279701784777934795232165942367823873463028513881178730863419581404510149834212690200082146525768552065319524965437472999255752102513556806475795996998649081910697515346408991786629706395484271804622245943635074695366699186851491309262706068860446510865357793099145177347154432452262681682905980613385391145633078251122243630491213990210352561643548755229919997019031597313973315927718376928600906582471719982710279898068748016356923692963866824366695788115839470276053766483225427696688085402543769420198397226459191925279104497488886064587132598721697992054137512211821823862315357426231513891245808226908762977108528708992398421036308087587699827959176536458419475089183392856491474239072863610727850351073220876585422252710533548136854357267801070578436492975688417345990700513115054237544563809538966111585546211295764110200499812353094195777464455223160776798625534129841976146574580065199217080699420211687418763234925788778710476024176999599763074738580609971841342829317899561908664463925592929776608575659330681680575792136953549860922316532365151272706072927478256296847697218335306865513886443420544465016926889581041678255737405560485575376401872875652743125558834731955362127353248318501783569303734771981971754598796697120485214713436848815104094479736759899029547123749889715356463137063174392599826183785082929283000508378038138222834868559340849839470904950089477609473205778980453697095998852482600184518783576685751977604111037532971889444839894595186979909748010029288695983786112932605200118716145724185508058752050549810198247648475323163612414574289630568048197151554408704394066047912093732725552692443273901194504999904976130265730840688829901465358722968694539236177545155459376977384243439721418593108141293500195559005962053822921340012955712573743366119849645280153257817985028020129177594781388961138444502467191886680140778733769985516798289583686736300415459177853477416125765810960215737430120442775015679981116678897291172779478318623971395534706545417880444036346891717800759013915574123848904365799885985672042712593497015123895308057226936928048004584610844314842285135437433729613222754293970664560698299992616463232160718983032065122056231262863778210627420254929342141704008001789042104707788721584509299642190251908848252490143670732748414847560093212165023953436735747392070381467603995276715679379613190315429306893261557906696344202779036837753257985893561562757701762026117444135254177951197377025127455495551926385633316608455273085451213497674859346344667910638410582185024233574932542838949016682059954626886512150137822626980866793055353043020436686001263352764833310954043550701093861840820964910014982912925321907650486416810264988875467196127370493457854400777217039416678856264326415868518562492915589949786189620733649763484268292929504667087521433718735813042620521281755372259728009822291502972304451571889618242640401286032618198532393149772191700003425211077064352425354965790809193721482185544157398979975744755590256727844476430555214089957047889593368164360613091282148485901706188060114358917564291379951090915904703179003467601243739329229198468188436349142157677954021919015853560006911355881074752700304677133004743351371780305677056781099978607681254776830842978659373449073244291758891225789013739500311999260449569600126002190625151749727684834579369618985780911663730636622088391135424508079921189797140880228703264209857986032928615849529420098044040730692849298129111975107679103545273655403479870796251617245053081806870622845739972108553976234795755927253494168275446480014354637005563344562646336074700893580861271383105920642844175273980517499199484254282226365855768374197375694416183458310609923621593567958669792645883251992747070252098400967055898670949073762697622545831501298369253376029720198029487631732814833590667758471312853018100134093305202153789003957187316326505347072915121154095283345462193983546842549805089028712888151613044456603407784115877425123323780494162974158857486733423124919337954520384187944022056654152727277409526378956124869806009097018129303152560138391124565011597968832405305151227757632961668206632857332443622848951452128174869202479456516981070632379539550667890924460847494796732368855356591347431565514704247279568029109860511371856281194095254483485026365399575126020188586600272808916241898105078217685520174496490636624080508764239622425376280702954619611275165119221469319689873496038739875103256763093364907992604665058141654893507983119761201598607109829143233660550035665253297057115534456636905149201414726260607856424030382494167796478497480296843051337209556767939748772388175371540253218355344299872904523564222843743381495273906422613058418012213841940198539516793764671096030989731663106004779208042232641801965833709888951591457519733527425007243091883510119915623943824560477849949111947794249780824176777687062861555096732503450695640077728779974611850047836522393086673302205577109698314083811043852865548589772958214781749376463500038102805064283520227574043505354594479990654033323170835760526139735481504735462548371177044837772329400384318514356239812129923881626333262902196543768347462728511127392533747603901674458239740509851153942749366755134954592908349515004363144939178766639411312957064286451644056868017158148524209970761912114915090000588102955973275905579183520844022117374499881000553229570928316817493788759783853865698285282626598201555044605288683985995011223630457042291348064478936754016598268926662242701670767705030501945221072417574448815201698770974103501825151625157554275889605362006482674008119428727343264812467831675065280875994841174005555689299099154031912831032651737501465801704448709167896436345576929107176047521165415901352378277799514412529981011590637203070439782736768598785951118214273722081780350433672623613549776065190218134029040551170335163956908075360853786063832320181267186506510350984019963541411476078853365866444300894462775625666244782965532766058186182532120328289682297040936793396703807173485735120747495128327657921346759965355847395821347482603360858047005127585915314224609246517400296586178239122700134924918081738592923643180194806626058027400306289897365197806370546436647651737049462632150313175361203562924192626911208264573453532861734216764920341271805989283311928444521079862719398510982205503775086510307310664162621590643827399863255461315979993430230006020258492950180327212582008036894975057273844759205294023122532627697311667040827195201120822907507117298561620975972582805609997775718069070039440735654571267005967147580962825965760474357915360921593057897755159046649210285370774064973633815385891546603425668453062585883983471842618963630346727774131331214404571314113649682865766673640760652411977982917103497160477338843955613991270063265236100069334971900320138123072019428084720445042058700160072521781518968215669015547538505533414890980157130044606423557689609687421313804759199168790399043116682147572804545013274983301121313447148688267997236279367595848318261215971027201970564111378477900979356976021718125954794671061154609065672391024451538137014297406591519255236141135798290348885359514686616850745591752461658152051109136996063332948345499847792049515100062097436852813837329406155634662757717494292561328981542768743047260883704496076103585900286744762901905086922691829852347057888393506077267487469047967741317500215949017786079392821367168453666136737542532706720504926939114147430976892277932231331954456957874350987649474184593052973374988917905518488121741275087268086618955936259661392249692506333453408395386237535409260745249710337754736724183618772420139792670810905702899544941978078769044407849073123859629820549551625668067495423748735197339122854092787977218125716762120078894144184874405555968831563752135716886175179638586898280322804052486155156549968393376473149517612485130453802785834201594659465029435256445264419127686214734047875223167903198173443706930691965462841304523134294233536573180753491876071104306329483092272224475166961664502757635605019777443809021561395787851850586135016894633476163077283299297028220616202553046431776960589977385200697578034541882416757059508227260203230337868080176464179089385459370094634046965952578880922563830973681057821123062235688795416814743066592206834971411761762584584617142091971207565047809643979819765889569938897861801576209813799611138726100363576240980437770973676815480600921747643032302063147767594856183702344130467632442638704582147134220664395401844172072480871939946347803190052151837097936357535826472440209229911628338349613365252332752233823606083421799078702634108088591986376972342466668512886788515119561621259789236179610375750927374013691334748471443207406338265503957259009456575253941551080552365330635021756525133482986784221137420631668353288307293559134804887769486157666283057464451637390373272999512337137603486307527674250301113877287742884289206286681600904672086542231207912898212205048752855521026004258144712510843074056355527619125421300566822373881476165779335972758885368428373378495476619639485497781104531534395652970298701675506458843197881138501073681552068978590087247255690429516814979727856457088203010657510141781636758647909969920569596564987255846902249091611332276678476024115004188422385207545368973322260963533471153618319021681517482945523970106867173337464514365678527355266165164492788821433241713195123542007068677811484398376658077224203537667675835665325938677430233292147367029887953175623624391753699151362788327669462506818692041507051293070200889437043791994701552652660614387459338745459218245552233698646854446857857119649984891203888731033953574197382405843585352236712692727179218618563645020766294199151685795479483647218962963916948680606624929022872201080205166767767797805639110869932138680318178619292884370498142206828833670542377542700302073546413380170577220288765889009626548177737112625214454545902219010876819974055357875212092025877935712940657321704461796862663145343847571689121560861733801787542962178976750882220531778635836208264286543938091614560777667356487898301783735844115042950007213690579379063916223525183364469987777743919035940276029817467525040940202959380366776301269045990792690760375648167612420608463100891983926501108904402556086750139082682954357574716538947280359500392878959680340379822678590513095143096529985486638105022238301568981961725921850800239568284328595929931858800515918585188001509703578268251446654182066754851268444767141343796962874652542271742818244713821982284488150620190821547157742030538168855325532206046233299039490841731039546028910934777223523450160975870801979069829838928376689153431018911894455347375928119403699369419526039515816895857516959602645638287730786598127146651725695260316739061763035674145661491236780759291465585250615541354691002455268964203485977546970075926888925481070926532122339087186146549844723061352369042817804081098179554624213893782664876375500649466320313052100459460936154419644003664438641423281537575181556031472707575123396642917787723513193487407641262375585693204592599041774014513948040986060220234714766915212412537140138700051392160102792979351308016881141941633512651893718517775029852331190703500583953787161870957471555137328452129321399928695656680862315195040327893656946569873818316035665156622502112684251372882017179781220990803369688811695163350730991130774711002778949256919954355721143680211666025359273941792830590767859420859167937615008891624590322940854579671005897817872330287353025829244833224090093856482724551731875653366608075304601561091131601748633007801972953679544877400369143767110134107407826838470699760466418468232850728087652745357816188998297621770833664833103722793399264383501376570596444909526452963626012799509044884956381041036380053364745203055381915938894375147724193213927815662298228429105073983676837169434897168196842028647055086065160017923385121818063418224540630954535969175363422362183620175420644837252733048770341477447651909545207241004573645244339612091206797265159188198246582047130431359321427455874496505674897071470968042318206556139216839543540508973403829865545971653820478699328282517332294536758778310894034083079183699380537427170423625293282681705789118636727472435649656285343685476799738825286756476286971181251571943424046190011144623604400523478840538855362802134199676917063239819587768938091894841573675067633823487790742961615978609356746010243416863309033021135184578145861964552288337681892144338975670434243057585498321720523107371579755899355117405023684477316617101863453165549866644949444662279051231932350084957016336090624024314712121782828019593552314525021435964400568687107797038930650961515042843524290952166235094483470451478372978995462041005923895236428850068931252889394028119236156854097454762356380076202990199898772749085892116563275071381873254114451525071035974071033636377523149971785606508804114246623428043649947900919220178517167661411410957364444806754101128854710418231273693485215623128550974165981412415000539137315615991146107076974846670147588460052280044174166164028380763805129831469545525705996628126982762062977702878971312573584597324597593372110124414958081884398904052313362812057139351813383921864743981959870750392652804973619623411078099662554559956702506346836103149526280821421565828743402627963529549309011141827276023687946557034511395809247825423791538797987267197029820644562922252974946336244338341050722678117522887379703456011447618491292714813840929980683292819347892057951194508917802925906285795100895902560542815830074835317146677224258726952969616514542049270789237460940038724831097046260272695049159539731307331179606570007106078964397809448346091088748598911328098599351867485957525516928188682994374903726875835285809516360014969809108925938152038634195499482219568260949273637369795604969733076296398117610830667255790360578583137491827227091603934217925993930186287028527872151657409727965318689652290800764525827504861771648651196655064877275730002651572937488989619120121967222412017997082420017512085380008766474689175456275922586151842868014022057903641379242179983158760540413305334607131956384332854516468497390247086107670567561068303198530653547918916893880424029019035118128634947321524747027965952766297350844340760075420380896984374075369904044896533703586646890661379199160171430729018401093176420256354198416900544790438072987268410021810024066805830390561188361443540504419474785411559496846043527620899520785660526846269204030610295645684457632815899300493957205817826837411939918646368689022771555820336325532928109866503417790244493162512771279782359333055659674001794636267641377062064469336082883265223430362858039182151911089509878295639582607680408156699225168957505157572906351472214890028066469032633941057808777084779505480589749400348182015559520840742030653162749929371384309790988626498900932222205093179109098129952658188405561232735774435737268608586244373719235774494485370718424889562036441759044194469972977303109493576620041584488156014808222315631440590855810801879113445774401475436067199265204832689809028863022511740269882481072018318295572540816181312634866047475908981199182189987370714466145665841978277280045621372488256058908704012112620330740124892047427838241821429745993700023366912711815304783664734962423431480315618043067844245915402534293804138620340111616189833743377573015129468332153554112604122879334992232254169660870485548245757658314414755542382003109915809398798013577909012405444486450170596151411935270968237670966488137364728125831672106954265848868904844775939248330583886238869019589969626013802755367046892050967804064336923839984333464982637873344567284778965591535914214101745732428556111584630882897066060470156858264208720105375979620429324554018089355586059013900079608400506350972024967676373883075856010253728778809014360455321085767183406174951598871767804688743087102269913364134203812789527056103624134818744823007062314399834814046619840179419240590766055327509897072675427927737883821910822368157201560349981279417725422909572453523313710598312005343847993583866127864416866355034241331433729978345828740545113613951966468262462175093404202066169978742698144674424960623016308578942749150511818132365989510149043886468830553866158778015230036912861773594232726939219504572911751223945552343611182720836709637042144512474181733618980020341662081183925984352559161288198860458871281175096236229717863393733057274918456612541782708301211801200823892242819362589917377845089246333950351789714445248907782113762380699454886340186490969361141705879152138283298443324603216290687185226695722506527576850967692105205068113824664911972192409577730577896825397504091437573174120665722156040930867520603252294368684267004595590202145003834221525277283469162828740576101988993817425179741765253836823685614270661337326339329514902482438490038981303068557240624850824297747647445032377554379810235712060290653227657383365645073126741421889920487585957374391596611707461761030096077997191923263696117809510272974675965474054004515645905936482351090204639319208345560783920780016564078605312222386772558194498781788366381264650077238354644530138343108260044049134621187348917852458888613445943061852587040041706127044677943443503223772470519410544101737219168034829843091098037864025139754901619017334107687958677599713965114003650940728920559192430381820412585915796239745202163661826562258840616691434058265090955504445269729361089274498983378358095997721423945255263925540669661174498237589027636744925743121381694250244220226745411100600471490952633141291230199956448535170074897878304226620776766567016342517687495735963032705683021232306804994858307909897727920625907992005193580469873347352373011727825017563542997079687536375089027423870069421391650008196798503006274453410665745328784536169906436573183540712845336624747751904288441315454056475466878580532915747781654269767685339768556905951615092022048754860254919663842597706871183051358440075099902352614592025521175932738163113409883039903278434365644168172126202456070088580197913183071365493645112164069473190580606298284012507843686868621685621935927624980223582417258243778114988113150659745710209348771207385867257957908118703175390491661836813171121784996078201757125996510044697620984283756862633740283424671852737436033703864140217102870212668718452925580493279249758733153226263055162914962040385544504291422224818853477228799797685553959170829196062320948518443767305467924846460469471297882666363158710645269022433257829262022873426974192833655447576322189035254570748254343313368846566206779383633698761900328002312365855778053008004701309437840220920702952323379488907423136324027007604195763951153592714584281947355389078181550032777799609463910961579184115638877722468175785293104955722140292393007575691727448217506268251639273886601874208195319062369005030467861240164842373510665481064638193050160378009850457526638518323917831246741400375431235892204546149594889385665978358129686923550630958702944858342451071212815988510812391672150192318507392582557328696424459046564910328931426587565029864663959047970056442148245439151554512618802015493822695325235070300114119209815526689419921752492508178763315755664936537470823575105672884084372371726675597681116153589538372378963312954187765406224419564549287005459779635105497803820532551673369143685780446375421931822529314721312164396750136011525040190923039121397111773549208710170239120193429591394568995745178461542059471046874104626872622185086640355384453748320984186251043183861779230290824425980781758197265355548106533085363862624807335290105497310083943046616907429641111493415848243375834106732574388160599719584150804057520169726668330721863926677246851260965709711319699435336531678224841720016812313754112015558748892661747582269607704389365473478857874521425250528289049901420690596591677949545628688765449880949516375790869559472368729474767937928117689369426938749988021305005023489707034864404053601860113281059598270595501608080229153182682743097252854972957488767749719696093179494261321857828444259575131162085102820348450862914012900982262158755502984550415223534775083169356109313671021330527201944180516816726403108937411497562875967693204335270946236865609082602545768747402069180143879912974265798057137166953717822407767670640828447006884291146635647819166117933601206752106197489020324757000295871986848895381267035772009803090731353800943855048216672112742184479205420155257265910934957810031871324285945557186975369485883907468473836783377147121851792956694580819356818572900558396975915620058272652939306678424403061726772358765376016230619990761592053101396259086094217387646844504553503002592642800869564908101702018578359281169628910694727169788877820955152292796985245019905120566155446885691953198008696702723005629176715922806149693725733404580518993722563135218596580524326162471103790124666405461222957732566082916536159607583597522783895244491342415475823316869250532368326641643172058955353200736513749834941041560217180690947877331563552984140548546422434113560000811997794677186086215190429822729132629243996496286699176402971773062531684886231351032608265243306377914449714174633890896981372778986631455203646096444310214944009948304778137630135305211351708574859661351511168089744529672102630305342691527609172521185487359307971530874757815243579882095497440254203156664720246321177385064470769740108883754033196119668147016266013107847354108461333119327085620462567992246543558674279074204947499381931739501263676612070426817432030598509463281030432903559709135248586603702788988977783795288998801047594864043873114213747067092443947505372655646122838785125106420361528040251241030573913386137863856216888248553184797746756964227334137860131312767129756715330800684356296438690970338483883705096708437162487159783942522923277777436073980576802646564494261245953888207703605587666162459755709845021936803532421818131347613447396658612038148123589598773013700296213318025394467872068228142219955353924952508778892396630031944304475682478247571049427426354225531862722743925542559028630236629392806559352190452335726751148697201283908495387667560184955655152393321670026311404015792723133231504066976452104153757401715345005191852308663300175669158833905879600614929527871597775853675148077125973528427523112358958552549447797915911669934044289519699287627196604902700215222703445229993157399084746588978407895313829552698862729658144041746665376990556170530716068746288323164523415862206161123690056037705208502726918939950633364872931633848293075175151621525130815830587875159490731071828369191811131862555460063776934301075611619929275480435522816284373227906344143938107339848965890438213724172647696882024583060501208441379935725416572844816060045756124139334972325026489618018422407771515051659180622867344920265918411701683851706226154910325185611777852356153758734551041700424732428371551461079188233829468106266845792245806229063708856889961646544462446324476613467451338630587693107869234167415019373545831879680654298120878752318064086663362713676628697989809448640944768389993225974870178212405477932928003885604959088245299876433432910413287679391883947903727365532574996092414856118902527420065483683297213389056364321325509536857537316137880471467470483194114597172453704322690832710437436863622195106092057685750968097713835973413804721640491850247888983089239215468266910844830079908580383790474005505872162550047028780023364029888499489584594276349485377041286625157217108754502376188974097944503732825309779016937916889018477153171995857044661613754827273238042602482306036094287409696642088652824498160982917325944760077105676810462808217086061135348830549174102189232801391775943001334297385355861505839125901774482399723788127402695027917386697309750462019543592391673184497427524198615751573789190543841442661241606667747058788814734484326113124124085094395069534432547453254727952992907268234195747760398749652949170595906572275232164078656356602240260794813448630340073987945566104447183909047045085134286721615725323264657981449568420725800208731728005601753225724224283452099305061997189550761250308295434282095711942529365575245750422240001027649835428190913810866699910436946242337278247216998786776355314698674389550079671440165563492848189086665611526357413042416274987120330942870191646526985380207586456790235757886753685350820630415029425648791227727746223029680055612422151697331609006708753950364871993151222430598813628266717865929666752247156561261211663153598649101567654525136673024464824624693890581017823971106750920068195044495000314265455651610335957354932755681707153079937060278449161387028261462813750391034317914177867436332121705181369410427649134651320674599103218512875919449225528249975587862541137285702503804984920889826184988319120089405071959891399264624381368115734354893509134489751160397322450558015291513417522597859568191529846325506684466217561093711433885746623209548187941782812776283351000143228168373933600783530383255327120935228250624516348048954932172506775880717418759510442611828621811834371974105613333024069755813172157887443201489484477876379658298763817455492281201577499834868442351095567289434231582008911680265328784582165733542341795128044332724922643252761856826522631768083083431080066782726410388165151890193273059364482544176632927474414142776334675501660874286832071236491475596239340643235151005475100792095991663006297891263800152140815846307231290496251125074534982807725008886639097029229796815821336891447363960858496265490793650917801070895107436216213098343532380039424892537987285091410835538970008857293322753304426090003858183066734991837598186009027040344077915597386201115891304277927327501085419144655998315124386559106856669995105568349152424149290352491920733380481670362465483457753290599059613957116891004308794763499522801360274178314269640622786918052471986417668301796926370924803630087081120540582586345741100686073104805005573008450495995895116087174534783565535857143154341858015716950667640462497555954982561819950487302586196969493959141132269366490760917258347238427724204997203181704705339908898267695860427338022036715075413930436666551876402891898661800614938440048346747833498869367195273690408003129871094221509582518666791128204190344786288227001240369702168747883120193773131024681229093859790876500937491087466827364291541665986049345974708092998140584860063857428988166176966147240967043668727532456364394132443454515540182533038970814249561025175861990085596183661866007034198698284310233661715916926916866694324677459208801484476237907674943179662661387919603313221167524311738349992935583711362690872923020387752123503285281668551867331813362210936603244779405143288013395129436690695205834729576483960400331191559290760794668649444573699546500778871742969522079601946685278178927577429642675614214974186854875392565194119829244447810036290151064155251488863023884912863594174649464548771351115880667359284235745307507046796030489437503978259357096076544515160943747642493390861994822449182848272279484772259643401679320873416482722692748082788771405048310701182288015544911430910068013767355433841368700771015213583785354298181603546580138312102000192798125827180056680837482764580620908182470732778006733431451198559994092616150869554608491724396673066755713593601584168605025786729595736140767933564836870644091897034704325895836830465904163774459188654354687260156411388470723970644066069098716657651501547346900610063007601950495117043925678173906328299810688999831479597024205907098775282727185405792521276122729678536136434735274912414465094841323019392792529424532577731051704244875513576123929545296032046870949830302760234947058961754964422053880812133178503319770192902779196298975454915506869692802099785598380501420558999857849576897701166710187319395854657310457983895205982476352256500825208807929584333288634091408323874047740074169412282287665239846097648359860777876626910731688119497540626172870736290214713581888233195872247152967569241081099724972128679922071412890590711020332873561521521848997801331584358747726188267232332998136520897758666288917617678361724849367514695165644443329817335786609303864393978417627391895948387254287021620977377768896687438489289240941545501443699529044410549600787155752967161070027208398624004578240305843830819053338844047320489241446093881313950953580848027910917010896688115938933781895837763833596016486891273013810133632397494818699896378908939301973253931079334162916545690431052436646723247149714572304236148777019380340397717668141128522900228796855966965979518083443951839024056346204889547104770231831154716598820074271543392281346143507373867106607940637423590902213648735885718267748479460022453608717252456164684485826929118326548393527582176218162019501846045791569558229327134195932902806274299498427631641385630596957804609977723658200356016206037520140983212521852727169802971020167232257965194564299629695887163267598662895534211329482452239958059686754084039926861911013194039672481284373192957035618662906969650622808346214513382858296547841054385936331823920837574640993606856133144041937747129900499840882882144644978844193373097815979916279253605058654610909345071541678284893086640270824440749693858592876934316003033123191558838612606531787308661527583534031205188895459191937320285085468636290090522400082135324934650498494324049894188862082258780015173577203644876492894043306527969989914089037345158645828409634337494719747574689476187683611492197558910001394634588260620211217298684892139819309621036621148069570950667968961123749567129909054783255128638952566209256096940657804884795539011329481133411690093007420446630641572318920668553033700123846996497772274655857892883793178241142818006583997239666639240906097470682770104080452686672070879261768618630080447286177047109507484754923961878109251432326983475619765146752601302719062323179549905950980022503838516382213128649647957015853029780584748356197441266490492676175003007756483478263776759062461023682668771797832340853966845705253228270472505780320108867153127938733110103477213500779186042713814120323736961553667136527685726844588499561137759375005818817398725310674589620979984006508723505883999251780682316581853848742853551413682175074572746269925653603216031145849279247630292948530581181072473781781304648506092221791833513236731046803274903903072315422474000162135009982532098265338275910187085956844841595093160025092842334314352098295967906744840411538938383314585080261093658382270403998511463903275884611604809163663450836035675916870175666164555371665052426648943151981713172252224890034754618344509847000386534333440272225320395919935483453399386855009863623749891273520916145786633829838857608843052645995989227685001719619089124797792729510530582032476207644458795999392995361118814996430481397777406346802150677729200783591405945969642612191755134719770022649852368796589751420960567378464034634125145134709754891953957441092235943730937699905038828540387078232163624016889027588119292613065128406037228477418227926493513375451283681601840234334579563032853741170036403240477623961322955919959773915478667235437571043417087030713802338944224019370063358741406969229380129477930775717534019830825956138145494757805219798609258253257113800151951852373966600849598094053649243865175926112450518868938584412086616484078591364360129533327720300055319207017085096434487262608677192484366002295044266429912760196388740449281308912787728598633507108415696924024000300611406730837274484720283096495406094692465790257229953642280382479437257018005761102286040386658277511724483907679496937111009181009940397969219699319268979814808542051074903766433741755469722927665088322291112434532345494125240084268425369821592183018688857328635138515358980211584812238840106342986446797748165685628620673505641974536655233803875505174013369392312639544626764151087479182218773224405503354910226971683351212096720718257036245376249578982472726719686065576860365981729572471512016108840204400279690229032225041374559274562943912018497816028782578590900045852628342089505013905202230077076790815230004114967058286349381801009891217002238733760074654256158917385515996870387868146893776506226131695156980555021043130220708706526290479323466483522588298693726696001431560182106744353477602550372570717158179248280724535874386522138823213739731385929569772351709888118059855559949280432502373750010137168834734331843107267512748159532917228823835988433847931045447338532613466167319186244388439694473128894030584641201848643691022550871612103761571870258942146529040826192257312842470124674517032719039191389032873730627257713618663449069198230663260620876714441876900952263745438069754599833197446300102701651223423608409834846495207780591541076748774034052127654855846772328394449694579142258304645453976067371502389090514145548586692811573805889631522019335789900571040624860857001489453385534919471720112430592983520305273306157907633910192161703210056956455048906495760669477155872415457499214384194700312377989729557298354811720829692747006836652083645411982301084426289887855453307420791776068996132960268058880956303635523334380654367916811345216797443663262580569416999765011612220493072358715762427782047443335614549081325709098651283784424344563921296125840114045723928463172259306735403038203858852628908951827917625489697026670625060682169513646502871574908613571934760840715610058815252660329631488964550703227532260324820212541407151613728293176236582211320621303102978131568372474277030883837914692561108395943884543710213135853349440011252541105399034554308412435621190986698681230704605591241758501725144011060110525331067192559880492889307543280652344502414184580649268619417980178268731609171331008988389719576241395038610184704604184542268794487841371747857053720611560935060171303752146851719358578767818222660090095224548346388198344692406544922637320539208703070033545011842934536392992005992200131176489943795872485672577428415410245935579742870919239057165273652948729187673905237292413860257606994908270788160005094862962587533003502646147131401432753871382625478920578457283028587206816775491453892214656298770174038749768104779279398673044317207472657375786992758870704124722290382887552197524764751373172140355925936438691592326256765011176428204156543900674145660682219417392115859616605234044509993540819540954295863211758894464491682108442976459565307708777991365166042090966963873787323629006131564817770140788425525840935115644860393345496208743789772592995064139958833656588014746452905466134666103588989775043975385247260349401928579581284213725254586809619177675703535390463023182712480833352148411228054709896106686548409275123298415416226023592211292505410127303893690858555173018243159706507871365363288061804055125428405340533892141417845098983189412984084726477165894954048707615332800060759522967447112335251741654506579022194118656458795107441231221075597663553241263837134628227147405305184639427163990545814296846927365531240478217085264209110976790330173100837307627632228685814921318347160166553232286834419737884042467200200514233243636316740452441081662705993469958882244153641274392595810620297565508863473360874499287355388232302193102562001141983692879552349278701633435658139430303224181644914228405473727194133617708382292032565934055295504698304219980859827093484704756561044855423681838732304546762741860228764343901298858816923301347344380319184332851545877036506696147952660792988408237637477169482552344449231018262821426775982241188862824263283079030852446791472174532292046750237895856490019130742263952319389002419918839855353231885277158425225375504016883645552581995062178247969906323791243652312017553710312928475067637623567900543080108105802147656558322281289663399191808377914602444934289325740919041458031764632804101609744973889833511690337065808023941548303755672328111279611639019579386806423777151665350345334497427471988464203763013140537298572356462316538801196595143343033163763309467846214334326228575471853822398101894435819808622236285909748769552700143485383437187335013919303376483479679865373986712554662722933444812785465617492228994554255585449475686843448856693465278383844210192181368473639684328886631532660901275991174539862787826329026301063184495361706508009722915545032452722047709440033438124795294176153098408857692587809284773937399287256073445342892426784460363610854838464063198487198934748477092324537103051411066945639214933310282549294840410141146556314555843827325230102287489485929645547353014294367305225649687570241271805714123181639656150604398590173977808802788216478838410461827867991994990218530106497230745087821801289386766064417141194153520155576274597931755305510819012783631089149947961295198209443954518210230249964804848311801366223027062235261471186117365935325675676586051156414600904343556074612374848511542657288017278595490009697963597491381946510373176213968628708434431823757605936562515283258971515237492466780215771201974228281388598047663363376761609385111689276159843892093668982028166311437440993009625764595722568119831242840443499915169066177241331898418483361301223750436756279133801710811571738074106772202575639780585323353586829296233903777019758279245822047471834113003516764467158577689764081612406352483340287639668368610867300099751603726378803893222493591886160751306770566399624756246971699858083325721581647962684492869606089176651082306747741160439618290794722780268610191654988000475439396080843668892614158022562841194433249255284308507840199257017064681254001783553490199998486146684847226748691070935040292551636251437492918469781120365041571050536587806383010866924651198891153023293228865638801107251087417870261227076712959573112541598930032883578824422177903466422675181787398848440574475344116487035026908727169975000256440269973482429350933455682957427818876261229478759513934356633175159682851702283075624408085192784173292053041030418502741554831542209678126263265970335091464175681567402467766950756017373357089161043667984124500586647310668121886914384363482188714165186885671166035838512748108752290369007858900703395797599522198499341564707105128814312632562594056021061311728356073651079521734655024236206747088635084503369794982266529519483494986831976654932720640277277296819127209573018849899140854213364668686068183816760070660637754461387113588402770862878661949755955887676583692435150206906064124678523638169314035645583846388898240540383536652610416122231465323863277343316326014466198195451621078308134559582273419419802500925088795747627657785938804381296118816977558945000566577220332063798317389879312346444983632864507756126208128709904462100067931256264964580594364700286041321358453432679113913595111895180103552326044883611498977426260531527348476850326231013124483589808765155233613730448293144532662035734661457230979738330804222147895132367288689505342691807627090332404922258105445244443039195393492448693972376664461210849374765687588469269659811518398090315460330857702268115348866309481099522623415617115558842433805599235836134708802006821909837545008127995784907228061828016351025286187158280269453810331713466669726259170090342054952825885873072562607655032252702168894076872079021201842195689551354348044811100721071596128059111641727638020151862774279609364673016215180283456376715333592472677449636931188653888264777851064024853578486951699387372331522457512759772215055135383189886984716193409570267942579109055920237905330084792054591761247753563108152583162967668133180904701486404722563701399757570437730979339233929112267863471035811071804262458736067523881972288307882190017944353123799874310603795780983131415942236742137561618404727516788130884242597216032448345398569200823067747100546304262235529633542295768602813870330863997729852567482596586193349741994800505621480979902349626701323359808509425788238584485192804020941717483076633387974316630775196671141924443056632134951842176230098506366089548173337715982510954043328075402416691250677825283300913852861292839627597636871539102420712678619614905872896739820666887173647992946652377503767437558216985712175096134861783176997577478192059371362437578920436935612194125643139577935596987997849791640474663168288815795464118537052774428580783311064378526493988542533760007390222617160666834959817108422191481284012554180281539874660516030172107998626542901821212903626793769024553296270870307303552369567497193530095537691895197086232065039683627093339927993070698192184301589833800823790855705430278184565782235587165128626377893061887967641468743634598378632297444749735852724619495762043211957779235883593541188219008873109161980829116451517438274832988450001131858820390456570160913051318935022185455607427724465740772330603885813280805658192484406067877511767389086430206148812809063084461191471111358757832439661305936296473496128953126752608597446025334595403208224787849369616451394723831602344541937774135700697810437959034458784544153580810485673628363533861682099075011637047501801529578482288111085473744699250795607858718090768196288489827359274409091143317033850180789227908645562440528453249319175613654548684810718106076537246895029190506521339669488400323404871397722048774425738274030268588153451514212137044714296587696087253028792375380304439767974781979577868989135538023335815759188882702118718741536694061660046499553233164901341959940683443166907695172988036615692223039501987144159177093071180755100128196370073517065398928825696485731305394458441659199224985072257483882101628419371038615680792997563524188904631883211185342610447276278030107358732752082018917265585939269236435543656283316731283783472962807407320528217830266573033614615052541617477032536225610662712945223907723627469658182674605471590764573428719962603889979038197730751846046816590159086551951610102438577991346572428969617107494152379774085310874324019234073754946777790393568100779613269448250560010234279755498883579959721029149018248246304317637354814152113091202681862957810520995721572089932484645482097900835099589603183144569845681901381037543362928005242160723133212700694280856941043450674627011015047805982926510320767351621052540234677493709735185483991307922529184057337452936349060854409379803626219962646155867938293950831552988999072013596538988163350250240758044647003745863735515759763503828825070283831991697167244702740529625064432604129139976371324008962096933637402682824787518675116099163020409568333372468149399846508588869372670935919459254950224774795550670318834406961537477376607002333655314441351687853762954347593307400122273723290735196153980377575863228460170470372938937848392669483679332036468913739965726446263387686329008080430396437596866919984667522100136865883236216713829231547477472296108867260597307837571658969678352984712921155344491494340562134637556020004016744644636873881170947865242370522764066458874213154014237333136522233944460712425850430001233499819488173810978920242405301786592768491083484773176787913204762111107506841331763896706837165165388710910305057230350487213820733962424222509189172269367523854857742115107048379520084509953730942985317189452753269869040955751388934105527303972926270796074260861690125718281470505431870841720622569671082522177684760748796829910450513554737424145262378830031505806486295742023734420657755569669853946567753099397148475423758638989966288917699603858279935463826949404934763652829094053399237871875243578833801262125602132936827778620108374740746393241620145686649950032155816136653618898178896595671301770108944938511619399859440409682799383747758983708327172488936126630883839319569563077557515998844967045183306737597985493307322466844648037605614536177720114042697651724083249016152590453888173444699147908660896719283501517857382853583710637110029388887217235345279533674827797659957849170946010394875167713726881504140416748111204520479149257639538693041411194547266022379571974121552061048526734110501074185078034247723791594579559781763715668851929648232127817520941965231422821948319161570691538773642325848479980826389712706405683687038996139194441125983123493819839238367531065262044360104750212914933003765570282776304095295566351007310747568601329831249145872044204143958927227093017046139876478369378645067914051023704246823776991343577800018074030481491288053055163945309178722026035452922808294917112620724117667085450171404195598058531127939480524905556205922895500561878421033420982063449350603131553291223801456280561017861934604123826656486832548046608598730732731387394181792401903719756768824670838736111996506692310799438897527131588605104101785308701996579360804979895357699519954797795636945755475328368928169850871173549371645048446628015974440433703107859971058517398597497240969555995052048050393219656772713518088718086666441096926379769845301440168644618466688120516282865030887212782301405592788822214592707058868798009948515645905396175599858137665628097104321133347443551629670995773283942735954413152143083876010331887524966802219232018544461370129488443118527227652465339843932772034347471662552137202774357001149302295675099108822089523665006129021654276597161714549599508372755570823137300798363562895707083571232120335462217469427077545773155174320020600463118951491312162362055818468761455581060490944610391057439338941122474373640995448901761002731384329286139693950420857912386075761479704313259001796850965940833825922868076491654321174927867197274220676655010437748866319941479435918147175035452252272292987041614664291758279962506993463889131848229301052888157829585028819479767484414985811083586693441384751701271488178305964555750089104256239599897618231400020827282986689103303297824445514794988068369052167499266053323032298543765121692079533329194260476653305922366732125801719009924680019864745584608812039563407701343960931455704395341719009342195006687749828082072955330283369346280771148721025967495308410411090424963315304092773019487986487495990863326366796768429594323894010491732401640556787363881749865839060935367069965208940144390367057590228990471844266020968162927334955296138740236575156185135909352049624517378661693624726551186880837301578993605119845585627608875895441320487367027265986560726315435800317458739292754720882103460067180070602774914957854737022108128810792772074878041732528807585595567037583134851391098912601185939365590147379149252063712874602843204923157030361019016540037859508894163057648881339115959105688332679460096040504572691902818774287055018652961021697263090141628652675648904312495377047841845431091893148125571752604502858659572705639305908077500582114678945821635160988192703777571749496498177792793117014148212578120342127875457786778263329520900296694978142708329012666752578474789235083752077524186865003513180598985219762554536131255701054502832546601549929850365895972172159823963135780519143176521261267773678549630214215587381177784726686012785660072291614587830665682892506427882615348395750766865641628506822156143985599447741246248015160909097773206973946196618599865535210817088971393293405250846475402698750448924962769875577287384588258005349693963170037174551794901518550598251021359434713688291931355813197075043128571278133820393242060853234763489015875221341274964291386767976257847828949660892956689942388160238369348861057846712472935687466185178301443689379737687483601184331988387598477776916939439081994876342361341902987130230889831411762292006280230631589620664135874191325475315844849827523463807317083183978705252105031140855075904242659106742247787715437374019963293513997585954077485415731397650781161703227848804271153819650192580290668443145676335457045174277410815933322856575795889149468965371541210344806417370985259258069933927453239873134195381451075853826855017368338934389738981307478748931707958675061653418705280655694335416235756914856587895097363496277273072306988536560827654800991103583494735075380524468805633551823935465688520368060845813907822056883033409062550804829462512785458442920813285951648651903635245056266582912032135387534950258976382754288105015160719137448666586740604202045218122370092708908601293230912445548583511582739999446793981884131194669639867141758991309976581447713966566886350469509834122830103219712008952069234082636195375194046797818652469372757251555462487571646021215675468397055364515535585020970223029636081992657313983102786869748307351185368381269433264292042798304080426549605325796453036973577920231428387676926256485482204058398404870558537134452267738455914573042900610719861668031664359339371900529384349381960692319401500828825421175975128868513255415653716550093703652834232659156268363754979529365922865954696634741131148699248199122548400894448623281723666939538833652821840327364520117585634148439296063148946175871639830386752663721092264476637546549489198396837522809761816892121803220774380570106794834557760193933848194812794226997362707642858042260244083829034673648352384338487883257233811392238492190737599451541731527479793111230753743887062904365575949706415919351789971185215184229231766626368396641840874672298329558797379639442204449523544587929677324186667871091882204549981573071572981423457949398848134792489677602199808741217430445666668516212977775928493981406854457832633602477219915004152897789924741974335642944641907946081480605124616072745277780636339700779765487296437911191251029425302700581182478121873667144034388472077513710818298000309958193415572633898874272399762690700580128106757062955321536878387953194407347067663649172668934781442532578401548888041557512465701763759643664718250672367232751634690335810479561889952855609581700577022367709505579468741922588344478518380950420716553094841012047821340767560118887848728414688906428994691583139326794601265931155473858246248304418405691400510683748826614422136915022913798978227124018658207678532651415501598465057602723728124257580184641781275003142151622407450777280453140286462355197649077914996216097779904515500184243946180310317781390748191755671457737816341171702180733015054282624336582208196717775842676161715015948295065816784403850126762640224002944239596282405243930181792893372620561332491045834595647357451243909466481954101503985089126374377691488169802686667250506985355249162067149508811512106812973661025843069302608504275684682529742915852027450787653160318996299839924982170257630232133418957177029244231262922164781831965760493606718096526542569048196933869325246573032838055875079587469849311550240708300538807879573031631524098488597804134537565987121339799051379189170522356939195161108909394272696411074314899661321046351572514209124405362200328768848959960204312531307166284262396791019651559776315479130367362594731139870456922510397969267974709919017132183780997803034729703625076232444988851819551840104894132243413196142959222554898500554836735489131737548797674292152473770942842111387188975148913838802693216055286573939349250752686261466898484351715319251320487188798551527399949608251828907265553947511776927353332220577147102224697756877327574873136678432225287188125943136690852664241001297220406648958474610740893840273610690634871631710196719273479931516380244639223260234896906468333559858849271469537440242741264896601740482349137851102630384184836115051738591168214192237216406646718438615595490778566648845622320492084327747285496835952812883874368006634820316408787093797586030308688704812644925376706905686962595014159295945490999488025276525433297246217292963681546289861825418794726315996747766066294467208671907707230993462088161481995258683044011263114425830399267482885337696595579615566324155839839777646700649220383441002088294419349661852535748869250301735713714810369790998928199880637788901809743730390143330195640600699348485718517123303260423795571139622238789980225980245804112219304060907090003557210152869751801408189529705822263764819107854808947669117586380512062563526727100720941973726465648216333721034400126755942813819185030690533430698794440295993233181668858362814163328750212071353841337267609975162554531283927875733914230375319333116752872835461520213011139433050717533121862009600618409972431548908163318511358246968689718174620393511994466284145909608384576247669793458642909804596748113229962498242566271751627867717864442385542308277198711328486208614741234744795940162163767942595427150917609879774025782079335055481617136359036065781615507424497864626425603424306407409277060961526630395515314764483436530277935464496339888247283502550791812505562745024835177642034795881918234292429382815979657197792708466805145686199435240555904072715663709501389864269711997815120609042803515697626722828818162488466856982478762718087258067668215155153056772351246753880992930332965171302547745182363276376819537557113215744415126408693911524310393997628278868388663060010978863525115008726365458164483263733131212617866551353567956050203444452640741892102543643224571239443828884454675107044331380431456213700544540256494082116168458708607366213140777069448953158207019229518551220464002011845895899817089064961852623563879909902877230605932067462393016436543356940926149570776836428478399531983975728957968604828029777638084014919329653248731107844905287682674760378905531856816037325598616038557820111353534239905873331949677468081751294625299958260250039979644841218044188284338778138481292072698432132695919001890331420712076860063556792286220880811770068147289179782326485412508082640276225075808102809577619739165792835013051854770465795170036599113988437416678988064283966411038124722532185723532365762194099598145929237060825898209398728326630627214654016915182272606932801031580149077433678214351189851729890740707513652741434566925106891266405770466403581440874154686863614837931189243762059944260980960062557592996252277864173015452392456904992475695879211948152330984462159856428522384212841427207363483283544277336859305491732887450874959852944973394506012327235032274957628725034925358395945426026636007853769577288871768331726098085953170082909317592723417938002617579546035123992998751399441938907719188160863599395690020302817487187696065262005770549587270952648715572730617630634888470383502556691480695223914163226324083662679951773624781835925121963718444051906770107444338755828351930003628652921575492986481235855324544650665940876525907905220443010840375067735939475198655849887230638464078853520347243655346136302289537907726960216640475048431898414785034986043938225731666399588749907944913197881510264063477008739663072507231166956993443710356707099645497846189508810313683009192135014739819543840741333961733832393101685162581176564931097220504397634330249212249526147461594991022592740720049438932243313217511885400157554580304265666424547839868229124908081995526457411243100713434561857407404040907321215481436386956783110788913228786674019056201380030358846498343529341895643398047561340299464423320030820939056849759221768120854904342783454581817260155372376462813261826451822198847229520352925880342725621154612707876601872452205676946984018586899925088267274311637334643947336116157418895298481242091518411472120028418020152041490592728669795620660329317249107964036658925352108259318150187839754614792142820438479007659277683145734056461011767388589882926742271040303775105282404827034535293892804216343423870013720874449470214399442072827689233733727376326684428386668343019580205690624757053032316998201552446004933595693650411232658816700111091495803282981230170648143597588510064545133549729258885325842188565085379783730582766895405423180509091454905573335538166462953154089290115371820346209106423147860873770050030391672843320383556459996826029772797916993945526712031505437284219482145074720848436133033796276357052414878799821908833945700096228625265512905330594130323587940059345848020693701714763949144497284856088455488758534231562483286882057343920769374896994057474038021672043711128917531859435304741081570207611295715765123255246596785923551452675540622006889231871348867220069640202660731597514719615022730865851980113860898398431543526605623363739927701849686139248678447433876054433940551189685581755287658718739651399171583060040194383167242706779395364131681671786824798876655726116638320682047294500563651528238203436324117249385249221447273521668164618187387701341598168146562459770615593468596594942191680323654970899775968645831587239137398852129122813188816534648670454643289761733481097338173193068714517612509446781219790480326296428917151786170651096937761354154396139664278420439574739080550298314686046881489059155186305668100155964053081338042641516809069772236848727151147580191111300419009329279103056706780985455278058430845159862408022964827560458877992583871916023610187705116035355437673460919818147183921455762770801057823825678277152151692665182535090839462450981646048803262897380220337765874935463390289179729693836593875520141827346190295213383929962147589190252781511763813630158219835242389483904639093248853857284825774592019666272731001319562030568741207284717035547967520145119825293401658726884813499155870529005608833792358225239248134681953715696892433107817037933190162056871762445538088852636521358820430801489116112216260664717248472580811929445958475190780828607860641893670224712772149601371276156435798576113734071616544748380853654658129647549291787737672156674015114909827863196304643703446965669558601117837751942997505001055607733023986495276408273918212050223316242105589065118203949744541759113883774756742473050642142645300328845642272755106702034037942773389012936800692694125698881574434107809825403148801646885815456650940054415683548078917577658499760094341725947748669428419050107340628735588923601213296079327961084282857337870257203779008707454580070288068243818949651958475962670775726833018560322685341222954918483411804136770386932481266906449739177058597971104100031866945699068421273311635130788222996495173516320995207845426236014729781088482067494174323142829096337643453638761154216596751014310273395981154290878013687123067398257870918953873568545398103218590880199837827756920748528897526244534925186899490187863902481731920203505422900674457536550908383678963242213771628978178843408279143243067093805454205673684366461797530177289672529941929913559746505248784181802364965169937918856400947196088401427088697369063172512192703347212457714528099498051575343348051398812961920279981963434213565243074244130259817656759489784931449018957876874578270869180938566122118723537121870374630794280729226686876046316498588778617425264363513285559181873991092886224768417075620289008133643462634201010119785758825242321964372174055007399428307081609670925444574693576393708985911469901770614659107785872264829261901459947978641080045746397358464804421945880289151095483711302443102254010984903406078774563067839166615224343377541032069308420464966274230577491276435185729018204464520164622374518210084862542170448461707409119759643079919586426873956086826493974789032239735421873297556834897097558935647360332027185437138445896423255852871285042411420005696350484887427984934459742251230191262867966546521316532029035423719967618733210882041584992528348305061311908266603367965820333297492232980824537160230918121416549891973194830156806153890701374401433513494303611019937392367972042517007241513730267548829443111312997283010979020221204761375119283411711482200334307366271236102623867683730953426496660697444278380039883641186928937530854860531314877877729499045403473672160674940368740633736325050180619767196026578370345522646773490415237816381943214512810561906897701747276245997984006056140584394386992299973682080752631042783549443566666959180795491812086289672302617521737337815465179399159878478770207827953776071817644386320428306367185472501528799354668924655163502911571547144834276509082820452139838115665169250123406352069710932266730070098047372190447148953412461184210834848364049300240471663392446706226430662463755761444395648903744213834576710135229684288065713095591221164613341421017739769811831170821782385274291543525880452552211230963017640699427582014402803258665845105989731253676897497628276557122823913944472448430198326846227048109729366206983938799986494843488390114295200767078745534373227713333581867992825443646006577390066619170159499150240153408744375057028534441577086867090465513900312449731791981687338181695706256820004185410082432442667030890632351091106753809212244983745682816160813113027568599612234266850101109494883517682960137916396557873363175935983914807288363451545945770341456784413051000581888115817998267896170718250613604549796575679605576451141684595105904047071620870609933187337066100157589873778188847104676369790535295502870436378488811421948545789950625229785921005369012004764466601805476015532099877392648080613035448966230365753515088082704440458660133269872240208181433130777943365036051946846753790244358077389360708504107455902154235508239801155203242885438769955747071329677159602210327409141530999110341457985751136701910413645428194334618837197035164627185834916178833079557016527614830291097133166379395626615730247851169139777599055351303023913721907829230653644200575613507902987005117949399302051304739509465667542395073663653166582416642165792405274320335814760868356660601012686602882031951920500544441251480481497605301915439671796283304399390668074250650652265828624266472503295450758290033392600583260846956371580468188708095472534706482758375726071336178096500216579157421507241462973664956076082338472527464373463881157776785248974186834538571262046491854255917421920149145018688662534439807151420634734669267842665766834309456485061187142201504761372409151789765714323322048697039913495145777227977818179977054407427391990427233602812422004345572540867178185666757851292249747382324838371585358815540635571359860642480875937867478697582927267855291955915466436588063616885209240122753882478691633711483394626225661819501149308533468057708269209329806013795262176987501966919538271113960560882746373830762200889912357661043109992301602957726676278154209505133094714365306810149529222955634988487274039338189666660957781075285682503465446024099915186157946652366599095913758120642244972071717592692015500175519487094506900531405460330187148508222240109440265161326000606382722662543982600396093521562198023212215779169337585890884427762269333372617679555478499496978979757376619714629730892776960075845686654625018818354352599652261105124811280052546021480225932508358147844921221726278616770977302361599864553873655256721020483551257850328548707635784374803224949116257444695771102574650068305353263553164602432606329240876529326397296746946452698762303822201897127537791962452746503598259001561344720430458543351777549937891011095693238029117563341017181489481960256656669842684045400725049354881023193974790607881230000441488471117461518891653522435352718006282624199099162640911480620478370128500293370843295752404237079769317178990935370163523045933777907086394929225359599958004016555207102543683254071698712308189971376721897567204667869746210794214488255063702741669701870614524704033695800136953197597981570147032369316488757417910671713869208281565467930556117384420477603211383822000362836494068488510118640418223954055732291014594663851794878108814910118119499461239547731889396408875564121315630343160648882043035571321077915114637758622344886027252284621319633004806196851126137771062789340183230625822044466273385364574067168343234906379990292026004734633477374948329872890428383246666700240498756663846373858946584664156258767425651391061384245872756216410313326698581607452539094999721674104191476420049305290498554227890380771006303651679741828207169373307677973559856407165120091504692846528133361456157108164982916617701006207719167496955958721938933173155116647506447505402871223380844276550287965592515788607945013138197135124696584654361751369756333365751676454887711273506027589816839535030794736089135336164936604813074191868471146761705962688056241354394830150674558504775241096944196805994166885503204244623527828613354380764736605613246592297975692147616942379996967541612542657895946565608446155214588597429045868148013752190853458430709148145693001640032830442073202854852026829325450770757249926956299555081858243464200282999109871020719426542765064693565587932640200882676048345690295801406507988318987495746564029465782931344120739542307470974936435989428829453722398775343421318237305006761041060209676324293219379097730326769046456208350131593909455026955305311045092919615808801275100821458284147243156035436448410463141010999781717983024667188630261731139875860562519112925688645041987746429661593793027508120625454661664312592028960909194279938377579082666506605750189898917228012977783264367340032497578227154732168651297446427329218816642748086064382486043328893949715807211628813890360446761618603595470403619211880723948031968854084606799998278454768391055473313272804683333992825310907689483936623023254512960652554542141558609245790348844576362484262380416070272913806785145005822776939443865289767541015649908896629358499756559245692956699445588983108885236162935656841512425080653677791889824663217593943692453260205326466492714131407862089488579751781318281799590942314206625747331128191464195514238991120789642276135220527076401832901811033855338400907202838546096430667484916381136134478964351103114389670115613722112437158109989486215710848722353889616960209405283001417518450245584160352879225944796597818113048392638234004178068871288383156677656938477577127563846906756016222622206700733557341774263443936310143185695927259342291946548549383942842679202350140021701428072387164164867956336497128451651064543805650440983836269767721537237917701924344556252580872816486781964169526551099113052028734386774457060490338622335080113415367455234588515970616978549504001861514153870933041743990561791518631278136893559735934031712600098635070625239026087339269836659933797709238401146122858147757837975039225393422403358489232740819548980632753932633208898210228431748809013963502416654342475652826396112414616776979498950871754746752809635000873953161042277202772519097526647280707831780081596749515564352492399784162584372131880904573713491870075577038008101700006287259191049686731959087195243447957664109258058855587629568266250052338303599813672090882708109048481016885314633450947318268416663329983441538032358191155421387252908994598247970077441779703594031074331161089951190672576453433291683992058812717852288277564164607749569922635332502722651523096857489279778087566042473686654707248064876952365078431133739264677609907738513114418677204972029789936391163032355586609196099456799022074113249994019392575423166920346691983380305476931890968432316789714605333643536593126258827390706760511340713341373045673640189534318069292567264810395352474448383657682408401791885044532135025504631600276975641849461933405699593311412242527647440481755072083580387952712229673477259380947991390002876085119176737402971033373559836732986370780942260849214953057064491131640255312047427969827717347315388402615759365779326428036303004886051885885150429094933805786910805549118542919654980743223928640511178401568656355601975618252409093881809382502932018009328914416079032884139689599145311689165753206187059709681583108873633359367069040516360171382717696394456536585796563710983390672485105843344049968522150388765130596129486111637145213985762156732645240535736223732211563299103925598018475805986574325825299251363678573360526814146732669315495112324756515656417575316483837396335536975417596924277137665576369048424200455114033226082109816632391999241298212216844120045718528216629837415094849529018492598582584906828586901352180359401027676581628487389096261504843850485460417936126492009257963316299250011650503848117424131285007273173159972780659556594382124476668755473805800817538042925399982894226064495530104090266595180096091575884566512947315631842585852401693268355264477149753458469466197934477095027146228367124069218157251690844836789636394135448435218643701400938538846404108127578328513162733117401038789232403654609260075344378984439261123796674009587282375940015392100523904655201518859676220435652956211217803784598142682622402522797519273254996151652159572114185860757228227879618309451318978918601559894473213883462304606333657125301028001098492689956390426836817358942065852954845155316072607685189811349633470709955048183968039861954327348190329905447712999335624867748438753325061274284575398766916173524763538024163828296319625527643908455919692419652547452605806186631816242076214050445698025754187339693649399408350294582379921056677579547192122856607642543171533235055067381469493192076578665149401834368299492872842519621602963670435273328707255834063738963507749075174506198427986908737148952069060679935595750646659606218563365543063825303115627798917904366904630154571203461104531908281506880669654924386487653008014025061916916363382032002199026152371334876765262461793063780899528354875150732163900734797421965379180288902211001503574218821242486009907726106877720844175506322012295551123220094983088187681660944787801065209260167312369508989938697453955032840207635230150954383472246506171917883626251967929724715773635236422062034268648593142615461272735851295372405166574411771572183606167143861986935721531795120339918835990545989426060460306379866994839992282030496826107211874842455095410338733960818301775034271292885110416844485700945446235023210408426778580559201449589954168442141995725739233926302586144921844121787310166083717434250793143282710605342060867144498076588534414268656824019667642522007876163963317641849322517188011273843640823971353117743396388651330568929554887733157731687042333763998549581795780233373663997385395274466362511028912610186112766463149636062751727921371533587257399901121610901379687844464224439635672385656471114763682125122514823313916113849316397979492661716641564329222050190197055825158926498289716167896740473980910063363277964143188525449075130358906152545279872987520399700359341313317399080195666365817179598928890109198073952442113642664843527175781890421226052877780467743520377355582821147417633286948612000354412979090067813654457388916466946460047575843237595195170161475796374993645252157514602582205333439355230438042221482709206303593734725811658290217144122424971383038422464161428199503088036281890248621812504084924672257869546922880483447596271859020086400509603682955875771374910395094097039799168888455616860904541204549780212338537013916054311111061567888262443153812076634728151131774898072866147247520239486857898130759274052781867759672932580976938605175898401916968757742305829702725379445625098561162956717995845469853528055465671524936775512764414855786958958285111119965433286291314801519244354928160802548072082195259330031141765924722118955820129958701974921421488934632668179489621466468931856574120926087616623807841692251554484612477545210292114468319339862097271176106375400424187528100216556796298588033714644229746736596167848666132523031609496260127690779509318987565927069616242677536347401392578047124323761217543751455780663930285364916052706010520727902144880689410816372941254250742087321902980220360694679313779087357249247044227385548669247766731256689902955267435917991314776208412034075575064262800604466337833838387337722401367744940059297453979354398842367514528265681186119894865272626939813191531297748625055803842261865157522901440943401521200081062158477798200416763319911567963019246828128302789065715075133767559654216801962659176054646358443752790652889158489288864089055817709022242897165843801136414097238917336844999761972143798271501108134471397271811802854716035063564158510393366079111160583625838965015279466230635293328473465436443108035921728424483524779689109921418064093726769035964015701012871136406940048135472782278661034448909720827514137210136725607199283414872010656725672262816250036793836461569464364135253312883278732979259911959904372119711873642569468177838411668637750401381168609960739457484238824695100470882894933441333825836369692250354181804772844474927485584873295584478387939755805726353111473252919031039790055034059700793550412650933058066858328210332454434982119155018829047760493287250182101462464103663933426530408617518086131606218771249417437317903170223069704199336318019730170648905142650988090435309948191453764988831036341118004779402882216788863998536245272764752294822678984264128900706285327213809906522770197848554772836010432965328927485953778048336259257959795903642321905148421231320746422429989213109568602317215481267218803623822939833912575100724451136784375026811965065847213779796214407033124659056220242026766418261575750267854708494922820136859474869465919317407298917510661214920549714626062036097308164939783092702616200039508136789456176474286480615600428697784480092394832614167847520116081828388626959975957966045862568795187364223417171360072560719633672856188088736887123824285937293847862693030116987864541822507326095139754683804366912961681477637439502284361718131878695680585264818985052298402831817517827145560024609565303565044899912954486670797820674238630575266549719809435588224504020189684176437571746323442838886001710918187211362117140853380794970125183815394748006789586958175689043090628938918596180785619440651721961239144809601070763165902775759260984577478177354645795891076642240577404451819780024614344822712510497103333466326025919825177701090561202960179621890981655719779988377702727615314668564255976944949660456555228308810655194089397668476400792076629066738146468205240122588813947112702281255277275773049424225816655465416396082255746052495929538185027776157666139384453247546905930493425274501982150595987072441599592858225904817984392785209658658837900572935661390135749701858446046430674630614162785399010521119624044629412600878025044992412765089708818573099889721604420306301351709291040390371187123383999199021792270888313807939861451338982461969566755334564065806589257665065674109322220704291634440876130928504439152610091667300613353847097293833442712253950409004691714914205059440609746579112620894417382997949751400612102697977346617746369321849979786902838467013804589136433228307928881607674400674671874183540246493371220454775182099054988298852157770301567343484950133641833258641037225943289435665272610825129335511088579158479784221515438601184366481201839665300855095016184177310446924337187787187626179814320499534041916424107010337374526916040624482089792782830194014382679464092887327889384106687255263056726511817000178108149782413168380233040243991807607847777722031895143247977728939957392168485354774411121035342251460318303075123048829458883030653006060985044361894864678020455917171483593791127000654827693389399694265590168746571188107613941527198974076974009237395427949867879448700674383337080738936755808297071780468182863215310842338620375156666500220992165005101941702925906001912346939787305205544155626952924744065622468689976557194034267214056683640391213665590609165393714497296175125254719602359047584068453955997583499896353212389990181029022924523735264263046037073765813626238507738585482981850901243626152422107803128749256037784661095985535160958345530183234702472730180598675436730303626354769658975815290059823799475716217403963244860749431995457253180525664629696230003942957644003598433545454037416343326037225485759380502684008093652276658220221451255668353966530602234642702098939552479782638092545168379533163860416101260797763305176765643405630483892616498359686445987473753485247578370404023433226432065922943214895498000351721297941373300870868412270617304984491247446707261260846049669557194062915426820712925041628253510225158761261769309980269470654688342330909135677082229259064535426584394070809505979491110509896156693540920238278487482326862266391127824415699393567395785134092933964739609704573517638678643172474152867628464946364646459782082883243455691392298453920033942076162015394473524769857970003019108415529752273111400106925360621367786769711265315695041496396508600666853931917462307113561717194773006756076831414622827555852808574352231191478264070799602673661192758443225971122330541625538710929364462787786161120136494301684208486479387515983674249695688344883767287011971821734371204985864083637645503035947098797059686802807768738979561113073389363297904432590515906290107727642597345436847534336123350516895488868157397353768233956924309640879540442481272633032351739555574724960602203097035481319906547099076292476527720598865101160262637708321122769548606622044998547793499387704547271033641109837083366465288906958277354249046455221813517606578422816600467480713092354325203072535119549671203059112983855058109245221942829853976724193343165637131033346734721889577047167605621692122234628968235529499373912071941045677874584527075166606243820061902437760770800341502755193450715492696148802505517642712797967219724280994263221399415129964399509592994076213599711073236503133542746075522514372170118826665079907582769573671891915548342600890132597348171533042426763108762614567403176141153742763813687093107689617611102249238291217812028476185175313589775754674255276375540435563396004606218504999165881047873516226267673040884746311756603642641936480583908148915074802321331695664693809176969590691993166910117108436185266999275947527255487069461095462153864718614921113092464719274090006065370359998854457211996570948184360159473612521496806533919747250837054750973708284687149591944614549162323988957465737855302513057823326490830266612858375271246461501702130685990994465215685535396134486385140439849450131432913137113221894550560073676434354799706035712660579075648431903501335823790160515146677813463706434429032544531973949340247980232148476323395575105897274101491719686108125213132421732611323297077404067582903321981577260967890902634890389290999933136490148945492852143427906503840017684803264823991612018569370011059910103731622779090924888864281767604112196801146902897537478132319808007559753165378261503142294106811414676951707560553585191371861197719425810768916301742248020973441521339886683560914815332946262102139508062618484849994640445134058653974293005028595734711092106021432995107081506486068116658221482514977391165011377422536960476512182695800139224449312204581437477001640239541206028785153182359358373807603424555816076194896942612384897258806984202692436510610816568355222596068647114063487324580783710166751196605353878591585091808848449753511145163889000170338639883977695105614953091398166680318197237876206620037776006532432612078576460832645625901314782990476060249200053888972040844658255088734704255743005873184798419600902351339823025523230272638457635695046699108094061718954550798243088393158151474781843706578236566506325321339429894457206779015265011410851608953237184244195446021513742804303696192607957316058426801056732230209953455587729324885113873351726328691550730130072059495289439840109794364588430413241933831186841738836271814800526786756141445937071953116438927979894831148565911914498305404201369571745603688885183631386118296879127874533973356375171762860385061708094402726340161006832529242130841266367834167962927333138071884132524258261602540764268046983776644875499375082708632236675369369078785063712688099675362563270887010059266597238343297278611681317541868319182815986389916955670075969328503064856529768524448017623378768300819313786591398390835590270193608658857149541174572566129334239085846852812172229124367457817903401415353729418329614276997138991797722988556448527556922254266072346701914036432736923629391931930959393584689009894968896791365963726957963166535742321607701899796813586023562458168365159737222745335702368075721674280645225093008902339048520492801489798849807608349856730933156317818625013286514000604156384683499657580959687524831953008154102780838517907066118956864293620595608501932942477388556017886798611140902273439502086591318995844535233659647594645441417068067959580184846049400866792591237093517583453832027225173207346564203288281598268083735719604579309758999072228429972593523342047739104666407081033327144478656808817039876368917072838627333140483768046767930386418084509414568894226175651096399695370354055153482070786675294341928596750614600284291472433244215036996144641005454240164559499772573972925107294530438334168211324598744102252711638001808224430445157565808620230735810463851186231463947324697370522733592394569375898313732081849050578746087216603648808555880928267232543303074847568588244612722736187413002162682290350042269947923039617967990101914434266736956059758818026531348620545110291067255441544495840703642995819037287231132996945842401771435556575399161918149493616606490626902652229961777894816794462363662610979020428624623789662105854530461195483504314044566455987278501751856609477129989022676171954406366549719457988804559566899348368643611143161670064224307023810757443602571585793522261938859683705108433465839302988979427236827443634041330791754819227487689123799409520893569803276636033825456421686736699961405824149337134070335490731767951200419859107734680851587529311865622447368398986515773489029880667346598221701514121284735208111415344974857658959479866333199276028656276110381443962020736288650979881425020814668011458482551862451499104543267448449880561951211755262401499243797037561707729497407545863311979337589249307203656990006163679413397610127754478635519004177926006815373315646447450687801109838959526575227493134483090012314953251469293608989234051987500669029291412626333014337148595082797091075217198433080074790499890841821718067558178589148621781949284006937779284666444912041049101310141862255529196725191382255203882736316052633148227773593211488100690293354980727312115331717227266135187217545726136488336289632906038639486752221333223153136835243093799812834972224621097619195738679731080537012392616568094152767392367865471185762940731417680219646309826327174761043627623685372075011153338429752180582701894312248288554385968052565634864679158396836026291909262546470667588771571330945503516438253359811400279544051202676404768730566581650105049763695111873098588376072435029730838026942056006750239819913339370963025046681725310206840943015119739068571975423498808099005787898778689238135959203863751048953690713189300440235338097714238960606214890651120392374742817927027258449609343183317597459749283180235965845575721399908368282002916180013167638515526557454569633023634798588857892655224078548221807031672538292742788219498681556088117378630026295813266726436366625490844031072399887350116398075316470115651508046066752664848423894029869854723636871849833055042987671454124589783355202475630677540415808939353042406711693972498358912030091693020557748630450213584527855751656178264214257582618719963270144786929084664419091698127022162405278954622545238195424170578731752777873366457241054900030194836269130697829616758815429958902879452799641819371552628890389689333765486661168995975647182082360041247759929542007165774468430104086708981900341511293661212370798851955022369365300642589245457521439363296983404300841566153752804894179252479787589395734563373313374104893298491518411782292946052781146367725048540149470656087229757780878520990883240193206212820141430668450977015111778200801495872397809197226283289245487771687773072922710732454380199023076590384780837186195173153542652575873593086903153152650000940338100287136801405339482098928573349514348011284724568552815316999579837606811172729464951865321535081710630642272120439684464753833791058428571993351140109325799380125786498569406244373743519360820772713219148891728062616498610178975894823249545137660963038765073527099225481804991856425511349582297225677186843386654165097973907920404820457052962531004902815709680808804283448963156721557340700369270535090324242014839059944646236489383955159534916581824199753357915988758491815248862778573464809568626725647276630120621082263015920047045616567999566625389920286550102077217236379728768473422248941678604498034120037186782512604581074113439230016501247433024833055555210574162137970804216937842750091585695734309622677932647102701678824206022732595087943192438659391699531497515487604832192545427882522596313555448632958437031270155675573549523677552926566819292544607379392908178358864642968978647763123720753840659487474205234838495615136444240135921246502938238318034923190729309160069626095181341809003904597384564868846308764598228170989547200257214259931127375433169856122678006470123065452580281702773712459483495257179226594077121478476788756029889247025372806446229661145139012366551911746339730170412197624243269124755459248319591352441796875087055667418532326756929565947848447501897330980549165441081821012068180085365225357166932418798225327615571635633670337941830803019149647912924365920108613043376232170841098941501230630369613917822719605181889652723765450353286881463454265797440254419203488008606984521520471857807701248368640176105843895124690755680361919258075870187713417037321728721381420083234547275854117296143010705670400153132563757921992133734090237216492757262307384842387964604571185985668261700901370740680853592460142220704400080770767423342198878108805283518800226578953618767164419091925485304868632371214436637275383049281881912335454809740663688673205182411932171088099650672938553272457400873482318486964630675684675734525183843051029415341965032672911464352995127631252802020390580192133799996214517142847580610467669203124394994790144870324364751785598384442687738692079010382656222055346461002781208076115648875630343252741440944391926606755249447729120348039453708110948517898450622444885301526567314499017778359357726800991188728808433559285238234836781051726531373772403363973340908202472502021758952175585176174509653326445435747206711587762007920819218782659919521303657822374398769430354294527034141310037752914960883580182140306673571197091185919314230563198208188275076372362982748968463770305577661595160195441764646675088355801229995770661933628933348932677081800174951113438141811031705687905658072267400064887813954681088016070633854707193807450789766648616896925311528697029964491537614480861671713433706516395628716575525426748422874486301200404814962579954552254286267273215600348796186315413209547585362419301977903179092548567718972534424458938107256346740726663632915775400932436286318949445810421508492344937223047460178761194102597300932838842639734425759090927210805804811822182807281454697329702492457439999522707357595087301728627952674157268445789560811807449741966647301799160434423907699755359225152871408301324925227471177255743830213141778387398305730504599093745135177808772375258533611462597721239753494362484340677362147926892524734765803687065235971291735035838260049212990054611979448765207149656993683808246238072998104046033651075181693662709942972087216009728419755022431204216732286391710458333417078235323169795331660840939374589764184950530865527365126774495822279605132945795805907169486437793956392998604299641360237576436577566498678792283716074393597087886540843796266828164125263824938941581565919162459147149443817914843969978233079386453915065499267782349333409213884503789538878483437917984938132029074210033065098897696755743220313380061128950383400109427517066009010272978536933728287035100189850996569333884362782638916855195638060176770767851459919439796556405026702295136829902029639724397208038529765513571050802995911628511734747234050896232436796183228373810137942942796605830535503061258388408757607447502611046919678601711266051038505393148862824474032416863259819616662777563183449744337948858617119091341381254878957552417969017442778970132617460615081643159171249965724735963864804340449942701814637929344767733666483066952196870593445037967899957112016353935760397315705360496273509074370957838714890083045182501667822591765955553022574211000883415421470175479658989585094098761915140081606425651873169990896138805067984689391465288763771895928034510788736207684802192325211651457794993513127792447112435837462952181972376701057742430525431065414348002719517865503974915607893834972185063035905825494781348753193102876263060498177890648988994702035226848449348349878875702084674538873608824164101363414423793213523579099894390723451361293949680629563186660549426281702750702343324062367226969186329115562278913753871753202998021098273368052292879204812136172518417736885547076977606710145569898098958511647179844051591990853002288246366416008209687964763662636390707982282085115020041449039726297839797309876219702898177461802156436780107788379815957476929953948797527121728421686479619384457281897655773727023978104498800361829277189268753935280980512255518148176578133106357592842753746772520758829154957315139696435194007078914266899349524867277729772875901956158197223206888631125516530535586877434247462878112172807031098492074854425794679689500507157927636276147548469429977525378937773454712917874827447464215230038874780279129243650500800617632615547664299368942672597236252230987007469590982869136797370467596881320315995760590305418960249328391780051704427279153771234143809583827424979928695480589232782613551576330059450257083405488220652663102764207381998930433108464727067123099365201214220111117753051990480666539639833046448702484378979334337900133351161567669516168550032263583541609488731567348438837940074469308035350390341201846491985296226064163853741480646960462220715468215528021090399303896275746831606444112878153179535440239912544103904759766740564356651356131415251848754904182674955438542470768161027088491301212259808448707470369381763507603259476786142076050597937789548253000499640289412779042844949861452432972669536005377646965124130134956279751611215662791865353012788935894243650002577952669293602909859891706403018306597368606995814596423145106864183935300425021272566701314857347637269477049454686710760304594074629426624570728369178050576536916283608598192191830242013908042649530969981367872104718684146697746822123793498954684018459890070538593904605077804926648874558505974170773406288053364089874006923674741371636989026872233168847425612997614742650099453648035716220257757695977643519920588622111823187117003077013072554013061847728063239690151886886833527236175735313772825970101269637576971832689636186106864533280964517627340173775496370854634655499138444503997202898859919696426928437379114894043510704665281446908455834453410745687681962061284604926122326369153195520254396791544978483908733032168522382368599989273136228212285677569189872271999005422731873025949059848952380871919577186227992514514966890103902476452846629623757861319701859799244807591864751458470404537455097953930190084435848559719911625709420152832980684460366544328521100767900318865958447232914151166811970509630959991714797150125456838206134059334377709099812675784784063213433485169295588694126492591081676482310115981226559385118778374155418276110638962676040278741372722373730178410944042537817542438263530238912127909943007080027353875942658911856526749286654858283221522705934475754823788948319122681259891413071354138780833240790695192060929309507633394650902319438708723471490825958273010984284084321857902591149511594279931196527861296228818415142506526525320528489241536963926960153937203147342332402364757209873278079728255255074383433640434347932509136430960901935301159021464200052945379201685265273622131018333333648862792458902031325677706951581412814295860638891806273111008959660580520543079166545409227083082018625700710750219188771735205073462215996676816144895368487419763263016794085588531431324553472347799488934933613140828990043524465540802982230646068134725771243297991588966459793813945560827616648723617916129922392724060546519272364911624939496043394343333354519613112590283406158196144549671062853553248256799455102306391715675435802354122646718085114077930670681727054226593108082911408432076431949376408716448903606853105030575953645803816058525669398630753341267628243743865771155118670892834755886455264699691186286448687383111122909827928894465198146920210557469560719785811483971974246300528821838825119168058039602282176512885339480542616086796060589147611981661543036607175755209275490291551369080752893890024124337088875094039829196749675346612557713098141856550958090206866483749226448724330537845286088047181373875459783534329322138615928658001259678397069667375054120304068943775118045114823319219209941795542302256575658667819058875879630083586133201160409362178415015690485652372542337113440680948908905021971600959648837869120676863034139864517331861262487383069522582349397702402237955283950611824185872001754779269523213786227478749685412409297516207843346947905184840924322246171111126784656181369753526165930490594365160775553118481855877956680077681978292282169661159187784564714287196290977308534200448597739485184772685266580269478776542492591732672315228054520711050059802690062061983832679373993259605484128982479236991177378168720638912819438319149754984164523162978834078352624057761442227017177798644130992526743591123630838135296232421214938048392376189151294422069852883477748031867474799518944059939463629095255559830188760352116698775334360463376616778916025150048956206326319923386932980487189877852212695236362892394530941244398545286888146804288271941496011470589566780277084249197182849220173966246374848338630842717342953056587653868724933847274471692770192758513976277065262567329718135744515713967911101196328150672448820914213221694648980901315789242596955464653529896599879752300208315444320373223809815383670418508443909343142140115918884428593676775311621793661407243903762116735810688861072570552821388671467491998157157380953696831786113218244724891038380539723986591831622447293398500976950511383356914015700297735470323541085762898247903389999402594696271980631078618393353827256214876712774181716538936742184675876102274809144588371494515013145267189939951390433020388205665822546858626835633240016286499687702224701079232235950220216455983462162441185042388924391038774172417811358102489995701796233134333954546118364817421827659052967838624570837675524273905743598859771798165853309270659804733679305421449623966572285567463657711717486768954167268796209642301254140179595455267161241607845885325911408636588106882123914477138873044549058191347752744135679140318183603746620753168964073063331587455212300716979992235921747786725021921628266657731805716582467854699596057289830574047015749347978091655845383361220087947969023384625681808345741937083505661034928573577400328460311338283025895263269971440383604569501838539557657298847160480051064435774452036520063549436798619710166356063365341883025490633740499717705323540210260285993731791010575505760167168207458635642858028155566933991133234027225601321882356447459992297997380360681643852138562755739352849571095488166056216043777997313373377254557857545675638997190931604787204910864279939166302059440276581180182873004934231000773357474525880696655182857587276501940712066772787182067427472084005242910571780308352021043903937815671578431565036539919392029159584845747662862291800272945748197032690965976704259508782943931293776058246193027389699043808402064043204302657175752135968626305284970060629820499369682050193944918222701357948734175816225670769463436151462550116266786465738712381648776869858308084800761144092346602824555690493966447586245324800869943640227732583516709852129258093877618285006779032732929202112439837402274110150503794362169323945705742343762452815342969343987827824453615833976729948493897695227031332542867337506532652944911165572572848090667120311783504404550818032145798824374070388819289010246494851505490840610888459310763545325747961829091655815609959984266272467943376234039099855293434015613465434542090194523027926032311778784223041578560926359759718510211318097426150192970200801923614673672562312301728613459693358338687675139089507400284413744094462747132426488283783842690529693086972019143184710514186862983583805239093569651464800588901398952623992268219995332280872125847817839140180482453711160902936035659211254648713573106552250780333832056633011073856817776993886627974992279124195722558519658482931665977082538257710351085616405178955482041391908514266789705878000089776720262448450825059707739965638284833665026947320870560268680410073413984321946665350251883488835457870973901789528555857759443832944967425975337699063981920923792018582520045467476434621764358393161457987238388242821975921831528002373305879397517909556991070348784304567569554546398607737552971264147325624182426940921322803925862089478626056942941852915585446357165611342197878307017045382756242760037996265159684615133422600626534559740358799861640962041121202670454541289284631564726602959670458933433574788479615456634666415042262473712900517728361962710247986143219612961420754213362604317954997823843303710153277497703976199009216739266969658095720204916149002757893160912670572096237012919938108262460038886301137788692307186359599931807961805197904406880431663889246098547233299813510593527392862680658312637215719701989822309916485869594678143893260997222228631403918528170692538378480242783086517831003547744205743550387968965263020711647975149611067081851101677822069977131695532003115718283646479841402654488204315742769091562449033281146905935419952363094023400385818445779103542952880990057415858391294937334068963246269596892041660543699369432661421159941473311305843035181267144835079453246171421546186425073413035846984959707383841653611050360564097751297516729487796085460658450180571095997038477298987064366422359371993557929494180433281669544395100331946019629436162118368350125976606294024742554105415015767515010587689062388340857219692238195347190348770257981084986685367410603022029029036955241544709790692945281155605129261121186344222864284884819926493144130006389200201113097232796757478247725341745193488675192539186140078973394223426648646223407699339156643020327376732661300862495745983340110896277927432488757532288931422283162844015825842125275485147742635394003836564422050623132838730047258608157269959263843525828609819150283479377150637193482403095445085980127553931856690025800572638233880696488978770284158207948779645307737805866652004753888344353645013872276213520026031592490229080643852011649643504099707082303257215545338580775664084242373314549727395030049217067597081760894465117973584818225155404123122887949249324506224188747033272947462713168689351004925946961925581837868438223460392083555592812414381568719896202053569671411673935196540372094943242280127888737106327003133952501201595762114808729498113549070723067680066124609622358212995919417781149420590911887316420424124429481411578452338210141726926684194322104482754794346382759032420117874699861999506888029077047719837200102182621168826550005862514884563537636473421145152032669638729423796473422866167526445199382877087570671851119348188433118188992660306192703387930258022604771285791684023201789152468172175085001155747877527205950192946064564366924753043598779884184397977069748469018726473636532948419554985986375884856058427071836435566636587957497184403165396075538600006998290301191627890386821627393563822118556556025675899455164135246273553647641594170414969827823226656503226707045480999565369114678692536214529366216604235325243750673692639189524368075330307855435766117164582970708792736463449170562823169806925099866557505365866181841430730899687739945175830705520022575631239043458116226676805379167550586214660369616463230790211076279660688458582057979126452728565332740012312803331029923477380058375593007516420240015001763431285477668731734057026355138742224718106868473927272345391565032704768445290190260505884650546863619221713045357454646526477144178965685919580745135318657594994414455233092541075869543494706184688156942613442956850216878469012159949296419309134982979405008487066150092623298517234184385296567322230672454803247739868747098915208426391321478621745884108610404816900583745792119997549645896085468649089064099662839813170306322808394708539998291018310778652051978745482684389664188499311826160850631512973107921248191088904214162079578209409600209220503651316468268583464388173670621999483856321422164621423096314002231331793021660743760204947646494280106474749012131450167656787467626205831087816930870587678997260189931289521817260158446454342392091857974341787312491549056558011854300922187199310359289646122238196502128196784960176139053309362561020375909040170137240843576126144758896595894836391459625643565612101813677704919028974007549818423770476273124634715511978258559148194580294958360009734175393071383566522448948261063983398071939015619686616231616451275470635893803698040697829705104046692696031582076267827463496545435446968399456763094286541424798723496580689851770513112191086869452879441977626215796440513695071820391681798812265215118661961612344711716147199568368889782076284520542262250007582272355706391537565632253424722849818970925300055537108778349251233723693629318044003865410824547809049753190499462945573030001167437529263995876504546845666831201866822163093710100829836228277571115726071565878570344965665100457015814425880375624042365390762929039361414160527316949886927845035834816940228849650796789111382783523439120555484467859792515878344021803075029917783484479403090429209646847778672682635999637458777302328299797228541759511568327348021317266150920587916946124476658838897935504104817146857422394475023329440421374811281310755291933151155325340855044727793040159156380827682251685210734375253633625875335923331617544752614694967007343770516333815570215955851633722023445277344289792218778787897582666894210937754547653084079311013070907930160789017374941485123769051940222083729453061694182525662809691029371084029104663685074848442694970262413099430265153653894312391623427454775019387075009516534952631491549098433867560325088549831967407008105299519968732406929599091286049382556965039503646034306568629766038067872064307828621893023074871634784735834175036827925094865880198577851942523200844627672532693478623151892815263006975557648004517811868296676599679702660781142510255094224249270106962416253212124553123648927604522364742074856003576017938075914925942310036535095537472582580995426900784524342407620601982996378707992545882803650069296031092213849680233797946241482140194567346764637611678751349147479698372285169356690755043239663605318454711254118960206082723167953834646958318946223475940309146041053566320690694181246582946582844689730898543301274648287264101912457464187684613775532743832635415608712779874045637155913837875051969825202144182717819761743916792607955793637882694532272735698932151613209410369820367669593888369753252527584969917041513773813991218316194482651547943097998844381809797220445302734638817772481303641695877272092197551612316812405963010414448261998505414951283923363751634255759260954433242625843048468388958830592349585408537353461913549489708802673751883936357802551264767355534823126756397738104832132518181521165297042119421935657076691088654088836023270725410522012441257755097192517182510399995075257008780340272573807533811589430588868415731243212607030938667326606460822196971238018210043825905512133610276558775578323946091109819220062328100555769983271876151003965652379310160053132794866566151701481099905015467362822897602825383737290518771833237663208103229872147144082445000902414757435897727666247976613480445989478824405745075030304843456069215954508470675182834399921335681895460991365067452667441689656101391538495524897230179697254549802676790109630525149014986100872972102612067056745963850692772887110068983562148878198693750969639905881272961392713574532809403631195474140592508383696426570161133682564624030791279466424224800173208757902444535941486817324322328534526087047121175158549598124675026961860163784600040748959906294791460619965308417168702311861490236216621579143038463484511029035651039035720407951754382657292198172157429394735731653349992281269803827586397932419564828857328949074262373045072479676852910832342216247209011776310433766713015924399962083330451016999853442415444481429659098985855500008035454516602682737703016440506168632711470311936317998828952149341119417638921481260910633635482508012676084457267238540353026533464512223696965606949097899407055432525597987352619230260822800564839383160373413448921021099171971255000640929040901659993499891913052094405896300966799553750506321582802591789083315676553402539147135985643390701619585863751092092879876474070572240302127144022029347737782565549809448031301359976161812317952214923171853331934846074104133056569885982078311642516515759122025862937462163467601352543855800104416316397129475515491710270023771808566684293087058197043302932867397039883621850903948279141089276501514828977555152507196751196456627036380329650881775979947745812992000091364721516942893545701060444604185839342969618380064996844989200063075291793107881564000676761401322069918735027548890978832639204270842062260641921684844657281732831313483733339226424885475075450966548246990707482126600827660395657702966100511757620998345817433391196219197032789732606526795756086292529484665285395316470153451205825284393158366100449347407558817688811259086704964565495455093101229847451925623577247360144468561763770170047640163002743541008509342120852890498498260072260881693289079735112437762022041502589462287874086192881438907813046525551282389425743134213129746925179521549335838427941674849130062835409100644750788511729335820991882007023675903310175804363705495336208245854245301543899397885119902588115045626362193730896626498532903958049018181126603502566071643716880709227205031218106163781343021483718267820815590909938703461324185564322406323872945459079989573800699610526043268644925120540947867585896644452140338589448524963635826803927840816407387463449833309186242209538763794538827264811838538903425278202698294095708119453022218757635994894780425130280473055724624439928884459059973515049977253866940397941823647459249861625847481015100487187149873646925423764695165501899975204557658582127493719246167622275169833599462989241533103087208502530445043357849993168580298126366451535657383971148927220454254693709444408258121745781776751759878516001135966617392720016032986712442851799724117577198581177784485132664097206241374787538702427459368443048667806697467455736114595092392921942377541971426093452447253661424852299326417670240726570581515266439066936658349808000702439412858384420132790039641834529915060328437825990901816420991338105766742296825082444066223655886635731671856607992236879645412875835404353059528844038490010010870765325995677252595374569817848762563339304044653140526558606150055865383581204975756989881969038994757944141581835976411444597328576247952331640741082566829127024481549907468600581561559950468223752269663511657557935763753909963783030989539873610639292579318659164070901163280661101599631738171832605278677769788341799725287498206366124945512137866531405672137931609414905680082289839026456893472462293225608570462545675933636510324779240368913155186023791282128564597389703928288151960748611448875034009140005869079327408114461835391258180971251025710951003158403263304870405416967176293937346572897664001415043098110057010183011970040123974022972531039334188800359822256112538953592943414307655781388381851540076805449000211292270939284169293072769492884559888374127298005570644891435910264521746937935988699057700518055006698417864264375063301559984141932138946992165450910041016739833064085421782084185583826409117387875572833709993735265477872666539877220409932676327576614443957886160658267670489539286041788782227135225055922522907965352781370386964489035672440796877667686170453890391077736404453136983595957784720303017730031223734261320464647662245039914425342441809622513096761698195212792904845623706953901676778444161369196448844376869736360450114082720309015781460488147430431872985995307353541009712269916598903176791425379909011600653844797404536326110122007923842549674902550512044203367298232979273934124487221417026525250713440264923523654679359947485117972838125875506445151698982779794869179278556097735581769324322484089574682445203694414275773147353295173455491672568896353723731681642794875682120196252895001261072977811657911200756139369374033235639603844271658514362626728763526013334063988829146473159704051216320968328973150186492175085049182423933639573042223146430632663535380559286389398432306916222327404424508472942142952077218527486475330478905449454463218823258920860876941273374585349569538710843426525681514264691189543716020360418704658400449041392525365310315394598070174308205494202227526179624369348181296558335223786454040443578524186109813778341032131931574385642090743042312465243392405141974545139206377988428174061320317357445925091117743062724633087200228821203360469371254268368931014352014608574408016050171824383350534792894803570353821680973944943558672796583184138124289884804736935812459110315065938859767994775806537051295125404370660165019286316376402998274871457734116357613429135909176421814418290593038377427127735408958174606672299778010080535910445529921776909255241332192936671394232946991912241314941867850438415511463609292352677563273825184734743459263404942706648682479696026504821660558373477373196161242087284915598562999753252728849720159324196619136902104638362373212600611246469007719126631763093099111938026274162235163863601275311592291512075289912667444780522146873241345733095243605623482284861191441000404726289832459827875987202373371224551949003250639535054804960965524336328571397928908210263315028790580784357451485862455120406652355811840363155938391277701826702857273393524624875796943648699145936594126657608581841836712951332550372613146590253109165606714666399473432986884474032697129951802349891418389881922665224658610496940144915370416294976242182747017884681207284413224920448527840497795870706234584321616304847652369586803960198034861827016108395088619628696275508322341923803910807281494199566056318989749490586783896122991172449220833853614841256522156435324229088590041061292564058908265184727337944379673962762053036506758933305431028967564190013690249425483453735190581078301279872112055268180857243995858205360275066380928584698284169038814129540460795836607471291498634391410319487193871998667255218788094168499727564066912039688802476622198165103102372812364536036398527590540038570672355080254207634731745102745307652141283820448935912774903881479499567468635100976876370006844113014265820101598624809359725222034321232472985813280812044226957099100247209361086483369574132734941683945671313305214823389590271670805140286451597717093428704721833962211594286973649985476278547039563425171762767756264768744041243596292726363718723254578501825523507023061378509757854011171132601959282500955051854832329660103025247111522542775751769300132803365342233272028093671896691842381780401980535599903141666346881427341638399355714085295792487773610145147353957041654945325336154295972450955374618865786924511282748980480752328970738040664508533370985335734756840757000273303739143084307488465134512398382113906006599644680320809718992845106877782088981979427994374314307178287307896060312086892970803290597562716175534528043508499535107672035696025035377112264041136948886926807567547781774517457192107387851186787737908923914604055212569562297101804639018197900069878402222607319482902076652933432725901324386548319142915671279807289545394142714457725357892876435194382663638418308022485255373716200769260309316760550560483592800514246690910276834661719403788058963719530281548220388394919879685980030001289895975517079376810643633233189008253580443717924060087608716167047360457385848168287676932802668526135164373294716943149330307341105891013654540850955794574817108513224344772334656351721216722344687427611519787267914368417243872381960751715901452625644373787690118629780879036006617943459667252077713250929355633721666175541735789332382905063153436087851143780507535638688078390506142455180015077577675492160006772785860675795517473051694835237144796196145445859916744375547731252122215602243812026219217110673333126597398320795739739782530829436988049140988542832245692096280095999047593197071030716477393773453266024392351660521780381931178037608369911716143830405828029295045238614199390835354765585437586211567306902845093148000153902463225644199090192728107312661880335300992438739730065885832395963689751476784616267359713246749380301612625966554513773247487401384085211771476899130840193160008280300486287056764108194895037090020561816047689423060933521224257432108352579808118695951564689977780995335484272289437451099673432311804436255713398605667044394583123577575500024643243566041584489296716464984204841033882148048904900663191372945359141971187308103139956377900692223474498689924080946901512612085846993954006445961415078272923954888492442345611701218131870997696437565412061681220844255899852819749599541377230159910643759421808566910413597226299298000182466308620750823158338464698045952514453596177251470441616050559997493089419448456812898218764448417470341296677655262945423334708450913224537821644227376896395251088651633605512228738978249443211465038170347836282080753995540524358310406787246203824082044804888287247587976356764852752202212458882222712857244711781513207143423803323861881671605223343226930923965838703863985595468735589762859150840581391635993793732237177508921616282117033515137980913339534229803797429250787352433110498181634877648036024227331259105689550490577943884695785350083176096866940322677555732099228527225344351126306178592624930769368917375865369120752263398085834220290196963806825707099767166265719883121949150330100004209292838717680783570335651973894128158745415367202564196068328085685296156028617241999523914904601239707764612305987902136814502201330339904224877189408379430268790206810601804551257238380055395893085131011070629224375867900535219058307211003897016720826594608147233089242320869378351750013760636858489941435732421958836774324187532850058234092625098663580373923779354955782218062887074537538093268756190177114966179076230020273840708766365217582715959030077656432543782004667790539929298031487095023241284298125794935770575643141012142936614616424622034482427630881147957537618162727135071289929542035138722676379691601905912648930782711262842193645796907488394024703738273195964920088427478269652820423002945368127599613363539841203480714816943190006995705513955961576642728518483390272761278924470588192743675008040271398550010747289353423537824600471614076368913653877965927480061555370713979290262707026166963499546098538530253721363072121253006297549377676028710798441564077856507647992423282229362292827111895512642279997134318200645198446429530806184752450969293823151361083013355080750185352174580395984134282342736114277613744694357243199582021573348001322773395600948418571342014872224338500282683918385180421041294352060678562318669574926955820911377355114816619442135313473330329660103189661684710917303212607602338287516233203234935505756941267849785967149229365177495693234302783046391289830507043914691672326829221806736526174196919084394877460980794888234034044467212006098848780127734027243645410609941839947210257355096510342714502889017439996498390813744554129100782518543223874350721367070402558235500144918905374633230204625820797477227141564779188899344149262221510144826333111365694751759590357314577258483097820655316588543640775427930326026853130968423983963182410065834724553487343771896480438553047255030416584740905409978160129392618532158248785108326267922611925735475034604599612066265067357331257004292802356959880828345517184374371783147425332853312774966609843826520589021873862534401644034242506899460470657255012062084222280599531809359269028861437965112273882103810713668282405578599796741754762488352171345828142465494259235396000104409679457213739205932478377381608816516980361848352276273478901285944898595741208960118030744534028800553518111013271949765375225768757588159814190452526816555929341369185073145929910178311035930922975805074637020601641201846248592241047193646729437864171857642219370693753999588781739439870074975782958867862056278469061920787610160098437117686627502400810885945784523981944593412759861848532763295837452275826135782078269473968258484503459033079828623291273081406412638696101660325714913422029420181826366197552922737375721513888717804321597382010773612334874911563139646381913551428591924098796259554203841927461801730983644023930694695306869797445619895756413090929334865308179812876590005194022124709583302623867294150651145583868870184758705225582882423577719566372727785566619278306138456267767981236548111073543417028724041976390531301190526958038510431255761615889906581821742198485068387962187410066630212485903114066218495687309129060035361979561182807500208791648822836540025442487034790010143457690347998056424660630010347828831598621851292323294549264229558461831973195572788661215554176469861370636003583834740670406535948859552272337884137999158476055832515694786935294971245336825680958195510696962379404376818115423491417224054724426336220452548471294767230347019086021542546897707027043311873042614645871375097729495641659413559743307932962202851667618964726790399458317007668005314559598768556778865900595327817419458817924422258127918278201215807700553613333973923389673636148189092310675952519113083730871701058354328503779501243003505552078379032782500051476682759091951803864613237686624037707213470334097417128573674321027131896393391089469758277582082286622708142502916541763199280825548516824595804359007582447835613093938390218759914563976646890739344728960286249574592446784915176012797176201975128706287691496155863494795326301790142731959321463659115624815367058645400584406857096110721485690786066839896993000197119639387892409063385020036465263241173849972307672052986408946229220248282974204274012834452605376199791378968973176982436563390334574297404056331812344402518779150096722507426922205737600109742600210592746799341010904899414449459185167153974267473834380243443185146143368160800984626473045346420733506001170072625574245346724716004079022470541478742790615383880657228644517362431084654526264895335073151770037203403669222791070463837981555242418410687614671416439801741495146101872193282360901236144777957876967387813877974052469471981448325304966563436982043951773967278516668676700070809771558424104640212406758724016482502377752298181191936369815332202197747803402058101163968317539616628803204710488237881340383348079359961002864660784970589864963245694488132756865512811460408082485030978537725739113053985911995923837359951294265391879837604320813207145780187695781978777671973597825258784761108888122131932130643052902526084553188790777172818170633336404554824234018302149032901233101739022522360873170340233459120470631168963374027910548308474080793079249506000856646587551646032501769740307539461131278634925241006715163824897361757283326885394731390088327413348176512786596025970834071634826490019095744038967188312646765036646269918537796205853160370464524774671496783323722077753810149853296912403536445287933937050845710695348665169027010611364011892551423593263206618026358484295567046294196006927916281377258585707448782323668916989116228273233274398216530615726141391995911409178027117225608860664432922305480843132286496611451439358466444942599824264614371419623136302909993480293644706626249288491578441193966966692451685639760669419151601585201474255608787546528457816649842075800044288266179716242500226189247771483547495858319388786475652897160015320169628918539445285095383394802345272681459777424224182133323044922503184330401484224108557448571825527461681396320924513729020419331522974589602007284231683842408946030659151247188438952081454073079026726207576870126678876342717008121210566403210385547777402458073909926592695166701383613090315007072454671631083706834745415174931560089632085384285279570048322991121462681379888479049848301451881382092160077156686605314171407106767198644248640468033900818450936667987586071399062696689085749077960869232737568414904648788145856339741051361231944148939249497728874717423247284037102646975681678201971610247077991286913026791031172642396261986362454344569432003343282853968459085085969058545420098945592574781690624719625572148346867615939111522608940243915178923073789383972220567905960040140260025865337911066376385073364835996117467494189692353879341354061585840522871580810560387656043186903960306638776542596725482732583225912675767584867075718674070021249615247994052773467317049689968089935034219204961093449196252587947952186781469663998794007887466708947652711823638102119757942672259780929895237727110570285373879147326395772581607214592593672363443139742502126062352036364755332840510691932678074580807406199660712229550184605841620182926213388062178706622348361800031622437776295958527271645048846598463779662482491942416056617867283565039011235114652997898249222681885909999906436069063089764110299201785468344279818922456402658280567214213584095020663149560638410915531940634932287427969705154199666294845669781270141680277784047830355019882377790416658639711278788964343028357215537097351023709245532525910426331364217850911908747074799435571898610754689927605998212050026121130950191198145886482076321407444398044271990331054896457185444184257800742549537585660895808254509621576821336280148014021139588207321844387119042798786480603929539544318491491778865909584922263371932497781594503831867107235193115077315983476976918713877696368215715542341679127821451854320369756191665913994367176129116120885743383532694945449516078215191213600496997799322691071944766210425340801185602844724890722798871874288742090086704613861620806508659424682660035908613540456720489767022287673458394494732218856626153868860907498698464635556180477188770996119085062706431251797588086292927923915207091248336908205409521848870824195813257532508316598057415251677607267390276229344494154453637314784982032273571244136940567655126423589085199734766521604851125392593360719045315217484271028209407727233299701024431462780377277599519474420590123449219935349492117166865212521966553364230711800014874117991590394188602611636079389390697113388021682674189026474818915612407190856910012643820969463600460271962701724687076294304661514694471020244039464921926705888163624658543703263238147488476592899093264130904001916791815602438968958358440220053008871808653393164209664764087435247395340701441840996719885823087214815357834204684578556354964649917168841525528100683449442139779316342842902113840553092760546929271268321422785355394373827438266164214966252601090537662494289436615776386118883473724249757459693335095314509949336548896809014783380032093904743782319539164293805725371607013823334340968923428784987734439349894458545595821637605546336201426115786962671338636062033343445953671841779778701123618815832280986233570681601184513880219811086370275621514244350659412772530063121190852383587304940192337851788540300269233385295227548560173216736160015200626305488673661770030197173118708606396658925957181046220756949104336079962746491214994912420432275078976913928963025954946563451475474140064556461536756170981810405813234758274894597540277723309188501842871171219095955810222750331506461393986959666515160618512094527580596785451076424404770866471385734832384132772338459546185957715918255334833962173831283652083125397214072428883691921544724073767885928176529861975972561315192006018790413286619765813734921377534736097223075361381333048275057800697699675814035102745672794645748818374893415594852158727128268221979038184426977963703389423914542752667525679227538337413319418889047361672233567953469516776232158585598478576444580525475415785751911075140508106430397438684389605502011274336357190494697621349483546977271489652505176982530287245091372341639184427755832825232804926504571300256549979016352321496315803357862167200589300118079857894525327073732698240872141022797070541698172976572080943629732821012260393448356849066766512806282349248849459684737366331529110754045636313053741681669082275471067489141737095109751784625299916848417947422692396217532002625730498814700477939567739937182838633385906267322932334552379727271287316987193006732972043629167116827891912576796264036575355242414024510291856552606520808236551023135179604149987700891037149511133575927683030879260205046847524610387989392137477070548170175672438388711434439090770565895987342667272007745613370876899381939168449841550501897613657628841613909955701332812916409520557028320544960339497215942219293194193328271173835441760731528543777361811975129886519716465927895056973004105541363417885489361709795102010474257848660686521602296490386384606671489124156086898655167934795036028123822266362831220705725396887401823029076366023117720257253566089643708714230096395355643058756638293145252161861284902197812385561490014695600677903601341169407140876559548325144329188732724219143186209471135636698213676253553081097556740412306067597276863556066761671828077343541188303966763717078328390669512805815629269982612922419521158590934194484909198293746501331120872799651030245110779602985221175080175739222741142986117026066630430763729792095226981257368852188201311793209328190903450422691087854126135017961550039593961357923059302571765612453525048626508405620301006931485758429193554898164362036987071398728580326702416717578960511920595934797204458017389165662456871685437135487812201795890861783847588944010815582325106598684834043550647760051370946746916548320972516342736652139045253496587612570914974391563950368537593124047842256305642481803599932370646626080369285994746449317385607118199441484097214324904011993855364884669089479474276524674700857206321674755300215228008768429602452314167861970239863199499565045423697988285666606894436574837057741228741875843499469533337930297605626259254368995337016104878956330845743331103863716311358618614075906628412481038874410836928354014821803850192011741436028380226306429216104857831157257981969177729673776942970363733269303081113325453120801306593905330051063164349869184770477181412042284861320619414822335364452866334353801506893582904302967684650050906479614731922202571196740852546832217000371286274075847756157813728930673308617815639541991101315922561099640547909050732622550658315117312540425389281336662932585379453610435936450816117276692766555431451554292960774706924351315789174246908150719998945298217622335122621040775315716770083960946027304931977786594337397828669256513008701418596575294106881768640332800268367252179099823128320078841599899347216174806889037596773573943123928003177760482441701648331921708048621486707179524404262678953774192371969993677247291315791974842431764426447267105904489673036163970495987112359817556952524086702280190026607045322174541309501298238868579082083214009457330455933277331205662279615456570812875413542270018105957618170051590624909860846457838535828089150956251888338800215032239674768114675041689644557768350847133196636765673916204860638721195572295127468109926624665228434218973074884933950361242634857317711935407481895897221135139076566992207852725196006202102700603417550747970809815011315373364811573864794393461013644388094586070473117647266376766279462965387074192157603269550367563876349399819504962690636544723134643770282308542110395821216447619488035192701808064367338339114829498326503016495565980855607279277596914016142811181205822620839346046909370520046793824288139845331860398998188072269917275710924810659163271491154398045637689309931135328620332168961231969403820610929771776646561002601073386992961529385643480723982032253798241528580688691451758675170397573330097624521576625731514791646894631705061970226320968005423977436777198660499992983261138559187430308574621624240277438280733786720586684215599597882031735109682881317345522237096411309973532066456927967271876482561248543579754520782919530498107109751867341792051472554907450584211051857320190737805550481199281986543465918048537261316805890451265469159151233781077456976062911470705738202688660280700482795648300902866384229833506189392596368682451515328979769753471542220683093658008015424967212227683843111417915074709613125782165835795619053122151139190839419911068057483910727065275668998947604030478251615380323778821950484438597503447248678541725048473966479314906247418683601106933128758461290081061040242458896180561899142430694201796743810012136523785355863016957905884893166480064349983550129961994554821439452968492746602722462227470954700216924825876648324096617610695805187862777027972235905121712881647929141935356420643544174169446425349921176182990929184089635041949730216984530324682585725016117763945909225326746615293031147024008004040959290920571754441058523947679023756272482846072875644557560859043918005487989092168868713083250493311511552906180001058461430944145364421547232181958342203490160540797478834094445443221934730584791557015843461348696721044056016086696007105534091172780452329749963353870699433157792866107240621856172876915398314010551402537261761907322838702354240634799478002584612760009465587397898304554236811122221140766201578163263075295145914398778601722914269692295071207690938565641306985553816314153317236133146008650117733229934660983859374049112802650276467440132268991301059576014395310719716389493697292045990307373500667929073530645488617851353227301450609886051155861810869613557943013278966122593447413943751690919550693642075303108244170548547539558956443912001227977107358925043598250106665845660015890543612558951277807495548970323928283257100734064200458894660483464663916405079459914792870813492860177760032292450352005943828884105610841929529326962734124477400985391145397819475649837474516804429035152432451676937241080043978979514539532590943707258093292729503535146694006651396873595224788017485977895294460334212870565427061609526250873446731879063205339092990676399402147213890282285262944350644792244680797151203254713500129361089759567670062615530627318043267147908134374334444752740307824885810659088066122170284711047133995743960144013782302578730962367078544031373955896954418332140345898438126203636903159780490967954040770606116116894580647533400914071674716615460239913498024273090145381274985206184652643951865004894267106163180597735494159416082448480407427798744988331398723107637931834162436147784585301061735511360542443766631860282962212667601758649479332514201321563650406755416072244771347032569749669012933171808554453428546426114444195357625951996773870611856769588109481805449002326379373296746893918766065412796685492668080698478007981607065119764344861721437076716007334264683653187453188144969240444904039847432660770432110843255728134823084954233779351420924671502126269066480949209433382289382305735153548783407182402678636871147336270854436245692816849232799520175304158315687297554771570431750512517616251875427276528501011800242626813225730986678112572557595642467955566768736551313430596885997087751159029493032655431405261316983501112623266283785993849208347245134895593420534007730848290968520764070407782758381422240247816625995391048208238763087672961842052536856687789662127746779135562841484001238470015014801292073757307287242078808647322782986235566870559546178224207497647975748008541035640961066999823099436338811182841138519741066922535545585682156292857223731836654613750546633740643208211251284222257418671942699468778192911474260761033234710886534864908283944396394723319391064858990049374384894304671351858350146304170986008136428574339442786266145651314356102347195537616863991716992879311769504859139381854560961692710842493613074253955160030416992557552565962856539201530225239211346718621132237801108150357850504355831753188114297301693811430159931517635123658100055604520607244962783224652941481319095862165950534612213675178936828796006904388978400315626633164650001354855326104098552537960242372814089195413572091796642318158623410690032006428041631706328048493497054694365770484516309926039820000985998589372684627854722271525022988176032324906737545229002684890034662082281840991239829286921813725330874761992430644155906403128657422086357427514167536994824392848975400619240554282803150549398771574157868692782435581083857345791617666387661890662818486786437772064269303014653404598937503737662870322381501307794671584283319136738665854049089991472761990970247831287868351844659004936949411667162856882512710490830975130781800523206926348281532569811504253290935332558125233816520647660203245521061435452552868735337108728991625262382035479548551994169181644772107872041188738286234304411338753002209366625812782993156890603070645228354436161231473165122445133727646316882760760670214774743729511615684960117943219849688565214243427938693984070347629315038704905555255564917557456257034120161718972349577229080191737023139454420461466989109796382007406118593315987073242690799541362271481266323660206435545959869754324264186414272992365218242547270732341894602355602054061108666683075982909707614902049260029515061550207568053042250893186775238598588635582923933521568354767336947365975843458288648598975430627755383356987281250290652619536658549329074312982828047323937798791769058439799316854308524966877899141964009975043208721693387590315873087271725592070399903426758761961006383899737410037506498777422738048646431472161987418402926151092998537761289802673137399320230406480988159431068095965742829121497201585286374630937040997902855531616744485577308784297947502665098611685205848380992581414890059904780561925335059304586888244197125509332065101470208656873243882950789025890284834552191925567530710703299339679733031082857499655535072805396918442049885529073850260870687172690522568223808378448718138989570906513535657248130509016936171349292541140567889069033188927133397872909935413664907158195072813052314147390566692332923619382010345449864268423700228276504860480603789987384684879518441931158686537052468886391012117567219841564145469789195871399820756398993753123013778061134017518940110270362522058229842714896052482877392657171037475855516558546389134023428381338684951408674290046809178462392229598009118823297544024501862423549312450584691660230628837231429845555083084603501898029874265911291747974122817985965845119025468694184164171142067248495909090145427201095359188996114570400686100851682366061009725155059044136413944473238183146017031549399273271999873760938372957323021975685799581639592629031868149810662197108144991569836111138784465231287180566750639805274309622300682993298967827471071404011898107972396823804936632736300938844451662451506606720446057584269218655032280686201334633031208982875918163648756972341868262910601396351938123083701432752055982193683475017704930837611359061026824018941564199730245669859647031970020208281411254529534159000020300067386193300883698791573036923249187660023254337937480829598301307290220368933077217634347797593251777431157789831577263508409107190261699910032285517825159768843163963884826996768924052641126983564711300832138847413839054495051619344478035564963286929541041563952549626084980175188959139588596777000913020196355635609966925480869208660480275276251997974136623370200736836923092689928214638449309563300431427764317470999310254115805744579409057506389556655926559824085073410277136195573470312672117008651690785807861879509744227960576295262863537439249251389935284590272862893084073018668412153490184616177617578585340175306316989603806911675066589706251189653418767607763255828885594845119095451089271338525359251169227551522297507545601677739880198806670779560558898212028178602685773922377886565140454492702837316812732926861308137256542894813704230372778655093385236934630380136749517739491644958705368440252734932145916211785636610169788375355866315858223343994933268907907939711356193183782845692730820231283830475039031077807675405373853317542043539226089167729392463844699435175981602904701899790671229586153226711944099312338741467555961513191382755331664517337525150032625407390307212452713609569251662060475342362736142396084529932123606626334137724400196470319106151791229034454730276541784819418068192251437223309655621028134334684236848033869480027642288738090559411000895302594027187752549239990162971607340447178461462256780698222202066315980640450716834877465192929837587137773719484076620060627468125454749131832954690676397245395945296844321562505086917289634348587724218916731371495842449727600307213319868526210227407033421952613055374226304555928223574876595172660692963527235305963972186138482982143851996264520270207401790706770133202025160407085017485249514148713453045812773609917482909596250065800342573880040438868853759376714126667553126773084056158450127983941619517352113053596069354165165227464820576507217097329848128518531367766638681641213641307024860219989497927027957389684248500369291872018549122706140861293244073497691987851911013143461999720962479035937017223893379313973173298205045052889560721410782618318557377187659941737332324035758011104136675064864005351716642704333368390051082099258025730722397701994045593656562886695755280504423843535557677908229063364882597366627037525265933060490470611435151328583741033407950024247956856693874501918601812065584553039604147585462303123484512261756450013679428917589079800673060451204826608693779692795543610158773704875898196239116949222340402077362076435019162296561533539362840303669907357133387414565525557788237494599857234646677877490094871582044300807129910818463251012322315835006344665557566784132835632978612387580125917669170863826857457143994574690819347304632289692008491229226110416902244591632094384018819540488551209502143176460162604160278655152063353400100515743590016371747117272410654191236160232004554226049399725056786919175418862649121177758981818953097565766742534160064233635189521804951340028282824208573470497628663004678183497968192483603711865109691258282607305485167410017929720312647466733976054286031615969640977786245148750913821247624322297803831966682147572636099899017775966529814724186171918512126659744160359443734249068851345688393459125256795642181029393969235392109340923097792011839059080214028333171552815519411392300532551290093142325928653508562429265565603025597743785468641916270864094595631309686541022661508973229001555487265280536027159889092387911771559575371239278109605284870954880346003408735568162602179123904894300103281908606908591082697766141958273798390817423598334336984761258847866650429687327534929023095991730657207696693874392033428100026051409976119557225113981984496780150720648949073473592957528074417181840588926095343619659931536194673368595118821157759593695609854865647627294961435307789884918316511629519054487401599449470418853247543028629701748424413638199281439282024397669501518913514411588499345109983117276491492577468033566984102455560818181849128658142920800056953875731711142784013779543516636918609879583788403703092174138654125524340009964224051363205413658158685933435810560734984482613548541958209643902802789565247525646113897724066620934584704502953727364493878494565379214106217976285356174680843736289886846487921409647180710811778793329699481587228590224616455726522885621605265170187937178460770001651599050161688874241518523316620989250272593671208355255945192662613567774042913211243512742195198097186658331030045397692301802472343343972170931326389791256011346349734374126092228022233842217443653340349886767987931016159721083012285103923185916858386164750026994997364532006375599719468952658446906266433006600472122709097825865509134354314033396873494041095493485713000208232685738942425933520891021552088754579476984017780403257929094909754239258442226076338449409728070214895090927676009704275402240301661172939546896513883779268828438844554330343451689627439453913320730724937654559637862728043240022915668659161274267634213521225058852485688148358266850619033303765711341337941874680804304098189629658494109361998300582811689142481115283871195700478021028442446553973525270697724771800345601783319408012427790500482227654076678582449324102318911003323153591208249665634994316469618809543529566844604261369970707125031429507300710182170492960957022414759637492487265562283204823032512775559760348932612281506098759791844653242755116663703055141598538222904906166688475683983550117214680898650744802590731342960813183805818564290316342480007674018539316137056346582365816581124027882471368185342063151366296683967432444343388602912227752446947244943473918543435566568071591967255685861473271364950395410956787826746490872998747173489786512741429058713405123509728659749746723019039468714274904880682396022886878632920855131186463321195684421985105820861008347717417329907117509744165399972873295730029921702179468821636382299809046908966177207954599092627799304541500155372516624721933473048127959419941499268357897197130766860083713917261372778505397959362158351789269689786573590226589638815753749081708556358691987883329836622240155230200770643865089722092190044813127652821952106239108670545179139404371379120252827383175366043393612851008786653317887732199924726367620428339545127480402254235225801192701999006914087051774515530390185285976803763828911507286009561823157870226722298784857925694975060511768413321310236359633346694644619665491850753066701171272389625287224313668332294556593796877591248127400785617051205885442571237011889706258909398617947959202325512841523797018711163675862698415741261764061698503901099706120661369508035763298677305026967740512509738340481744623226267813756783740144829449526799973638288254238571586222855049418135808494313470392489170274216764529198517071851224484888044357481859954307720876750122758843199378531169341755052301191120295844330809537514999301148004838548451749736784881009835556272691870382628172739222913637808688104655797050592670811155942086597282014589077744360242046500047637490847029228381442325173409691178819250999648085366014634904247913593098514002467226647875126050643976401549582663614612422633512335663563999958890850621374808574639641290063057042077209809962854272278527053414847615898613466136077460168881027776701112310585896691809515598316278730094255779089357856382454283826175213425294757871399111375985655223261309737302599990731892190324343493202413730029777172324592056501118442852885769046128432391346952100161581554627452682605238532141493903740081444610361207134985408872031194079393662232492154788559175034679635737444311172729445071833836442251880858691107043839273764653868563452185323106702566064649623681676640373173060610484944319270590448259884816966167898256305987188495360579146593520884568181488841303237093438338612084515823681681438697595877644193533381445834506550262868821740191120590166969918905392632461468677637984443825558922306114111371763590832475523532145808587243572299570548985324302169877415235132921471638333912318463497709555740770271202340665031373002452158153892429748952385106886165012319798950824564332269733527237728347226043428221094007479628182274371280486876813845679723736472769479659168273530451857320693745814945942296784321385602377992923763203030250146574818911382310541363143625004863943336440983036811313887724974908557804843569864764260938139283969572232333465812035425196734064828645998566185338188258065354193907349189047224055175865926177973695084171685843584869586827305178805620666803695277251996962319668296769679738119322303286354234777232581079705982817808505841579338131103142464076286639268540603143718555020345983260930528786322314503550315241371937549943421814293157677248809254564918487337837959491621369366274862349838574063200171895626767409754017222072984803096271714419722328462448648787665441212276169097195799958220501709726485339402224280816919138373734134856632366229209218619987229798689197745097703580784299610481860899706880069206321894807707915496726409934064297387197030925734970187495004871789334095697150634713606377545723525176848801615241041719387514387670746019050726939378639535045700135786762617842002699702833637293733677071071169317114089537408323920378416234355319742322414314052255919853713109996371275003159385508350085839059926538684002250741246795363532763580832025554123958834496078699483497674352725302165395996580497084833157069595824330022871169420997945709179963898341340054582477787680914410252301740838791034652132136866600766770408581162158082807198669369647584368134258099495666872497191220111703301324481857301689474341683304908425300209914033759701522535044222931426493539118747249050965337194016279207350888639922585012631460851560848353325378406639524785493008775698358056221368129051775820013570478773281342365586664922320910111069725270359031846661276161738961659503599491450403500842209906208946437754197827056732359264837670851071827885665293814134501275688476688632472023119542847287490217967652057576616871330997481704307934268095383346111803292223006099804486310704422153807601913912836231398838408670203535017308541252656816519111915096205401561070557808137394207991448396998027071516299106361686583990444603285197548204630078116672190775384050796411897516420869398338785494405829535918092297910641601818467695772778168975913764248849271352137234309125415221550032637035641057327750614158977495575778845488435680257101462022692301134608311660988033238403403009483414730508260429228038650563251974261341854138045102166297044573451790078072684277839661602984766533982740935900445453070643341750706000755766255588052609112059931692741492425076349148062782543165654876731721483077990624987449984325791052746472955372170515889536547734042419688796337424174678483594760461079151261853028082170793655919257686235333443846274240727158245473173636465098608210605345928005436303166718088489999926174146616250533046698089719284820258033684489014063921298459360372990608104998652261445354466652125185501439864270873835688753228231046833517349388959861560002009774476453919190885221040015343899402211081245456815910126356659181204866454183789915859562281897520641903679418719501196820763110123538664242325401098306711185497276907630199822176226350417556414645357978755694276652921140087407301407830448959447159682629888656090672981931753242400439457395270711054489244020319808457308808841521238388299529644520624797826172571232336035715028287523472646059311544969606348006333878011242674290329700900571745629834462958873109060799546246495998067450502081777646211799006556899339452015102650968219205844988416486380328187154181190047925582779806282436599660648601274350405915146192269831968182808036266909500684333307629992071494459528037739060248206785974130137328295055301409922452311325692311911810409870954625383920823359885324311556497983569523459911172754833969551428639459058260625071692667364682834116531617030416035869035832452243711327131722343939839015590068580136490223576238372336900540857566220551316562417682993848610644437042302502462951683743735740129492957393818037306198675542739515236698804024464343636074494720769592147773524771060829648252487289866640452952986021608311276321137546902656869744195759244216612604777719787472606321873747181412856036207162718711073818284345351136124535811359475894742192755618750632307797225225760288649580411283583474611298152041310740430450649233434128712975280987424281676889410561149069641789905681322235654671556378736036821758511301077895947730778513210878877571111242694334952774085065444807287024561986542501335333847667509772880053330792903807110215745285082369473679751117917405073494220938537989531405130873911179784401649719645940558002262589594063783556801124327290759513722180990321904346960875427021933220854009503677707218295560909550163355378115511061520406467372070292875319499468000288858577023261257929951343379191410864844927656376316485909959830675478492077838754846362610927469041583327927477992315861892013095557306936185067883143822966980453660247770715460554897424056206199498143756840350064696782407561346564428647300677387566957995954755690990815192476006721499324659699093236886781037728772335033807807036133831462885752916031735724120425789172089716188814502929331812839277781466170284387302421623424851784947226386510588978299011318308388895063962776681861751120408126953667522123554784240501290148634624994160726659672244130445665481185111815595700609228095018357022084276514594470372691796091832296208851911900732907008361606928757890057444876431222519085468612129370032728201035814136383112996280223647390862597485513125382682805385788469460336121696262910415335651099470184035183650348462377781995610713612594108440123383929554667218923686385203433327215671937715944681490013518892825453487956064797242257972958636388692126302960833810733967585254532180688124424675604190398296037458442002846367193924704434828417842641257692285587835433446660883311130804193776360590083017277551084084634519333923562748720170226797443083811507069252336659432997172249410247994780704073577061208031164133555497050372611975015399455494395285250650165687677877563802992307072827697768464125963470730802644397520477688126734615735088224298262344745196914514780319544271040844810542538424219203836980214962011466269648453462330759560304383308135242028986460161161828060581577603168665622421876466602218926014285211603218301416896525731070221442538225780172140724021937640672039062364109872698918822031648641136535790900601320088438404369245674528499577254456086658570312286097655439681415444263676460335926124608765156984556079238647114257529558356777368902263132514783357736976782400596067100622317686647301130594939735281745248609868577408618368803606490047705515781035140530415133677805857894134374704056093643981640083968479230912159286731739789478301484767538452603571348956004849545760299309116968828947747500773420396629404068510006758686467743097755239032881594378515536443804423576883014534453165358063210281183961254922019272839311430305975550266638608449987705108108754126262183677571728180161610828609815295219228061772897117942158354860494670400972184414817696543871401598913347911838994377714051618354435398384383334148689821022863405198527146738318984456832406695001385841978881612013465139554752429197479919578761283721980492763632756922381274638521917521130539061658861666188379246607343310674451125992726497311235841057022633087753965770965634865909211741371389468310208319968941068523187009063089996380579884665383195270109757017341195248982575712579238143875939203391919769953506066691709832862822456728974823235099332981990761503441460799865153793615360075500547626333800816684244691677658203543457249358752138635158406216424109701044268852968951065284385548183998055180769769618717393254745660241717856160202362229412381277375074170191875170926895014484665960747117991502437350815232838082283963682547988010111059462524287373684018035631104044609200448847433301686344106096820274058723902368412576269994248970171721627789699669445194171557973560276271092960793640653694675206793533769952869550466030829568100395103128786003486371259908068004709484402514000117819232694704914487138535164890568756966457910138464566978990068651366733317269121644419429725769625571344434028073562550016633536966303926692990703176486968844095986367459620885346103051621931040425000509403225747535617586171874366079813776783029837387675148558990904315800652680257372150963841886634555720024681731185814822049132992882048616100534168304692844246045704698239261475237879343599460552241489522718385784634633918065428704986424385362090117961132113037176532442165264417923265995275414713893638086677974705256066386034610172681957822171670415857807804501127545161458279841354912186047475455844112119517928690937203366104699582658741440275408632643342617843478708718077586781106490269404963048462654129488776900362762230597686372392479362979274659046077076700203593640164397236839395135781038911170835395734321746926021856197011865459697196175680382617150780102028582863058657237269659243628021084861725970979871837052129462730030222155728021161229636298383900115279289253013609342283138682543286224147374760865822511088422704783583162380036984748071779267966032801492462610353871435635337005937090029496779291946363889736215597043158989812320440960583912034269063611310469346500409926187493618339758015283807607019296532835533142830457905261202833324096596073432894629248002577194185782860501767202391196183714526916160841087540837240651272828169054929403746524750581708301488129971600563974124894702230177348579202243789044217351403671121000349232633895376289701469221087246731858572363601268489788730223705862756668357673210192848576862015464252339018596195809725110845893830739007457822832659859988594323211800314954699981674895521468839244922983123925623821107146675111328094383045646036498783931589404189657353482779997526288492069481731882456091311297001837159852990235931757548076716130593056435179972733135823474409562346512438351528433033434017914050087154191455008038640135837081152768991771966418704954047951748620062864894471076921245626687777203657465954177433625497562195770316551329298355522150505669498870652051744451884492767476937814547757006739976112554129191147471862939210344460573914473507111183311472678978331719402105178388821391046214572704925826716536568061730967345791556873603157868348925096921346155276267566688000682352212507676119365201741050018629406205580233013913223948027306162152017607101918637242529273725006525741327535320950268504228906500481696977010977757154184079251732451389817005314529825459564054993354389287994023486087231853339223129667538062941259080799175485051194437134264342502370276098847398050426961825224341172730020578446767311600272261307924589882799128340100037992396514480201512641278506949831510622945982419142300048540190340053570151080756447897118907934529710220786117305459270777628565663450367498157748876400585847231380730851885382960871032297949730596586085016809408418717684572143560100769540430415860962501521164952167884410715638831943112987847150129223626262612048361792155545523938634915941783727069596791623438338600405910680167999179377940877822469372473049127370086171381504927026786512180223577245513812630931135979940083886577068846615744825927479897796973420249458817254727651333600036894107432658601404117457750753372455683773635085523156501649287749039126198514673029970522882665470886281927212943845815063448242024932161014778614034387046779465007312553191694783398768829863388532202757392573444906594023619881775491867856768470607795448374020280444136517893953620678910684610011988476113248219089233139702845789389556059137356287342267611731089995744467134909079283989235708517800654682149164570148463798902430555485770294409631796885689283445805358103025736324692332611709734868231639753721540370903554664247930593558507747556324414634657160202605369525493282373564182782673697002899692422913830418018339345549107377983864249855217934158234963481340700637618014259779735865466802103676378370760442070956291421116970526200524005843029329261800437385254275162178704367147026697997294646856154484791254956604892223655970681601577625884357138023238265090772947661420895418078926064054246587028576892540332556883123659401253823238443895315049373541742401091705469029042561037310669711911621439438373378228820376568304062321543003723185485585964090174956260279886767720973061242803492688575376679039993383955909902211800522657182280551413626452690234723753227340025728002467404493947889053692025012807125152949543982440120423199398449842929516798699994430450542424589162839199237117923463359923713446533170861247917133795907660751338045346429037228873651236976186318490309623441678589770412462984675975601201449230885816689658902654466190852818165924724405833430917721821624964269622098347907906248543410735488954109829073413979741346229581644538734819118737214337828550148654219373444254272888112662395402197093796858447087004977419744440220932470907551358425899305318685020506775516068792070405198854608734370101628553919993611628053158988986390814133621519752697922844309045998495851183275398543731173139980320536895092535794685721402173500919706022856738583708707073887950289079357147054069126671232114365589895275666058969012955803771048728458779735930465962683872318468406028579469280833227944824572066329013595663942537349526934407736323213193203850751936185632859455101790187384659766832304276188163543695727373258330499892109262398786519476756083380957321803740635190712437687183853301152517980024872371261094352233801767674388366215094484478684710884866135406751446699317905352497219877287878222043604193427539693663813725308563249160856323601155941482571612170543059577876390476805810394139778489805922297824700077657686667258033116230943325862711842449954618385535732634167452627620763671679951534355045898957155823674795727172232287566969281313623654012462715215921144724280255767341588133781585586361319758351897299159267762794763960989596307223687414043822285315009508766415855164002090372441913016935369562615838038867276425994331772072540171479147915792387745047254556363538296418319104678349272047930138025277872631455659551984006856487752260923507981771885358025543882110112076928083389977124640709533276659354027594110319883773726533754378291548820577167248780830323450128999966109860677969019181674121925466171721048075802024756256058198503612455274409930876559033818524942839822842740655561956377403664192965936923825289855786323826554490949381672989915976078903109976435459610273354012023353793633885705498365429923467708981348254252800155218042407976496794399672505382126831457801228788758774044131592256825518535128238634363482621287129387141714713118488237800339867312817866556769400619909257004667833127167121868338597044433970683838434980420668369232037257013365368874908666028146313586451316224373568950459812176848050077693528159651314114828292853322309087055570034879673406594677157042951382560034036923844321750541779274628974048433172142399621781566950585569996290676222903088138324604629887499253790699680116762375140752748912688431738836132985994926693020774018267366225798776774084961620824639121246439539143536617110686229277446837613688031082751591871970345282598558099042000568264610071361908401230820796332484649951674502211652871041750565342567742419303736471599378425499265511750815322342215744995599747112429856064638463864478848407239929089354515102749990374472981679974816300798607877195571273471149202229620650038476083732333194203172122076995886875710250430103833030984529257461377317283232582947640221814833897872669053087756055321270155265329045205250252726306012249995486991982351459666767273067218786548593030331187105631146002879377973153010884810000052978130664076846862215571402990647317459063055427132674387325081201460508242728107966600426539690040911335570817183495942344515302286822487987876009742141479263746201519029898119124631783231476553947403731127739727112844910507578112255259225082428383158548127584035761640156952085556525973466489667541590686466704224635926207683994896833281857791873910712620428439011402223116973888881377362924172524845104302431646112470541146788199166892373652620495475013345044213723911736606292559575220499063514540441275036232483297156166833391512212809731226095734765025395126590010622411598534118559443521306023826371174422619056369489781876891334245194230399404097647086158815371103375568242139075859169087438792300111764274549843092185759128645158908048762277467810543588645496424461075552172519649812274604611836207712512500467848891054495999429870298766816209491990739846282915158574888106538983282062169286796039308542892487088375129595051572945236040256206145077520884987372911208730577511340042987239223810446939509841068048454443017787718920595758301797207572925502639222620264656493862070158695359718490504375825030506755923044704687869621305448133121779489225359479933292480504687417109395401881956375895648643313845316753488815405233007343304103692795940756618392504906204472923923785613671808204293396828725334360279380850693706776276782737148431983771897660904786113943900001271435100952261701160744000250731628701894131849136300554540919911787193475017935496955918877998082769585748016993034591036388817428178028415589853586291737916839890842933643529157110940741868408141483545480769943050991218011534342071309462779567598495316704677467414672804822996754951574236311431890471843148860530571028773323331567510566438041907495968808265321824701180082792345682219345452335978005050680809881267770531041759791580007033092719246143921101236451618098141217756547648750798874482267854648013124874824425532382915344219852694095757209757108921133682263380896410226482071914627489270587256649763477257326655213022466875158869588726871386714250506639924945477344693469160324049264171381964758941213216666477880865754581871887926086751597082149215887713630604608958468672670582160900137190416339442078662667139411664737883230676774235965871691314535835288127625283042550176544239919928475956616060409458000499270263074286413896667195463377052448399681917970592888093462471932060644108865850324439622871567925111915844336105149051335958047075419909287883812973163871087685248405578408079868306473566479106012284970430746141840218042755186732750051472366763869128992605830858307634933954924728501382592352169600771740262538139127856357602423900882602231794977553933344299241711489621367486429379171137211752666185385746851920514648952454550303144063548584001201101761320331902409814743831663958914572740172566143214940004278574650756639271234730782776768680908046590804352174348081883701029643466973361299638623706110300304267165873939398619338495795809660023127853192595223019937454087234420973908995167729124740618369976353714048079741275579588184472247714026903486015418558789144287536116914591420314114384076744575661866304487753197491323981397671627338142508092848485012321761613812035217219691329649406011561365762204747176302183213198005527567030211974857249039483150052046570244159241845215116532066710370072627013511605136338329714905082338840342931294491575583735371746375601532680735039788514230375780811116833761674185571822505942247980082434291918575751290468165548591519242396709309100398774835452379306556056048698077648852455716475332034940076365998618977217645387459515194747921333222121241001867634769324752535821751656405744869760079111568088418853742166908437912539881393182686898265134941266693855820689324595433316670434113137843867990506051272887865348534661121584936461046038812920149685546688083605698261437724388833987060905105846559198154584169953257943422103353682012355720263056194152049275491191546288131715796373045865248386952471290686007595744884838885318761963082352446083362995044890953621070176312563680546837666711118732102744443448767629132786637392497281565588479665292190109248418318525661080271306147341592454820239771166107994582801252516388494382431584344133798725650171845487245874172607575425651461794912857762276682130893241307357195652319987871455562118056521377737779403373347163472398662091384411552797427570887638265400037745807353196522331618725789573813859923409833623810887639663513929535123666043509124175429128824453753469153561540962695792357327612924175949930371909562490850537027355820631050642318239041233800278444456572405203945721261211562379319605504784189883907683674688490322575290389898519088724379001515496154768153467388574861812336785439020916337132319896330644671996666884482626620319807801488333858283565793643387078297101163781717394315195994657586087184211708117401698270768660471711293015112108826163391908956617158445227032149554447070579163295370752765065650992368093742691040699989611628152287152563776285288635594856738869350130789963396305548320835241563999073829543609226886777206958815722034658503345184865591040442557844420934099215245068915965251374231042144922383105841345214550774743962720918628231340789759855240660074161725499375360327631148270233039043243491560467028817728548424323986570824292645366192144860509930795474776153212256587555510787475148287679451438224287494928032203509584553074533256191445233203561131817538489311880922096437151181788322804020299476542299907263658723557209889336061699236797329871338378229226623061345945463336771875945189133659065471488019679255878597392887852300045198218344702954801242037353118413334537912025305353975640466511718688887133748533593109061861190641515964654581803425453169379820435676334251740475475084436649011603861297114688022684975567165801670348648883444041827993884056292173335258290505175507572355077003558189633670665771858968919891520681099365480933175627875511126477133297394241675555150475745151903785289702560040948858902543166643002334006766638138967577927986940633810873344752390712498187819715837587317843049675314606421637675099871360429909154252846735211135774381197441113729016864772775570669981277327464521361059763295596705079581060586302583972220468377672925670900231654719185237826623365995751996968539339582468232076116980661099203376804192124985892844546630948012013673237083010126872927669716953137170483013151149024257973205011240029035259729312646973355951364884504098360581826315553462923187590434119101966463238789070878379726311779463010877020945636765703421579000031400787659607345193372606976510398954362320042673203417568122685633317014730052622910508209333506622823789071585333853593513235184044832539072505946567727854428810576386704271776269904944354733346856598795136395312005423874584334310910352852244612917384074490766825512366835260193899094078615733743707486377079454659236379493044025645021762159496387211629505005783748101467795910166250232397761770038735647916076534698381399013673705295354977052511170080779696802324068603262092677300087552333924798174924430544422430013486741016680322120836525264552702144715319347182896696815248604607153532685957030577831889710314553218166927935168379245042845530198118684756133174538024279723282700931667680343837147370829172003732353189701040130849312315182097190949540447800854159877790077776847199123860932780668133119565053017071899607234313745406687851039479975261302687942452581845554303959230490613209199409546864888918038871768672781832308656414391126728593046479000234933287727553558912731752336678674954274070014388684574469913907440378153723468911448663625798639254736589179753649624142287847992585673641979249087485206034376865279285966587815894513783490212772102580674618199872137373343657394329108095902118748730203810938037095259601297586411173576589823294265337011554597834043323982665290026162207744928887211569476525229946632633471831157434235066780889299066186576963134534681086910797160261091854550112865518428668461932092129631664457444402019307241940657187066480104971428772632329728320292410787595981255219715022754174534433313412085928777580303365198428854743744694948711661656192312059579648254420642034141844515257194491300639947339592365832474995667332222666911525905220067952117544576096190277777512844066367442174494374593192036912027168666405891878826658551562587161965705306497338135961203778038167947022054711819960932319978658385623342781594983877792083789254022707720140254211530363967558880850091950948944273030815386950229572928793724829768736389532298767574236747127422484920937153702415583917670841329536618204280503981609167307415247462177759790089935359309262384756673649361260622385315756224589626357644613980240877186624370463587686916195950351991899778296966385230315236597906318343209297573207213609594742709310685723622492734542684919587185419500949726211928793035158881113221201739334591794514482199293704743136499376517292516761466477122601065452876757545924672657959980391620759487034766461411513384789653454345203021413495311378559173617019542776230643423877458585271190079293107354802755978997641649740863801500487164699296199210921659826253813614034695948839530413273624579314128218100124729802244627562135883833711912167085762801121137523718157812321268853580253112128256600099577608003703466180153308343277880972213583242470802469238528192865528464625071898420547721701307764959477495943501062610812756029135457064915636789162825434304758135019105752688909830427887202562076658537343161816467833616981326956651222017226900041209345513867607615280293781068021689844691245371470873249278462473080849736794932422843048854338092820379112193626006102533355136055868695866638680510445194073597827351748930178021350629255444078517618162792613806063916620056869986934289131343276596752907907323236674061026223146614330398238526600329740135324480458273672586758013088708502473171989387997279956920485282969115863785549449815482214052452630184175280152680068668022121564954987350395303423673858970274806185293130744590766420042780691563507281228488182067699152461190010370958165541389091828766541531960250401443137060828210872352383523843473750056140668765213449537754328200904511340361501199750002938464782113243609980851299723856479572937799882925683326605776073834726685205551680719364356267943384605453495463918130184906400225469449093133574972141929224335667174069334543793036346048733828438581094868362932851041077551716638307396740705843824812280000363020369073409123159688234241126250130140637328302826071134973238771273570185619679012035016328277548733772370657373615775110400714642212303881219868711000132808323690916226795777793460898481254024397190137491651667568658222415796433389948634649430277299145023593337158496921934743107892967566121496495227228458053964529077852861699733699766921644231206417222362564124935113423894842265272398947751268412544735956584569849450032531346863182144668162513728272070407698243688513775634003892826166612117599218668099043030748351873530510961902985859352852327936221797684925514959559299129337831168940483182304851575107384206625716611491978877312868972920695554155923229655906148176899559001896241530288420103122244470780847895698146287290093499091412817464374044079514826033035302915406741066938048335159769887904489957010670680667579749487745380871625898867442991012958405913082256868459749801199929880272074810514085489492498228065454449759307338907235050618080006748447588947999468400433230490483071545449770147711132471507837469517846767471038540844513207895984323311515416457990086965849993689237416554680255937592745955759040443031119214579465948114678801546087879077605786071226876053481608013930790317928943522228404891659789131105837006578741717612545212978605352276094590040010615240509484068282376444432042153264640291623943263696087909968194792176106946818480634385168836119099684436599750635611449829371895036389896385923405482070884052052306884409144847958343393518503617261394544285796074614893569123010842371695679351349353436527084742003310246665669051533527929104923993491259080646492151211102387986519578879962973394825723243819006204919326707067050322881797033689143875964069160632827229169963303174945854996718865269700642137338472759003801666851881584954021766532750295142495538300889276424115211294481357864165927885158793925841120623427482164221569776709648386151254378918252659388144223253340257002207446351830366377819430087082088910986088881683472221551954913806602825272518387523260223279651016554704228034773088404699244014110932147203413453945271867828006955921220296578552887395784078170866595009166262273371044582902678326434318324563789117169616844443570631888199000749530892293409694544510354419551457484340959744541352992577556735336681865864427218894490788365491933915791965135340376392975300815788854302291559466997529447548931169573174431708471855451708184755128629699836987791407399868882686128004483089546049530403304537601709314525176188535315030286987505738311904491629411886778020973945920002708158582324572255066857209816371578419292570965771928294013214939685778665137789308166271362497277892382914506815310744758411837102029083991291780131000294884040245809748075970430297815355171364410139285842654985267063173174063844061388503453407554027808485558549470801566785855116929398435819783021636741501807592888696088440040569151415945574467535206429722875320141988680792030586653763931026689779753852228908757048550714206017417036561175153035164372394551813165165633278094109300046392354236780292833215301517631064826777403581069618481762998737169666635634212068480248024447022150465042220483722453398750047189894845553901810295511683600906667486339787375085119824878651516538564985948457898295655052614298319759656242690276242983823404896951253910156377036053413834019843009728305368992033400797271572133010968903476064932594099706801868288190849602258591256716352621703931159535036874017552997535593154829978458339051832717035398084139089392828472134019990586720901344726918188490044144875362994835008300381418443317164946756213282260248911471182961322524061060242568559983994472369005700795099292766339029087322810684026479499956596074257131346508983760407632832253472739343108763278772699257374064216994119709834655346301342907818777785127079117956835142091170021018109341206211396202048528107646765350420614978216107194642583920250959767730553536336508645946546383806674545994714569151857830999696962475346606973856536243569593916334188674603759103890379519644327597319607633947341905475213830401828244742613051283739764137691972801677747477677613168270975345464448700203665562093195563146901413890206140573519041065886291952969421025798898464893164806661135995031913446087538720151985596159529105536234733055620788591273660306690098026780011680085634320610428597198265987360091750800446174008925116079207112200015320136257842433714995168664752727461106661066170368351575491959776571937908652648680872075751062573893084685773323657892020243879297398818741840434064156126468901378040021743113419389200909163192296890775608581466936186275948502349075427868516387434748992410540080411942094700834965073045644785093669700178545211092527765550300100777865968074305204991323905758370739000764075628540375609842447503027426420410771594460126183037430493604189398833012754584783595412604795090945569700403672954516921775299607693376547594110396402316301634190265929477618909257963842315581115054171092455537869939676206749481996025783907684455592826187879875112196433356669523293934491772774374421072298872719711974343955355144852368729346492999730173328325976260238940702476542559817272103214721824197037392637701871427470220492941702523013580817957091195820322133534460232779890057024623271651612040355594425795820869161073900664607127045274506906093835599574854356111804548934444665914303755295424835781156006241997318021817190110388347238417407388744616001479741856480097549170040148384867510499531742029170906716916914846119105047196398279011464277928300452040698015232751249839042248161676576129915799860249948248737936913879112870601328411290056045815384747708006098189950689648581432363626068042050219940963935727002410449087752304072257560739220397911230296625950049774612272833168862302351973934811329029189546424555816801907113415161685684388461863582053305374603036850503869133431267845791539861916812936335824714266077332097116505287554708161017336917075990070534099198670296725091754338177855246442315534678047290137701538853442914776693159296263380298834151519446409353484303741734946680580662866064944745562774306596552914279235621546449879098193588174364158966831486478109016233781978044554898013497427576274286086693693882392215149704033363019224761420419646477005191831855523783449912240157089328154023073795832248843046254022537927145044983788531677576845843042662575913796331557628501750025559411587930044716461309242930972226012564331907937610910266554988893644420686803232493118397026485031432359101570802289060420314205824566971206206992002667808399125928578924944442648408214620636170782064106158123296663141720404116137861234356685457432269769124203664927664490112690723219109228992431460470386366020442577803716718356243458985709554707133701036803519623744033482921213966268400193065700061517129407995075536166113697053591273685484325481022496833449798359678597778862604332713742455972571709571044800322384737857971063772260947528831324356417713469308776282809514610605868055561135540606665115419574874432625165387246376110472913457986548924088875226350779800363347302891792521872566019431550334545249552349644940623212448298104894068748521262323242673576364899634592728985713356744894238023876929045978968010091968687597887810366600151603988503002919293490819948282297598135314562261068096587336116483507593718185209269688392426882613142472016024915058534256170789763912565611235162062961350292026541805860164291380585198716693315301767751138991953164725533811603174799701276133289997316778338873052815662113472696273748947734702707729906717938533249479804762036664942561392400369747742974827810278911435183820359583875472240973937797316734066927140431876732102474644486530243128279603812114247848362058565826137971147729674649478250538718156817825206532181045674113538715036399400959993275441058168327915901588587414812976373044688799373060695429356362846587047524095222409027319805567730807228911419252856877793176732635563222920210612879601853926457263882863000730462728700773662744097060593621460439337966907429744882607767552624852278949546163080633867337701783547245863394535452310485133262636702262915414655918465143489430875190651318270959886861345844494217775447112097747717532210238698320048740179471252095167999234557604746429366320812256610340229596972311133224548290355587698193567642246052837628686666690263565445747211662155275876289617785716277070870239679640891563913946906540941335639061888081187861861651234705527961476444560275049815170774611186496347761946635518039966587036205799202649743511102448777978005491936865868473119665347253147579243392942343436771801465374458588926474906588339526147130773578169570368405898800107932197921848327322957442195084329113542885993610276553089669793487327611809773191501269037259814078800983738602955282070878411690627648386920646645873879699785370672480076910833239101630097530032223174473168171138775552614187623922293384452343568675417167584186875328809777399155238411207292995548557568105293167142557861231575954756642881928359065579347630570327489557179856483164644972309966413081395579966984414232888596346646094146118363834701227445684660835791882135403479329179428017780445556888528933244406720763213428335977920903174961567550516742345688380405338235815283715018020032870515220293069596003942057258434269684911989101064948815243826396681187877617105332473334299358855011110459024925898118142052494656609543196927092733077393903433313878570525702284197315287114248988347066357001187656085073466210213803477305114941585609628469502773618146610902006583011396946581008597124708909174668858777149235460113249524078852465268738938890590454120907140447073690452732576458770428124621356943950974448658663844674683747750068453971398847184148185229224659238099894134583016790515344597026595036859711876707405064175744956619341587040743908067580282126183784285149199916366618721414702889415344969206510164698794446169642083258023463434535529465414815134309534963200431588072148948348344498550421623098214184153550921803545306690791604651158876532922736402516553141168426616759351796729773931053960417811895606052362864451804183922531604641444810339302201660228579062076485046368141296578567962146486397582301196562850626920131484783757470420406786745167951155038208578494628245292079002009071266198723640392676134727667991267547612842124328773715093892031566277654283901817170551163424687160186624975912340444477455489503581803848808853653601810328279361891858888537306242078038194976943827406772828769905546423486602533676880185215168144302315069026851783827031581582728799752530961646358526579506488500976550719311174303361454212926451366477300010099240409858518929713094000941656009731038041051530239812530444462165938795567306004452118389044618221584455955276631348420617814241617849829464846005406624908108195676289478055805544225079785007674578875930899427907627792689610479881884771465673510552173838112245396889570629406759128924785778668310150319239656332660225249735961241202887802256826682700085282559231847619994657459752455316586651569204800751707141059121828821178852908616607549368280822200873543462078744734668973389978814292523683131559778857108059868077614880634651267468185509066727928611772760046228154445272069635142455383832901008077269408907049133675070105267731241095555175415361827704612706072041045060687526928051316001387176172093972464322232233848507580189302020160192197921336261603611297278681471544983093316659464861595270477286196200178791432988139230860029600982640330499549370247030557592040211766542823296754895382605867730693026502496852874743863191551404484211131465660306244835314105123259725976351992555940093684300953542952258622334061194843275377095452334660691011351513731261275917472503258123985806016803205466625465471605413001391043987347913591103379871492659317525510251338288480383710197304108878414415622047711281608015296095189678501846970782188473383499389086656654300597275562165500423401720534399213815822301876295838825157455732381909191040754341903020121285063473461450037630129415278677443494420945511434233088378648296506536208147075903326588631840900454071508980385192132057004034781111593601077509158275841232978039789578552189443640644969872752037404375922466719243494697135724535263282363707453912117536087172275998959495658102345718154840548634330564799568320376335087268947426959891685095452402964470015873012272717839320772729553712395318582243715335926299923770395924789823077233966233961989202130952636756573176370955857375620049945815822494557207026205978538725761638197941394459749810193031174694773849899718230473106478412145454072413919101166076130033913046216891282099010527420806541099445501832321667834598665937304746537408533076500689207112192212829702033901636947306500217222344800461373331258265915982211883762638221033922962099551570009696762319772235468715254187777055258054961025872352676799695056532008645720682578043870158310433858704445342652621638220069376902859020998561059936977599267862071749926656917682623004943508477294533435670031332343336705643348879698732174560885598866730954727113461914528510932437440224135336355488982367666913212819923581087928239918702575328309293195279616598487521236061456679592371504304502490528538682788767517374218189349443525789887722781857638472718580378611397688855484789671406669601291098637665123943862326903367277316581963594154315238098767017485346707237652038111256064420298432562564004963142287474238569763265688002637612284954294938742775217749074181052139838611432446775088245041020476612726936032605716085722393244252334952046550574162097899517255207223637628377227300475022373060308642100352032101094293945618885866343790019768399222233634062193837033637179509940115533385950837669174085164478798581761101170038658493488158070185106953320183426520115516805298036440495205319214883938958150239778827033792476944129419766200339372631549745021777900344733657948491145629207959241788728229072611661474514896119203072428599317334655117968806650431654123420853870857547373270248540237117235817937048082995949481102908996994184397972396602575162550149687138785728146915646617301336882055886390557911160449659188115046735366750262585019930111001676933709770917314400313742444782521600371500159917678176894955561875891349961592947604265054164447302488792119814196713392312058051648593859490039983532658007457711919625241518404669534530293150029290630655104296533174583029276733477855536002863195822525672489032623659200013948646023676815533795528978797912703689761742746645758622115593750879597147764102248218843217486806325812034944405149057632326375174329006744667110827648658178673123943738390697746804082230669933654806816556907707515744088973472966545302248322451617577936949960549904635040940183035790156819838172155981779329611876570269401480093246690198569204134884423286286576233414463092101195888815505882562696704071968034633579964236287230525665021962289955353762488245466371784618710769023280789074595369720427645290397618131802210827594222138344188542833219855515338023548484844434547213113078992954980221213284001364309791445707936104706599468263459927501211243426415763125498893184636971510664915972261225128203332689493900028529747817379848716430147549323669354826079146465341113564926620639060925108315487094316263500559324973172536534116565996348428117084854629712019006277299213487337120348160746048581655442462121789070602630965048917295781390467455118721456707950058816161890393467343283287989529463570861042221911806187905077532381814084653449575030371385421412545659107977277380090923204693336316232003433397902953172152828504041180860474156424659908572103888734719656510706715219980220481998183447993681940047945457757119536310957103676160016117002840727499191341936574730357888888520160104632807740025757850968455696537346453710487245235065772499321722517368502774836305292539648164145326470407923078776113871270773218092872720083841019101327211645109667201468808251307134692851402339724868477321201306577589919808698598243422153144436111731311751078594431845352809472549220191851776890337433910222419465554662397938221116798566700133740717440413042487625576355958386449687207471542828295653837914621175436775399496224874626647101896122273174087766068820005111462721975546256480610981029164032428666554617493337727293260744006167157208867176232842918519001896854009585802577216684988743141363464283786894829979743402866356836102616233780346386705794143882555206993269068742601950425904098666801368866854771102187892583169824835561544365859059815100528889680904271278909314351200727144049437593832854165013115966049982244777388047407540669883119263316875678607649707471496020095575372999914719913501074792275139831145201929741920893132360811141263177363297723884404630502093246047758349792851811155622877922428860057720986896935151467943107405275779774069287836462838340852004877338202881883919470492378978958111683940730568188315996329276998218330175675365225070721243688218646811276626085476183276895405863499542137080138885678425198777631895152134987478496445578766812211736126457255662836488473479723470691505001904124894464881662965511400646172555613573621798151937272030942115628282584011272203526113476535311363390407036929839994343519963142133077362114195354785408973404324468745042512894612962499915855107279546809939737013699931527595603505738191672359737553677943963049198084186391542730645838312585261550414126506400400566145883340582127727118679857949898682464761589943203705328187533975904456737434292189384692920781103622138958666634381076649183226059779961164685282806177345238636305951501538606856210219922175479356003386684008447890698038928827868972095442657948101854077829643716734061943122521046775278095754478141633336164137044556203256292833294668157030305204652078538815338919864223710935233465827488044136501042804650883644096479357374763347207761654829948686302750476005762397443193364115639160948081294850327127613061494995521934925498940903352585987303796656995289680174863493533313853323786726446446190135260345042541722954287527377681123943309245344993397052192004479506392635244461806015268630253782805022530189233094030708123422597159904794206067675301434288415273891647000314892614482720154300858230992619296400013178077074288186287712752271635647946646379894542533601919977219634088284341785246330278425603857908850849701504206383967213299169497276047579006286190140989072408926471509338299392178803999298360994364314251321703046434103338746476124797046745714645646638829860724017616094595893927072722735941303156179782365075568927283339077159006448240710401966380801307104601671553777750553855823441890879302634905207596758079697521561328776909122236081773056128918880571069777383094208137488756649156635594382176614929128436796751963003613072200869371653645680102696315711152315347763968482507987919640699497996425115300983757706750043188136435688016447836600923749140274049158085086035815312219948484122094438465012073019557289106724209056941640335786182115271983511751608471765880231610737919330093456921880724979394409627200438431000143749151734668625328094276701532106577124937722410134114875295351931732203196670637570040569982169826213216099355846525041525236525104315617162067927830620537848082238881999049615372763869950710378673640197220736374081844192713014497157646110938383433544654219773314489141432771834508537478695864036295711987724539012082387644459075372458731128616575775847180904989913428634563921254450723975365242527822426821704036453399424552825590137672464456685234414261443925566359188785541287367712720908718768780146433120325670683604070160594415095788215814877475494506607575747901316168708751570156246175531979800299279091649904297116512962728802326069515480472943614324322743705838048689431639716440883693003104085446039306736126532553889824240654969284518972233908352737661391006763390032974955153688950503231783225115695036124529532107678763723933193819520557057781448016707685727226738472371477537404339489156996291826414040698358113529920918211780250081267775377491463732003178357715357501153490578835390734564887361274832924995793684091209431343382843069805964904939473662706700396884048193789361740581481698295725136474059915771043083883360829551751435559253144656403285936052624181399962352274168167817589047423685863526572669931981513409768307164869092198118560814116382113319883543280242127025645410803829694086089115153736054272902139356789808031761607495608536191262388077495783055261584007241764141180112126744113781870779058630956375735272906618200550092290383954585181297436020246058489676766203566660075602358005030753889977962943961881994526134799190760608193011724162743186280369115966944290092047898479409955376974291504657451482555555389574914751774198174634971092066141163987847567281510109652771063810387253695675045750692412665564390453012673085090734154013358108621951183236096741566803488235411940783133102406496322518435302715909746910376593048275633356561035426296925579522891956261901786419188391560888402524266827616927298433700745994011975102940655339371466252809102945710209495307523167749323291602482987753824792712267918460292838931113028895272732561547111016665441703730328447207532001083487995165314192159918998831261035573530783242589567424238437302727249279678465207107206555391769154374306480790569407447429578678409236050697385761818769633379961305712714783144479556140651401834233636399689848374044219656855022077199727362965578384004930786149228612495454943616543990728432559312056125348185486659354706784836158358020138552051272503850959628397625357570106263727992606675759348828413027716957069388826488978907895285880896646726355831580550114779639063893904686305564787265077716519365874211286606045567059093662233606675194671755398116474629195238464929126263612467067021555887082680931075990924953429749500274728098176957981473025125218931864889249222817739538307552760122915826905251810426083863835352313855806463025859082762992449865229988241316328114550655112168626459907890420848958495905214537634459572600110146242547328804190650370785939762175582670194358508437639995088944892599829199583753035508237195509708496796762641356021981040971193281964385639097472403498185011639534751113147442355069988825751097542286661518455478218032547019739403206472841252391750612455690778127305240218348170345994946280588103798722054661073119369521784475019409193069894548826940871910605936971384010844039053755151145602368093948059064488438867978886021340269572188574004395508466665674066517192086872819305993085736362980662823752652623845869355419658158808620845002270118361129589700930785333144215685062563117753464536306460562452858962233465926770314872914909140909710392967950383814463202931834644353827086932532562903554358820881142054145959790214290882437600176289185860936407241516475051407472220273485095707437214801056456477268648009850164413278660650362294439913026940853204633356436893322577258315166330968268040322358822444959808877122552959456258477778112607421832253853415614523261067725663010411623957164701890430480956924106130330717279404183775101925354550615834564158562602641683558475401709602866418389623241424650246636265750150807843880474330368301792719469872090008723955967927000416670707226158996555600229450364249464804306257059424663822148267977616538895354860199700076397241195830485616670703179018988698209181755542024418855455144316124840412320839727101996038991245520494636278136541168316877876928667595184911827475833419237615623762337903186426709102063382373684543810474727674125037197582244239326993292188285692229137808974824229343151936191091666578108056993814287403346479854793372493434516214090962231655984455428682052031297091043695055912161008224537998572985687605884967698677729467795290769040532602731028823793112171165944601263187736582579571117885211304548932260485676149945318157051752375161675946377851408844410470252029239035374385094910119533916416859965845299825665171047211928090111527433836833028995582738955398271718675904966800612870261479038119815451344539588066122996490053504657762642161694767083502072589525921685724770586499734055327161749636528481647296998547320330148206293754951123880987067699023388710818401330469127250957874628342285049320644545174077333736810232747400930753782285862433044989114561065683453944237848774942636219685098560946040835058438925004610119534107131453926290086876593066561534504830439451058613907500564307218277465702975936439029258489585259173370881846761509907755370098346552665832891400056045753612103197656738575068510086457043642504508797030880347734907567889807685184566665267627431994533442870223060470053216731636357273164185527764437913154554500435132283040497429001855964591532943065404621084834092222930886684781543512605982973057963878094980239024188913168975037316592622276078536256359125705232345270865347973744307009700142766793228270088066020786707832959547753539494378844406544143105964338278944510231057406158244446192691938874777894275344854562921554517497785869781682021264450172121291207662936224795890209534449917585283176221600076571774914506421706904929219780592521869397076226006568483246896154557542345971721218317518393604095483807595269735052276504189865429640330137813351197420445570961919634564231356461670613732524660140845289082517830037507679126641068924134673678496748085830269556406443489384290919648675896197869098894366066284650215032674927163784416547646145412431302834690588203849070107659963879032825227957597637172129003601205770760810637449807686114637569887862409726525710645410484539437895317362816106210369857865528713773839774835831960353235397011970494687747704235023362715929076658397356638659893533660231443279399962864228384492664466453448865702584081040764910642470474335703271201349344880210507274138892032599205666538502516756126820961451067305356002809765021968861880316913690510512300727548757693139431953175282976474345571704127734619203456600680346017280537962126300519293642644783399007548232629923809492053626803050923728745541046677097413530955404846873609991446873471518220240111900382589125118984910505180991871889066866799211668787965996316060201902095173106803060209757118925319618640053338084070768066817479469707172021981755926757379415398559092268702667489072139741556366955918662949892815338885900759779385464039199605637021669306727707735211124021440142459042848332281738715058685494105283464575504951843522352064923885162105594591463685139374147076483163608996933409043013000936753876217837291600133752397927278615971078166887867465360996859527861822371952479352727338546380596596884634668354257591051725755746314252363818383547696124309734697298604705244496261158880151520824641245793993761458477587732726175403828084967295127350151678683374342309850429755438045851583381155670522095221679155133213677704196643459290498367880491145951261088090543003660164260380926937867882298348155827268148260592456489782850083890180541804046825111621511809527065173052131863307553008739305033255326644763853952183219705721234871191159048237020853750501574329659763238421687237185315247187515541921039033978047959255000655695547703551427955676523647083593862333451827406884578962622808268406979267120181008882741264063585302827223252890959831922796046282582796644727559626498362915212040322683378244336665289881461663914327244286738525264548635987717368951179964183867608141471582080042762678251164223777166031887461940779515217889363306188628429036781549699582304442143559767028424286491797766191863228841691824441415990975779383149782192738825198068184003150506704953084745692937827065090232137963252425978390822900755961009593956160330397964596151900950971133368401123706462952098878685768521042680793783482945300696857722335227538528882472449297280243635361112048918472712793307897637153173090929969125662994280797590076314024871768456485707773779461053600068328583241512153284159244106744657007071330630053134995549998089654334236627435205572731008355768608231264048957153917521380237888070589479966371671043477238881264709960849436996431036421738499149896258023362468790303754875674787544408164002511546842925418503710985902376329576432453145524053989272631111464297466928667199571205299917675968155903382093651596406526793941897824043317125059804347139138269379459387766001457434339581634908253462587215875929882131481725968734289240493897112616739054119846158691728966670841685985935017803125993946085927577219484102265201105698475647945902992223314263799340484151915012527733137893454499874193085946035063132980061793830752811422053560200521581421498634711854412427334716341816599893693907612486793822064493521634632561165388362561492634158947061754213381498684886174781469371176922139135917568253162233669438089945942909191507801150414246042463898346290772830546055831355327683849470609786383207167660328982994673368499649452553756024010563781751959801184562008199428796218153662083245282919481483705352153347990472486853152002227237709087224636089814499271059172889664302372195843160788494866709714511138845789795368676874733175237302598547028515402927411233889699942162092682301138521913130960276375119462255919016656112361279109306424270452111394005724468729401266971819753666737805447814459236079871397721759213073330241054788559057969861440025058352214690715191948980313420328836389687276886976492252162702898139071217944618784059569466837621957913378819297485843329703044917506874282412517274950571824448370143330914546062291690927775931469889626677287285872389363106097635149778721572871436326540962946418732329033457063115559672487328598814146792482124010944037941690785941528251146077990835157004841748853856050732045037962352049642595089189663445625061721657442189087411035972644994828276524203661471674818169378574457749181580559043485577314771755921561858148260218134747222375853448866610762489446547773525377510366287980753515744480927446574124341276686414290823226595563356585681014124055192125752849099917892045172633365750451929799445227803269923048792921573672652338234267627328229561862383665621456802723732886849830852153265929099381409275189599858319929490721173204598364301057979119361444254721376557994042040644154425185819517141497217517233975087013508503313584646974860960755809546412988908716816832499576017767568787636926949262681303641686060188328787069729054976968116349018124606760455291480934876337955155046641110216913051229621174480956607019169215520911690871755066505076824372888413642446528740059484052168407845210677910823919149127437907757999595722618059717709897273713034671362616663535661336703508675713180509098987320802200648442277893277153498034598562550342338242126267959395574456990174097143733292325289835569898980361442720966093092339203076973297831508826367270795224885572252231815888113999943837964709957837750192295032496885659950915233072722858278661093979956946367552119538728516674472977371803025139878257734060974672991572695954708496611505509026589882158439115751421866988474319512506441393020757545117160367747015945877997037095642352533854789426935984658012055274672389136510664114602723336417504595263462722594704552967868199387477453955027428860203983833674455601629048925045042195567962194587266622713419009525223493621810180862075252627370721921974718403907749453916127137130087280297590238492434954646333886046877921946126681452312917751128014653166392813808504077474278261849979570638336828312132140431026006596454776240403031858896459784393853253304393774668627187156306557035741185513401188690758813543281080630374898079257489431771554967091758207483368884776615399174299606670081853543780991300835679112378862031461221137183103987628051490279346472627561783875771564883480937913143782766806830042060437659342721818145812318541766083856721075751017138504775834345209698176476756467070921080487359524539460905946903210555204552262990170817591393030106820417044877276123405590582991756576900026968551128660642410679427961919988893439989624664605542587299024246431367823657215543624391580110101298155619848812309747697887189422358419888488675967659417310750670707635645206486948773576004693981305113751962890090877916790065946821363494010497993100518643731417545602994697099197335937992382588202884987516453311410276076067580198216515934320100399894582137107600536288873049263152404026461632132529195141737843353518165540930212282986975835956004161500596404433559637487046330313367660752329571178673672936828770851592643137175094810738463010746351430242490264759646111052684946012185610090948297377421016770971129748863717773804638393109995196878785344785750545542979571535768595048649524451226992744189485990061192122754518572528567192271287719661855777963912522908730918582090779807046599885961735048112334432652703278821256711478588490706781084727637996929650266639047511126098669693900553163391439258026012730228558018121473993246326430733495166524592415202668730286150416539097679987197345764529745602541895678609145530178999110268542721297982684443259925940911628535853268074337950979050706687163796737305342446542575059632483857031135617342279454304080562506552510584784977951388321541141544217356326517709756243348505398024898478408654160056906159882976990151749443321165511217305337860394630930884827309451030553290764149566809074529304333421741093216952113528033224768870504054592110852685990072405968729205564989460151661984741464412020125947080938568956485944252448245847651666523862252818743892257466304058817426209832349771351315926809259594014628322718937260313195331367366473598612705639555321087384068373817036829014095496819422495623487749155733268575851946443561105470241903996798908563807829456550040801910739619348292871273452555358566257148397414722933462110517421088466086282836759929622233976007122879455279755194925326920430681440182449196646774566707364642093263531189641425846924367134577187972707688829414693611869173854280983527528677783253816828436939088806737174689046603548851169005459395744291620600062938947208415360037486335477151486237528473572511280451687219221074854208582454058597227555327606132810264988527350275132602742857147259204325411260816533012631349569988983225495976065249435213985954439233874707481660199004698627779837796443642067330541571587658418287044744084883764761134881269864904932616463304796447648214003032573522749955515019729053100938681346988473715153887285717939231561696234885288566706525369256825872519151801168167048991866682086808495768000233513240770260690172847629849169216784783549339900879828158695090112788794780382394923402954158071545263996451034784242764018652405860969970694166404340665421874987753042947084426538749379042391786971067586050305456228018620753554222994007480802535545914092686259505018741299178798110697807971859166184435743679557758920552830996557785178053086698575642717750348348054191908364194146304573015009296106830889074239095483207820829146894903478843045862100178283204476650855538792554612348244933224467474288089649295182935648109720283829901101536105441772873326893371638535030551120198055674413253047150510821598824475447148628240256185963796065828587427016022181739685056756846737565455653428679306851793871132362506085510474517513427518250060950205649805008368626909245499135453982899221634832103298145074664580957484700837944949302877052621158545562210041020154005548202806807348055116160209471225378586033324198510414261370434283771141349702316033301087838575345151126847786514444668764354205734089477049659239315133917002662160167367720595693120433046544942759925511793975400052901211906848861662330485354369391890772271782324269893486360876894973964742005706988955266138449805151307730294118893854066491562620098304580031910463457262910392379326924588365384353491116086686684263825780321786844780965405275682620041999509999411699758916249090735194918377108501798382709419362331743382082775838618990225576810923575624784457719787545360916605304852304854225095712943919942245327600782048550259474059184854707303250340165423233969290291291279512395615778804623090802129450962256550520205924195920543589759308601897992580006720676572176836396254772458456544234850749429953441439280696281813615313961039213050156722792171174250235392154275899140518319364225627230140484070819943850081919819750544254558849999844811383332389285212597996561589502766781837357711423331816861646784111710879479636649035094782093673526564503571660311634461262812528737421499691494582551538707597281854481625105373025987297813818386215571679536951265885296533402316352784583057243035483798248579521114328485889085947074003370926842186563754654916502036189301748549303660611140767304223269651127799266821897341069825774094783939540734268051300553032360755909887623656338615342295232705190319091283086914841497069005947764857128863941603719206909367500482766162112223113202324160003602755240340233648535823536328926715401073700728239389961820667845919675797520409633818545945447342578568138970721882300091776436405246138594796421153976437024559314427410826895929700821663647288206570799101806904890339401152471595119375609668528182321317450121397913857596165585246432591257015895579958996799868504475182036159084920646061124787467457963071591969443680403695800066318175185517759698475300103467192109496060501444343631866074076066147511581473098738138177719012238998251081712538972618362546162919792551899146720364152376276214224900119298384978731083136275188373494023403735358461215917434891811109415101649395819799873193099122824669735640527784520140385988412173693584557970044674325294496309920036453268732412616289062444164410698944885204087349832122001680802851255050255494182019319902043178196567664695932202687065327407929828898415125541347172579438536149230736905474354015487356371727780228202355896455234726060378845051635062752585942574936187539862143225350923740737697713843844365150008268866545607636523524254408662811037692880075382017404504743697625451144472172109960327006537562169869827078162552705551240835642548527807896747868391143596527107491281498878490683438110825551916177574185080911467917860393261482187856540385224188428866067592139133267348342989306061922690940279248308970755815107297175628075622762161312019754395459548600950281124490203779431366071067236457650228266459056874444228932803291367365014112839706186010716372062028790818804834754250324777744511766751802427329074341211455053993927519449480047023187061448900541735859278401465490723475019222154041038065785662158874523404893423954392956127229684990293037026441471372674268847516234778492278411597876465613879013952729503979007250775035524784269248420191232487366724553029937822221806942885531456208673047727239112679250405696209523462698722372648978218396024248405887612595254991788835810095909873237881258816790184896794121239830080018135435348754237237072332057842138333238601040265513972310535325575229498117140725465738124461953409005186199381427581224292100787965802415153317043780408238333753009190882085364238672010310752071695410477138579630877439778109966233079837677475261246157715086738140204885718822295305576298538068530396690596975155533086938281206345721675071673945065648623053536981556081418533188198357802487158487550628060721661906821350636851123047822378579787226363796894318475737253282512016559894471691988715093370746435407411327281795773927669448758403574400768297016718431830627653763497294053012706233982867843164251529238083962330861103167702107954088373968576249172721362765099224199341868294673795035821498460654986537978664958361418852806831560933384049117667890648068513637235182402100790856860122199249351252182122867585804243132516164471458910080842949973448128019420674150426097322143088507973586087501532087080043354738435641777638513527000769716554964216825356055996642455464180663252170755502542040993755327598475333899231658027702349611430527974635050365555938746612449417151740468098565408989015240824777242524122167006042362939799117886360582483355890471689941194582070659249352063492011149766891802575743717808845825044152856316298658848469181960371124641503212154155289619337632328145961690495819128144142591335342130463639588175692173630789287803052714804314905133541166730454060472043241023742838087884616451911760364591560774071308154969400739688427245926296978294179229855920937988482390103028320768383424373162573331170613088463446493877728679761503122593073835310891406370107627591788953997816593640712172648005133323094768402694967175433222214741080472886716583553126513625094594013844252898846006545321236380935488858613017089725472370872592878636684695056955537397723122026522595238367319772551697416433411055874894239109364179695057395359622080437591975181989473003980265480122587705259852580383205455686942376700879184175971739666431454169518050874898849731023906769830014805594999015864928137480496040227103849759798282660220267692830241259306611241641728908931409517506668737840295140293759107583830436581864957434987400641840712202950862520777057668573652898055269579786307615171538224868834331725558223106571785068360243571770532855074239387066487218550912234331751280579477479437659296701872788622670003281483479201287354499007465116590234721404068063152804992338720768498869496673570605067125299865857415568567453838621728766309267580502514310227272554337372919095425042188725665889985468301655366378138846256431371789410195858877900357676100043126373818935622086612477930149541023491760038919469994489311051269003867596533710082396043770675856127710098075310740283224946986806287651710086197924899660903319961072082777951995827020647304027666824863820172099945540719954598325779360899354178988879948194442025314440053052038155102092288528024173121704864613308740196876828704230809261985049885859018527052119263856597193193821861522381912380302483927564138851552643721981508336754733841038886858163766358809076933976609831271602677621064181731147655203556499958037138570881690440640830046205503762775009839520496896029606864135998517953263019303365028895118003039740196702960066344326251344746326847245830210821148327110808100913019578948179500524271581890015287689488451759922462403347601902662365735588139366884766402385569677200651698858406730594215928153692491077527062739760709611240513525056562214448918281573629427256060010003418896633371121313842570062726378044361224617068451454276236143273531485390701007406359893329898899718617491464733965623686295649409184035754581431114107223436715046934225191719942740187314683807942211981925030321674854952981653774012244546174950812893875581630562815262465026717312848409277875490787008017724292600281241192043009855844763310335890176282725690850062633088034007346812052167470663498052233900541583105268978433832330543847242333101884395067973972322538749332717870494477033595566123417818281423765968930455779880442971129410693972619986132903211951100679818362842687477746447720115294718858969263477251798832220381309226929819355375467884926673763811793038366241754176595906248661540239959750015265255060692313840711594353940294992600487709285216655849998914650399478873535251499703283946187688553273362062422151703786340289535715765419043301752522870250606481359438580933275607342699550837734058094395822648088152599283782235602368748955473234609616073590017211399165903519281496336792232612911869696963710967598635173166545158173111925952677926094439829782015931515946964687795646278239118700874568383791678303793349559353070763221452549358736796444286425070748477438186874698390212392914941444822747146560361735199815592945061143978883068023465826848629143560613584896464101848012602743098048816253847837363126760065279321966594122283973414050092947301432521749323262203695740298633401938366723889967954207005984344283044841950009267433735681664431762107578179254473512133169327885066264493371579464450021782579890527196440079338891102924039274773396654634099485688869791434932197024483402502511792884911875591692069816657208781631664353671114026089368898826776102520596844609896887189963844659092270017302684290334967678517693342492608251205841110517984715062284082941424571129214753401971983435832019524961282339311281124930734383713213371000183422882104185091900795750454398422199097291746801969028093370647695123882032053983608014319014327326497470377954088618268756511592692356188174929518646789703260503388772068244296852803259331503915733936143241694949376712827973172026995829987507182075716231521101577548804947865131639652863045612126005636334305271733447317387064424711180808348036549657589728801754838671014653935851512295289583294570703600027859599644523017108705388020715365974758236621508220621872089741781222633727803281179109907474648147909820130797752882521329564069792164995053576428886659690739540811638369066979619522911291808343181796611328523424513799632003312342775253267874668433887761204328271317241168743436578364296921773225771633871997862312577740232452363201980578083940080332171475018277377902673830235260156061190173299870914485789131049742805474544551480595544830802116521756537756805899148719757256442719293769187888417055048330381551232989229884999420204342545430239357948672362970948055480452231420170044507577673916638914833469911732549279842034965712682586074976458728414872762872814581411017383897202713659893089472419383029861525676857599201993619315080389860608162519416714784595519594537663976770108260945746652491313481497101691684611647702517821973786823859583270424228539457547517507646204158008167841961019329839195141223339465097575953863440936658663882856381785769506858052971415880597905748053795513083913393017869697338282335645199224208493728027364008128589624942694647673015909674613260421677899607516781069883429839211682138912170903124011212228574584622725583007551671940977942500425880005963161577860337661666280721004485014128102996048583464496749514246085195291867967420101645174592668691055331228931133834531928656611353135064481615387217009882922903957217803651105698986657859894103430397331340610098628232943064184467351266361458235448327456515597125630762428876150051488746507955709552607477222176801438448385521911557776335050612061895210058539438669373110210401968997506226552964677107819720497153571863060632592689496119427138077777019139323446823706428772747048749913118225360424257801549373190224631296630773141065919332287936160007957493670663803149385532564456806903708994607024734648006610059767096083398352883161558856411935465901599450204494493539749302391945837190455802395788786142211261125378429038851662136251689655760824381340355318825114006543198887195017374673861987476229188543260400067425605098940773790500191781975788137157951252323032828153261446158754970423003139538499187791574461106867863753316438342814263086244359176705214428596640691012781566648219276507700677238052689375937629232880683513327624390741434990076378643044300659091538299925528442156155466015903898784242344650875274061385656885009679586474860194753530685219895095793771675688113365086735315757866343456406804491518002647898594704090921689149994271166093400733254789659767015806209534220572024384890374869481390146222093864779741111238850103706281758220677374555143943575835137867778779432994598219819619148229211188503196578541403501945228016964221735016396071985137189772034306907270632549575120662028313648238117117757293649256641577053937608518215244188897087384503474742718942317502447709838625251062874098019492691991428074055189115123776022980758472824278994614966952522174213685282807429720002311034059062708944188952336940492056594651826663250410302150732189866358142149039528067078378003018051347372084260545653006870215656234688465278248593970006401848580712067129520731067481832581284684424735796868400030572275914378020649956323587160813370002882734545001015733055060482899622490508374494523576569744639638491430967597404506229304326348793973632584334617544082482661809384457086019707165773368144028974659944802675331765051111560658784046374139530211664004679877042672215956075615431177383274118749927305357099423055403686776605994844141198144901282217806298423196991631951686004839293976474838867145718197821172507818183080041375302318245897506604679534641569731022649075654186687052591539643332393825044935426698090270062298483617497820796748148997065730415384051744943095240583196673180231465071056135135624324171692421724576953078226230204897988357437866193606150938652413235455244250835098837342872979148345838058061267858807132829990630826733130040226676585454816840589105960232176194031751384437987151793455561560459615828728779118764822040744577071206614795795335509929859163183851879182787386778963060389227992413129932405899112424837198277326232154937194537458610844955360387291346847554936078118557614918308274327093970950617545406474918324822043692053410510429178534091250935658187965528819663746513447486625218670496492101783003831414593285361155995773270516135310589398502119044925851955630162687776209168284913532661691999216180793473924040649678786096684167477905660620522403099651317482839789895776533703283552305232734178239203758098706871057930658484796469435628279370996312140964434296578887161039619037303815054586198268267368171269472613450350311002174842318411793168192002832461127673647393026440513085006166069930476245929242840364491838744866324350968665720652939977191253095946682075677278651879959315045345011457402219209002357345482663453961279304054540278874922562940577472296956040277736432210217266075387192343434685674564744006642505835463230786748923130609323534721950990201061101762391919615352850220241161827620550511808798497492523951746978057225021168067903414194958012372966186793275000541812406507838779905092073480936689482064035557452633323120707175393697794748906604469959663990294897314432330387821524165523549209609278937291386272558359943372724355703344859246392448195751898836467417753805414951276197161289957034342592022917926582615694362759341743998093999790862012183024038006417226812872701148082123169177785801974178855195599345351281069486977781813674095570301956549766613406318047331644733605789213420534334863929575851947519025603237858153905242874605290432718775696999915985241120943327838601350787656635422299796410505088344756528398933643457408539875263172192468362350392478228301397755713904625670068667549374973809221136298239015507450028319533173273150647930309377378699110245180327523015575525729373966516121677396453429356367973298440802785661128973969797768849250075656248786352039933943021765511819486847116041548771854785106795950685066210676129706648468494131988862276356731648693409995762319097671426585707184497821004766717832712610211449728752300933550084453850146104370042988797297713718228020749422787278445867361749242579496434218527075296262039393299362012748365386232303359245189950547580884420014042280222772545817780281180621857024753021185726849109651835861340693355469700000430428112979417854046262750620160052483957971316813124142846416104985728132129796098069208672181903000649107904836790366360982021104526194711832291589201395686601595428987275140962403695999323700326770803995373277594710417115246966243273912646453678775064532119850357728433237760326905502993780962299830813894660066561117674076342500941762187276938206955855450309608526919302667846529781911720144630040775303200675862527348499587936298479751835319696673155539184641002113757188356635133070640202563825085823627029268366407760524411741913576446718230562649290622846342541718839485227400863534875075934327839071450369125583881932982181038626843636002811495032504037658545188626732730505148457719376046669089830567182170812310756671206547672039024301498747116227352133758681494839715690093618349016911162086947350164879970910401169763871678582342252079523844947373384524868434217810975237143908513388711868577563078689692922809585759579499553945504683217475486696952741279641496850326093762324947189246138798850395209022760791185694874140737477591092135005790901458298861214789605462908416462325948125620345212678496442420558376419135985398602146950534561298195147895038083618081055989153756367452732502581173718031382937096318777189448820201967205563787476188245613641100046949555947952644491836367792854978575916109355133653212845388247120525954860218451088407156899744172126523072064744580860265517614657890640509072481017425942438770777152909377467177111528886695661170812872280690761266241961671642122468140183673459018309072302276554468462927799024919598886510207685051150639919192415902900652874800766105566940057917618712214167864972892301782686388569276699911151522249475301830622080624565423966481969015794431608439216427876017559097047670205092018053027969334624843731257181086396481766270474149977061683161063627362923770012452866675806527320936446426698890006405301089888419823255173330988189347105691857866299080750411492042788078760985880909621159593615772857647205501984610976323907258788080918323729405196069159716361226454641293080342218080797602043534659375022137925162949916816742010771044715959172294705412345315521716437616360324728617033485660489900456002520643953710003831371336946361963371140382262684238507121564475323584975882900187382778756579689985816573044157809339900496219829354760216948214158085153927471194423830207108692522780173559178197830068728513755189649631740380885862475869787136166658605049237571734774000868816581995367727051749074286394611769940725692550109570403803040805674757329481585664823412628465295827887209375011432641310788207955164330195850058422545228694813600611464936739870563825828826191198924979992787951103072080441518758961932867743663484589804324881741320999333199708484157599595721480074656216702863083907388373220899565822280513474691401913287372411585108025618201736087900146250526564780401755055157771494127874303497810130502032190185731787303979835482626524454710466809605585603858231216056094795509224463596617538036774153708248177975401484193894961034363094262911109574647877534369368622985687255969107797758169675711106128487048034727044546924894069289518467718131350244245513559514535319946892757699482374017365049122766604452879677922463061567063588848600997038183316054864951745840344544410178260259807263923237420819553522495253732592312402931581320524192086808546981220457607987965727770120228768538167517243193020001014243985418809289149196563697983933796458706337998891328398319695346755482072200367506553110097821830099541241323375324761840071750219510549995346237539411295060426907130823108816752716730128366362447236412693075928370058795952800796294078748318293256317647106869996741614247195089594416269066981724085578869952841651087001645837556074889039728669143519954867407915178324667796596463978462549898045120390819853155912296633920198751917870451308660786107684322132035837017422309662226065108177620109329765796974950044907960254566540347838644181618846728883126016384277960477524211051009684963504235614560484968046017919777060148148161510734219640339198728550614928454837992462870312968608328730507962335753677528871514346374644188591425832668198449512568428514235727549622217979567995501417542693532954746124771419142056975759454181841768227563599827159244566818349392489986641769028776777231586166490643983224428982095828636582356359815186204203487570313341851646091098674046006770568015390819910676002155092424290031362833298158639727744194397355095524155431277412843963074579170354297866250802521194237886557506550110019537220713729505791555019127015664380705765291411917146641207273899137529262361989952993353557730183098847894273276982200199911646062540942711267656674326894227189231941335754295416604905426807098630230500924246334754806350320120518028714973311169954337615362361736836667582399434475567237285572630768856869094104795071887954423959976254049268704292954063196506161492032064602963124522024659324013940427725823697493697505045383212930805234414856061862107028961160999040917647393605210305938886734801114327949480246309579474361599138012779627755769726392894332314144608869968401620656788312892845078028111626034713267943626298018711210512743569972479137478595053656673547557118627287118999044611439244144998414684702408366652732334214182313976276612808580717335349010724080631824740863114008051054577844045086328535302824134033670016749023263968127008025075590110462785463605508585220297187508568214457866584942140330526809140963206710473405675720335423143284650662407691731413409402035620739595501431797632611120169100932301561066791591743427979858485762643484265641429223771269702327080064026119534728600038744127758214859885046502720854572823441260171273256438604459816391114281627520664913332580700247277595000793976203691761048378727910784990417829648713720119389041693565618209626272099609708196679087058661391547008963460891729404039999558763915381942145257438377538276998961198318117226147331293693027676743466364349983049308783825400280694145952997720968993862473228526999409010657436167401087577907954900066563970919066577346980016302062169613585291144548007730621000307718695431969528333537422597379967162430389591565710616356306990720974885952568750906714485940660406259747518347190525495721231412965401891373899872273267132071032988345162405637857871317030841450917526237651596905497318234381783951344816628646595081796687447869599645235429201910181900524162508576047666944945521313439654458152811540158887846659498403433977796413151923123375774374192429025049057024541334882485751630042734715275331021013761878222521228883617681315464368797802256524029274031474264700005476429153132612811457347756248865920692618205674595860252619611401817784592660203346095221090504870412146587338383945019545903071281269260543887254421236579537481575920772022200946479311925755945692187558408015278611369893730920762929835902239112921489802158068336419392632623349298478805366547777493181760436777312768110378680312905239730583290386713773394939644716483140745933766564621525768299063651142540473617451686957835927422219347680705843290348451304962185712832763136561312618105579900795155845813046376291459068887123785724879261741259507368923010637629500984650794057444118709185574073170567174816681431710182552719041300614099018086657929583638729882360017396873928736112950393430444097366584833519624152879464049739022255572786468963516419735998399535815501538974065402882373057504727279176681518093522771538025202167629890489385228435574285913080285708693892082504180329246283722426130941412131239600004055884066813242783878102210490841363842017571948096957765490218817985156998026673072597736820339076988588520261291320919333224550121268058372369722543590765445436245995148787103300333213652032056301027855293685080211555924367840299816686852905636490803519941061646862093632865118261175385062145652626882714248604592295559284927161122556349997603302218896406074290159923110036019995611125797613506229154866769107480814055367594804797055268585410851585457098076707629532010503686734506370392695529498171196041899557500320839250607220794799727842399455859215817654499081150113151818037241574170292638727701957851159653881364055842607572845972940125371152482916226405292819110902658366196761609936993313517364216407332501566911701670708105115672390233328651781843449646655191580899035323770664170174238941512785594941610541294216686947400585473580264514346302002002148486668164696890581398779558051794202240870293016818347769940784488920954597270565257130820152253032008613449615532212990968856777806244056591993920871693296238215066640006277603465090530940007029552014370499522337645812243386503303245279820829379370518087706990088849807767988549053493136464340273224544501395374248272363453593322550896152906641960376640483002481235759606093920864906866670230688627922734539743577175944398384220397383141502696590171837720693285802194372932445506129494691079046242423692517489186338227658073766618936129966825546453779749898761094601359157226378564296370233243000708618320612190884532914866393579206503103503386995533040944386540629973605800284886363571288778298570131452257226587732908372078957892957671918294719512180639471778934447858812277479877661569914415330556116892158926642395311032493767467899654107706500801434133406760409277054586353115540789452227866749767256238902191848924719844658796845230816352036074002510672333779759657298230727282984522426239663617739001101389700726787979210981113202323993978049273012008917595908776593697542652552635013145856003639209046508870748566133065887427131030115506988061140835653607542887336629483975219106197810083806277807713649417125824818200435872484537154105940865579066625745854211471081611285457414356837503259081361585845658359622022732052806192947599464008539757459981397599345245132252398057625911519157638451540311897684316975391613444152389984350299516299883966434089095419721441072653899114415480402350317782218959171544720358985926062018065622828215888721976777103866704194804254248138835058996108488911905235275794637227676666756357855199597805832421580369937742276229777061162890997309465350839525762571258926801894444825316643899901877494891707593285923686175822688284462986213629574371453722172233832529816177905284353370983358399718624167425107549134135120587043289295258340890016022525518504532451887867932049412254932537762960336156218524995679501594447716569688927420107161886152492041645388050486333649763997258625874637102927363878957934253164187942935847434052959778466646956143654227530265700246028649783845535708494356205958282550708950487408575777116805912837903421533609290759165505875606808301880007581834054205264118527272383709613657276478924679892271145536313511554089287302958827056520551807743215591551557249751312958499108588634122764759026236124165575149911170131296246214794124031989292123264041857290753881875708422281506607216120607474145096955687976821291121530237183403941740308778101389177868238811702234944143572596145414140834837076795427574226912968330028592215990064337180369865727911762952061644449618110026518042443637593597346426501198451639227450150790033708593518580479245150261487259306011667971428951099192183678985004427640009771442021120604972851265442523040679513356806821658737905859149504748755203078393241934254558317901866497191691705582222631237033471691074231636775000790164308624912601212423079740648700928429433584086074977816430606315017588964681620311008170647964125100682096955221181754260302261232626192802964802737480936797490508414747279723586238115745967144158018357261404217655023469155372853590367384139739578480233775667618252673840595576325548871425785691751969514984857653524924714888231798591146181192185363091982182316216970105150848515872400993733577421615265047073709773230080846951727523070902835293392039092787833820044001980532061855823044088436874064666884001341457673822959003317493919937957834202195544786094428787593681434038284462143788468476621685909612274241157898818883635026708341150562906042779332589223658085884062894776498105059283455047905125361287565886308312348877364231066871357744773861340134072299424096301160143850422684573425960250317373402305236451902126960703823233699637575341630438801682253739665975270569093680444668136169931995620325104146303569867691177722352673879677439059701577442008551043789206600643762318462634206998005347526501644280212808858129846406811575160115958702001972302414734849871505503547320194174116093179385960581023464484087191632018978736447603029515257276952163820512474459245476327453767069141363488610409853418573379853221111597133020338603593845471951149032737602322282984368978600096177369816260939919297403398030761772752447591622227244413975993523052559847551020472434534755089847941437397795918768070305880677606492488814032246989134757787099231059349048330704021246038451615452404324412333626450060453844654863645561658354617490424242503416177229400183582029607041874418432162207911768812822620411967410048049579865832785959117999954284375785578722779097386837419946779172504244830255440279951753638406156597646484769034545945538996907054604849643957786970047122874640772402032355458011369384793949677712101765112231618002553309671935567685534001176008313787568265976657229208039818285512136077141497886998892695763904524188836606520745149077894652662937010976911530866505772457421342139932371305267060355908393221733833310589970916016518201443949143336426386030010258292680462747602195371585463853515815476003266143540356994766049688847276652483913039969952884352799130835823073299058855162397381591078535688598894756008383626894399082662678132760175121074786185148069889614457398447002167229800893280121132610714326088157679594314221656742430473117408994730840023333967685264628690934189747141764698878618501817869157799779250121723802977278857733764462494413411379140660952722521563923158001042518804463839179462197556537369850405417284851180317025042419180204271161552951322632722584797704085920957371849640182866498691034507052296591689155198974842095386317546451792287806028218205466303024944529522146935372241253133216154431939775933384088415071064782395188494557547019838565060093979131201391939037947226315184462647364562032477152230207923439703074899737449639312055134245837211297430941195216798130836973138433512122856015216572391212630771427287360969722349423745455609314319354448181577708792613257108256197730640093403243854745983074367569863915637405889430877537907083241253378557231626932275876191135345034391581418848134039008571473653738979584600484406490020222667729264161106565082098494423168702167444267622365618002045096606988121863019307896018671252182842202082911592986351309528607046371168774199487933653665769011429165284003335849871752968996250118487830292510547122126791683406309195420886260538364603587634173398040068816003761372081151649402360477749218037183674359222429948405153986528513977235490236250532718531289159011665251510127840734207604241952866357598622348981563088974978559402559975827133747393706787811030659790489142217963117219224658301328519246462803734909587392936263872781431551034152260908761251693525920436278577261615033080071206196514586016140595230845735219263593137480839897370116053711721170567045710900965628845178541045965062776342646447993353464892216490006549398466946381011420873856244278024503394301061180758900253888089019497806910238002290576111076355267292584633207722464761582270560358719996564983961454849044994292834893470983134797545333960353083207484246972060419352477378696819539463723463482645479223230215020454429866503579713137126808301829076045939153733939970368711413731787362420980545207664900199373103805329114394266804211882139381907559131022897501757546079919567472486764182103035950719897926795209036064498670537739201487191400087007715067113418035335791836561157192148592597925848738467395410621140825840958829284455490748314203471217923117749345943126772432995239571320239810657236864145667677352346550292799814178811230608881311604251694891584455924905840580081833603044666777023539540317488732742112660208124472713335583021463289416593323327960822292500620025701270953599645783125448264445601366304962192120441586303666759642841239958379674441169359875083925717238017249757244605170284163853276190097591300082906422974808404924539691548474303445111009035288181070653400472562136138697792205617987962955693133951576346082940672878100303501913791371590659093988903552099920393731927231967352288993858496556974559744807831259352051965491384107561836194931461750609511635407277621952461078429478795217298334937448349425912980888239070504285986545653631978239296856408943047755924213095413113796888141541522069407091934590903980209622984836449618873993858027016953282783183618162863291344990262798054100755632734042954231125492362741459171059652105702440917571407591901960344370661882242052465273280293471239865963236955082241791310712201038727622306509494838535129214752149209200968891999338875573818307761867742678008823742397746010614849400328949207080445928030307635224856597758426900964097337412488086537339624119191935198544020838894167282057118438059922501711676379867066750593106738244964896395073318405811648869228488582266828928683588013724340680415155638053636506737777311890084530984985897705057218283062893078194664041222908008903467316506442879391459613623116152919109200081496629259124131964025990120290114849261511528661451625662430752284071212399611707665818681327542153652322445299004099724606944405216198026837200083338498788347891902998384725049415431598519239615548547256252315981773798672923131416157705467252193230673092094333566829722874491441597620214741617670058881894762189319111831075726789235630672177223672371988667217734593823470440748780629644766950789784665002367417502976696753318249495046689147722340226176342949760275024255901143228735585665546637335646744229505811273328560327457425623270285347933809219364071755537612225584649022666654579908776040701653433410020648940002314417349559481407953687210248007059055733683514558202997686041436236210662248825350912071010230371274275015478201518741153120216717423507098817149720515382786653077749599383242630636197875547190704588182125651929582480915826133017967274772177891677653912603388102630582737187017759252961455101488164161423755391821474349212319638329442279093384201635083984357270554964957456088916664614441312197974083045060258679887798683509919688201530140695542299862978464405432227077666103753360113820045374528941000816125011678635218724596407292396505417618211785583173786388212001487705601801015280210265602447788354263780669752375639200091705537599014776303507249481145080842523996375393887301857946187767565661384851519382902438131553261023430451564034132519473898169092613076460656864760500360965092576207867889444070474490373316341147347848559959553166738909120356032293504657436939259537914824039987706874766712118850273654867336022101562952376045661879926794497908541543017511134671193916110050272420744542398197753662145760360700933913198382933395739328172585939281745528941071561121250509535141830338012663554618641657833367037521569610512639837728780914488684352558644376658029088452285163730344886491697947893663248429206493662902561721383949078558955958613082570212699323760799585521507070686685874281933113619646366608968301017181070741423385478905641691837343998885805735432609420409540435187720449606282116844916633838958210070397092090891277280084732491484468542863925836611436678489363414369587850086527076251689077601522492427918560926678766420743104815645007770549576415132872987841809535472284834723751726707532115394406317710391105314836836600148787213403314381645150284477005097095577500453451197422125981861842634968205329753051497813188868464135230754276333279077944792244005897194985695102490950761393987966068621255836245480280516080177151337224318968818377795386114817916302463492582050608148675307605890813640179168921230737953481707186945129131701598993616118496650167781447499481982320036538085392303135750760342848856739665355958286595886531546386303899505897606369887214145250432263230360257182577213946112387941699117841251332627842564634792142182489934663091732144667958748304093621742178885768097081946657703786423246458096286636667218771673710059128518177872572196816956784956619454701284358106555709621571200157998779138851475705658494226549810627705556435643925355250857674155558448525178734172494159269013956314243942041114816086609737733336973783565178130985436030747147426874001230866696212316538023760986638694960830714381400425144439419861598179688535794227785534168786990907291081189608135583843522776768976097719802435128781156402454928495316026877325438677301041664987603155001079933065292041099035268029782812426799340974573274868085947266352902508009443587048870212250686406724532975813635490836735964566429741325383895241194851035987108691929975588650861460513819882544335587533860018310561761493786094245641742951647527430824648039168195665747490572750106754676837086836938533131055058955844149702591804774120995968043849467532172928004248565380331915070363695295720174100274260630232967912446437128781331177269589714756272572230215748372584705077189649159755569998838139948025110492460267694263981965196854092112164770005698027129717446394239344029318589052949265196302127599280195601886326187065853435174184924374576591524638160786242764378675959214241767018929067040478756263977812278658572478767971670991922703352860893642071494194796150575487375211792742985048617874357750140391735546381974188773898260660321906344422678962424015930308313361414159722672833389545127769947766620568812969732734651918500019441673403495965863264773614732976475390510786769880084146016548266181359653064443664593354916071008186032916047176014310950326467275690317001280009244777945323386206781435190940568407891098765192000596723510839557189024879803328530459333717972238627890669406581039361156509525235034877344682387961012468258406656955437430824197719613144562839597968490148592669526746844998055165852447560404185408133857164667883090847692110372650281412772746349337790626735986084237970445466510796620002897514750144711976394334419682571123009926050246620902048216075741396497816108056297924817385645257380788677241270956468549477161649250959497782332421461502939458066066226915849990768493656603570813088272187194871003108242808358987549641680302830464725091004855230747333503633052097589336483523655882619954183815475318107826034705445849622966229295530875294194004508987508612398400038997225482049305616170995602934405372967999800152382807722838551635795679814637157705076732161356817274214992984927275357702002570704890076085988357786729250603173231057661125182599750619132778191008454316081497477973232018121000518923946723371002405792839231049534797020151344416616044661238871488406313256581574249300299806345461192548703495918031112045339639783908379735016228788530404609251281409350298760407665617736636346463582308770605571331968060058829510627568488733878561960434029655863409508526282203083094439014725926237627810629811767841168089838789652529460746451959485830780682923240805897879006795910731440763938998338474910146097377354335824677713056319787236496024774456457503262983750445312342090517747806270662811484633353479987676590444869778553996031590932093491357413219480984501095500275395433145002771097927349604694325845419979727399825861914729929739822974344830685411136923284766741923445177507167711187715721872358718945749985827867382417429544107934867094303210316187072819232637856117679681056748911862750618608194719275354994265738552980857262571187276601004571265221295112417258737185487489044339994172920080122525852884055998255938097858144350213854128586478803096357088106692765475031704464865885259092704800490668840250413336340142304051610954828560520707622864675023672984971765590707938028655634888687689420390004034019981314591591494258607798142501222523146786584367973118721012596711597166634577688863131151355068845631701796737468946137178775289491893559936701705328656516198526035519200990600227575346548298911028608301237219654933557976934224698500914809573204647198699464479420406546212956729619235519202987348194858894241005320129694987571781339734250515165801200658860408812050213496768749484524035560654473793968430205870171305503905412691759144383753509090097694573399426518824277979731829300441503526798245637949015881492782014495572925604315601356423152145524192081641861169485301242005125260749412290914990065633988913607479295564430058224701104281029481274808539136002860682999397291403467003334364511436984772776582912364111357757881339944075639958273213411231643848717964353991202977363993519988785714541463699891952911029563293313094478213038789065692441523420475894286542324482836080875078515703123602337934788355145985316797227286181150639213620071575327686757413693640785150523801781031353423149412701234247929134446640232336878303766682084943957714198647095717178968593492180106244494317715603831843858460799276995902319841889636363224880372182574672723814106744593972690157751963597777067121351996684066426267183200944594186689141133889714051444277775483996474726991947930493002197888844043575619560602386230350886758375317571865074606217640810015506280503363098322034264557984475317291697019138939573058888578545733766428223503214999887810645751648591511854546094145581272097938944218105942612630066233510133598669979832034886605475187167227350703320117733646776890333566857062459120633183964973777736474203136829630866444007342190627689266179033676613713579174290236044116442569885696399957687698394881365078690368221282735279407537931836438606171022521807994475345527238682016014931711299461064494070375158157227398587044300557180825776286280513626646586099643280245814665360459256011255854831161487406932954534449834931246740316311943874419879979834027446082456363566434803972229481500827180258692481621982419037771298582804830463894798336004227096259354705759179005687807806914884399395203967900847805927429685702771139017902341953703663868076850275766917504309331093279506525298992515410459151379069357777396206201348921774444173111122878769996568453345924565559886158246404872051532903612164384217660102303154386909361755577880870463110358958456561273027175802537913351131106611994479155416886495327987804131381293649972832889663800816274391759525154519408343333366796309604328379414804922709667372726671742882759221334511703402366805055566527931357811313902042828896372593396618777019739181013678600739281102541843058869378598140904827533139316494111457124882811548972882261189044457489844863242950398977956705953972910628902997210408066337709389490793507437647389192914240113396318514743046535473978189531895892476238153514052039010851391193449222566549811065684615426587401522695120151501917812267934116763919690881529095101953266380355661144951850331317275508674917507425479855073140710039459585416224789236975674891156359193222834258182524312131354544263888483898216800667878650453692302322476409611797986575936119440347168716732989477077573942103633657964550218276177026932164115090738780439257918659145934506269982520884681488155074339378947521660097147754871332678343159415303239985793354845605855458217306523750382704476594332020818402118457846757781377292410935804347273746650208355566406964689395598071989594923948327391348984213746598151180638854354763478747097163810396087737480301459662045081870663457631958268547801348069056468722099396665622601712776832131636865405084840197841190720276211115772713771130107250809522773599575768190531138611253734215578676232607551827399126894315713467856432006266217955773856016204597970819527163064885922454153688984578199903017002341889491011721023934370404849331498452097992832476020309873273021662968501888359323427129587216310079043549221342984246124902722532781467821654246931899453246799295819342819584168375935099701511977069618219406486262583143254027051067579663728003275304721210556070939919764133433758881977334466985661976826360746912825349592380125586527224313873765384161654210910204485052455363047845509723444851740496745486087230761377168594105427146409330070101125668109518896351655151703465749385225254943840866133377160758676006076464882725498883573942012118786039744665991704864635412276697777380787539159507068342428535206900003187407679390127373171378926765976925114163991238258389693326079629657531879568338238542442932043622940091106124446400913729287399820186371684608421997218916035087418976570321867992314033876734723650820719405341007777637570850975274310466798604860257110690534661856940251858148406411368553442666543442562120285429001413560861347162819560000966661630843929146498428740566782910081953474073787143175012349468415505076172354368279776267364914795195919360514980561923234519659866762526768918895480556283969408706335486261184945833832473075542570141234952803267042700403157245492623776793854047263047843239982378653019169483756487579136436340647223773811765073020288501302003106963520610804474942017755403767638952756053461002620310116781853956306700580447556766558357180124493269766711560546209730467377331010925854398907596622433353881942972902441381164859131361842144151797159892169211665906011563345346353716063594886603946483861234773074593334952279199273897330321387989484154506978307185428811631884032356070189582430423736232606405100526762528473126686482126605231217121319145989519853633471786363222103754095074279228615158031939838852693496403342909101618075719634735275415004286168452934019392084174195299745915823698616457526629365001731602908162473550856641368863757491413125655885515617983504285187685529190749736452737570371224692502613502486280779273970086270331352958411351146062013378167335097745900656029333167067488263128294200698819508123696080834010129997835785819953862306941735969191504086956372085211936367241931001630774577497115681661126273846616340847529026660852854508567790638847255011576145629402176625799112833530512277904295009747368028492842837633289036343725472966142515381806129955343093433142546445658094883581044727298982295233293128685964051782151181888746013224275529596146624882245579363783985358741398136549659559908962474975913570282042890706652983167896223162566065241842351077175067710868420419266957587392537985331813647531784350345269103259463614770449012934986042426296130910498695703495030497464900291182454071934541511251307507008439853839388168489233559237648052670170746711769433676037228576528674811351148866508113769114551481197679041098716563771886639387695678926619794776944527677028221202127405514009178978296729556243449540350509348324978729364443875785180677522208901935745935883199540146862353996925908606040290236747530741798327920799464278786573671878524121425780753309507840791172824410095505820600080256733730067957232756620716843850106831079962814690320192258108419521342664072752868577484168792922984047206787707332483021893136248247326926474832443296775205708753151849329797152179657645620967095190610533028915625508366789391433078395796522094767320982079015164722493322189732269311002480411792828456944677614738103410936456463302002705537103680486253237315964849929913059319848019632896450759529877177521304405656795351079224071642303976996497326145246407154027071058894671153719652717883869463082998189026362103228156317459840654228380135950544357847726073978724473534424846414753128840874632367100947479366956692296502169245347254015227294666392357999441834177149228071517727837981822141346702621948343844012345686553316797407551958002178109260922578527300757166958378765937803604992653601402208928199056370706783489154365076986213714397205139957899470571757997580270623488659509922201121852866491048322098256786514406391371547224759743491326097097020679697708432375148965387170376087636073541517349541799097992303813317222881524972080635282040127454610442082571331343482998272731014060915792405189979735793099500716981872765629050571661536979080661401174751348242583485575765854515703178781803774716953795674498597826469250445658315506504568375005386620576385624002283876707362028648566099965429490114928982617663628078982349093699026105918905271568312426347999389817231237645270170356891460131285076753499051562004765540185050832194955989455772879675586943734610790253080453238450691791381887905432512332545923473614730929227791165007894325812491578786109609063222834854881372399470311605953682741040997933284969318714555231849030219722865766881229640195583634250298053474825826496023943103645841895566708918925058445884411955560825737951465676700112386045614651206058906294476863695716280093238340657475364726090129856258342181759437149589629409970656507565452467011747935446703862172172378990383022506329902833569200587430341193461177296989021065308677694868281607278450070353717783639036133584268814946707630978301091121783795364996770849317113905285890260011718050140872608472883358351518933197598319247400464880280083212329645238054694128413332890515471213440146637186344501132224351105650028187545101827113507296493944482978233680596208555011129654198716639356768676959872155564201008311363589459277943022610510964820275381175193568738772321934844857886041053962436673020782453807744422994418256074559776702391296309587941051778763236662487472854152767809912955362243032737468187251677709726699605795894119579345321336168179522034986711941607327195522676271505801501306750192654290026874353934449279419107382092116683710349987869905601018629038411932094196758587004389949886145932605230582996373356154101887296938277272068925910640783521273118636770996339803525914392071413467701658741270477557335860574216161827474319896563949334655378039762709303058023491932222741212214963695326207569900687213228018319174945826495330654754729307654860031649980617928366867788989417130953264240093346188405225154429946463015048626723847867067856971177544505429347958287080435702045128779846613690677596005501005884784457533280479725584109914283336832781348203277370710504729636204628999052559965040249121199225606340133214810960989956806367329743174939839756805410235087943293569394183425601445309296402060711710206839859434311147414007454335826770979777916872064595153548726154524179213578903494992887073382118490336088334838492155558488115123416171592118195264027591752479902683733058740674733675198766708556714352219798944140175140252409376217554051153060246804070036081617741431746721356838673417948409440188526154843206339736540538233008776792327952876208160712819464866954954941461118715165804715150267114256090628442061588576646632285704721051843581287006847584795615843763910186484929270150777062543720986490908152748029535553734728068704657575812214741966115369522179702299420063638621517204926413935306941766429133937655266473748798977585454039495098334108157091872739197955618184735309387310693994484222504800027645599609240688233480922189329319122342397493432090771531695323010091567824787385675092883316610476987500408650947326193725823962488887389300517493459808225913706016605797561750660007026096729912566709762206024617469855387268470937606118304309755820537533298135655102513921128677703736664261226018333710094556305296820055804412810875651618596608411775626253977282166115835943758964601232992747892655202312061264991722290996002446347399614357461126466754895061231334218978772900347824649811930403714038409589129967651582437012697197349219972284193417711184493149630943454589386655646886850557872784180893743545149820159986806004013358542877100878979652956789927166435035107915556706406378524696332324749926480486130211652942251922363136966314619740531149925107208156939900892980852642742126761823704626545432380055695318088619305195555752143765507958559473600889392027369954945942711530248511883224414199121970408496582994449087284029016350803215870614046270813201824302017256523787406997210057826476058939689077581397218074328411247839492969194324336810540584907309421993380641696791313131488141168885264389503916932078894785456400582597111674710652204621434706408983755295733122108264708979074126550378224894919522553209047605557848202029274619268322329732212038905106134572250624797531604602287708403042548327252490589835350599485091673343688569303221295407549375916012298726839985889617312103902645811004228748515077343818170602439790641033396246877928396426628400679905638042771851436716721558859837111256438410101743692952187889182882674511523555182560692053284666582640029238757773180435159825099314582877459966453025173890968690235317706169223360904418712271209424944626710449935200129322800801824674096207751743218114837591291023706350650985611045450851854184345060964279617035486552022812177748342432047474095941259582042956113098165015057304336131658743739630190485517215053146646434922053112952694945763126550161270106210542774906187578243446324395948648084354059864791666354472560545417433012958027294945461459650650568207171943310129652468674252714034228748808204854099384093267128046260751746736567580721779400841144217250382175115798430260044640354758352143150589466174555260824733541014414194930219180909092890632551246552947495714566836423612298723075086790145050733144480668848768393642369095721622335112133899495216672366612870781538321415279220131225809273016664900638371230594697721284784575860287400311492066143224506991342959069930442521819308636189601446275980522804481282493127829482803877576115668726890338681759446016108075183522536269396601868747322424971025833883893603636576691342708330306141102833513500965174696070893751185587390461117600254599935984049395299517699047806820363197460399869611229653651581643265101224136387569481682232175095780559120543370187696654175765165083485764623850428780460524031312636059843957376484065307903065271616519970438550354559672571927983169657074865555825890352570412490855313237861634289575569509898010478080782224985365889352626120587478206032872853469825094731147526591483437474935391815270844754401789481735226233713617163298714112714858687460282900970423880892432887829186769322613853346445910385370708923615992251529491139216578823940703787872209393457197542816130152413545359208718436855826516630332831778459373934834036510077444041743018384057229535135889911613680365902214588361517861599828511548862728847877955966585552914778270942317388443097923042190873247785705642660800849737338433451173618765967925931847861444333605480112236209583227164115077875657994359282604480396268899411216567762032660832482132638440610627132649206891032551115940384710355376908511221759960661311337868630043553553525539527843571263444528395208608769168051429671948088251650694056290673911320355875635279030348672556289591487924551863021350364377135539576903181245960644279328162009791222622021891868251446506110099121130720258826782523871104872637150707608735709102891162095696366651586812461147129601405204283930851225354188252581169621279156910739523672085240421227349674866844480510916068978161940343438235309931246655647640324800863981233851562487737495215109740564087964695807210747324258860817026538497612759051169741603658219101207864761389790238226295809935248474510870607483524803024766158484578770920983390746369232075113966572801712954053446848994494723684362970237711245974096626685501904633954745517849588000024322583669335543832289914982504560478546165695168906888217638391448224672576919691894616755445091022889587670209489953576653556881199850983932428924941183346643534037412439182891377203122479031734424541350191255775107269573474584944745862427336089452909184037544707210038069387678016844574847788712976083634811492949741105395580924682543946313984776495256309388902714331321274713895413855208282332107693144791727675404184745102994886183341696261577274973035380961057417162979690513586345385243138401412194158368423190897449013610783289631430152840035203453084357811495331664305993959198170916127996623436654503618474921702804701298054516564521528297753674592179583613179310276143993966129557266168165892949344564413611998581591227011655448836100992641609673932871666577978905130125396161353000480813574593917208707057456811260627848793642114425483920906859084549259872147429143940689327622533961468181270717294961774267848763554966435971483331270698302983296971344354239333047415074314923366001975763022796239189700999390350610571604011843055734144673630956807052854611831811799964511226808010634162475134622260321513016142694851759715434195697026252240768195932231535778519340082781643002236597906032406568479753300149992226415632600004503474913942939219714787573205336376540506296744929684273737872995546577792782748559672131312453135635118180914638340304211799856017641100345978319214221597098679036381147761177315920597381606817509997696702017340999147113793399171845748843201209682421304366393222749283844779954452239848354465721133210489118490379083235500848987384277467836835611617848342923750572813787377663515758502214870016102552170156086814128377980822274899779532272206941890483540591326287146583360603151435944475102718335567440779119588876583433785329752358750049888167640050675161113426856869521007047330820520529717521785156246571672473527927068483632986935811932850903350124363819098911956755544354934240147884325918213755318255844397374523239607860140565343123977779121552062485583121886026738922781664538977354527424021060881257333866894359809224344871659500144765703503229786812139421210128252038700677450121379613623452743097907887248210673848949909275838283180594538410542834091060829316093034607544114876136061056668012993679363234888333538990601252714052168034887331593523163253403930268054059247278032400681315931570615859072207385515429372810269697530181091357908849698329049359120188694186026040807523504948368249167046651312992677345327894299345957317882144801307640052999018844782048784697099053072702170861128773635997501676851109586672669814150360917418967919258165362327894970967865033144028818653704068350570833816212123544569175017361284936792141956750939868380899565977654346712582981942403850050357024151791580209879136506089737925125812510660850312337572788210010684627099674238665003153206189466740360358925198767413601713335664684139878987557663707209858183569090255398024103537693502075211036702971310475023814775361522913528487113524399443014266946956288489174090364111303614207994231877683753909687923660532748731909743222125091648010750565979915385806932130057560484769130997630438953691328140569315584720736640680316823795053419127837201413834528480677586123996944191334336105871525324638257843302348157194308691885946971186476956383785143912032546177013398454513206815723904809317691081774702697490463249052244624876136456155818221659338580310624125744111982560688630713091947972331155204874136438416944631247023090845365550056435650489785699493359983172078572082649549826770805879866017514964169295458534799783734651507919141030611531488090564805418129526966290003862246600440909768535893622033248587787337314652831135956278336942746174802383230523911271620326435644182365514944385099650230258981003246498990617058041686273305625753285062435742963962588030364293765863663951628302145010664517465514456240242101071122578035662225854310967719896798135793858500166059127758883817483490025007645950051493959674265434213618288654241500370312075292744125542822239927239529213649382236823985302261683458612427122732185316359532849863820268320056643049690207452331519495660741033765793197862378998222888769569598269943319662607670003850118846599074261654947524704985258754201445980118666912231077664072218418952723243380108404128058912762000844357822129548551815918143358835762655321073855816083841319525017529581236833670152258212216057370013238172668982400062171524090277622513313086021433351391635910007665189781802360792469771155859678751228807179965294108067113813405313179021490382754609984177782864499383324834403981963315449931885374863884340015408196915315648941372601885172121065089020899842594376574687942827724987366885647072364015854882375248963959021182901778299919032379012623798891737782203253007701605906422566812133042993531561524334229780420445949369617815483817726544003493383760110156797552301595870547943128594146660504080857557311985196216196016066296132796614350931309570222657851650251205121497641997190200581886046830979033607002307413225611263703873846415840138337622881794536621098947239034894108373094561992876537252286533937210369233873866085646131336556200501672192313425884705795392244468730052645687486959631258807592880561420041569710211943985647079814316298291866332125607122978141059358300049430800213110037234789040793747138935089345935123583664395362824988673430047598439520334624196863154950652872372076933331401223752307063846439368416895785143445357608247385799350993448630817584080874629347232726484663389296890682534117958807916266000212069890750556684691588357591235800436327514303452255845782179730343120152470380619689074141164650522500186285157317722895409540632764976483573442840674699632179730548322126494719718701296037923747334742947058448732640309977524798231451400779558951003831051942745618925387812068658417662334232278731407445105508239907136304317330129089784784165884798343471099132180460429032787787913274593568597978613116389550595869930286705972847590606130158810522119398386146915371588082262521952016039334689949369394007954596877134115817852556501711566221646237761490766220620569348191806370578557682372759812573365980315155920670718270626736100234049622897299285703056665681300417220131915460497970863958075528866211316774171975261758384180229231332373308781688605891753595301621850208904266725037174853234378586952968508745867330314970800732673043250603395460193943272751526735591619380769780046886571468797587785773389548514058116674767214653521634227774316524505819548596010446844288412802642093728647974725664661241270315689592136889228459464553911004911550610555342397570605359061437020790334505701609350751509863826929669856307856535850710378633440973077333683166810768168306040614910259667256176410902972509296071833584333263087441211738061591800163908234447599934305334108401794414659692066603564902648730090199727926060775100451816936035026555246456195022177212970579900271913333951691447803993266002013292048058822059540629819199843603104905709523276138445648177169474662212174806356609126214668054702372949818125657664474632251014052993509579277505503781396039907757452962658314376528905468804712536251822008350456332115685208801736810021692734643137451883899921609832689462911022838510945055143954968130124548807380652801973506288880683995084073240576740540674164141329922929832184222542345993900074565280488871215822657551376117376894114147702935901086562274684273228935293416638810572524706505107934318330586430524902401791450429877965020279178729318607167232576751871844009078951969015317137260509387178957182345160200035591029987349854257896596852114934035473551961793190039325812644848543904992818865354006585247160089248000995260015217526410875911323222413067504389823268290049609617140465645393225631706726142796814671028790125446520535070434920654420781873502960152696285946287719119542248176818265781425936962718051426694244764519890087696671255579454303626663583837270105427454969137532952342650137867141750223645904197115336313415233202483682107226307465088057685349890315049030786755622159045082156520732021082316432473849557924913232446138991673911024818216064489986946238073438529149716540622678044343182061053652785163211218046433621146704261694880264121760598614220310111470458049490077206936457372264761443759127073520421253424673315140254175677021421819102417801992613620918551284835383201954932668161223076268710934534408756955131429206998426805770300831335955051384575273515830730671219527312794601569569234869645139129989127048770040558598196116527264705718106249697896559739531169253463509410773408722404126221911459709750687473211478330997632384577759760093262970721088954905559579588243514811260488910545162924524781819794915242646461958899364875353113656185928600298800056107017463429279491453463343122286385518861007265454246130106912175768427743820826404260896064866683683282972571994938199447495195542454031259530622752837600109698563585954020399246306232981621665127854488193350615517988174584112471402129540741024926372285077818659584896377391579359531130918330091396943858743673658442039483892201975712416771887703897810694959777067591270066133442638903409415702601359061943684238115553837140093718319614174776747077219728717134004976427828796446073303659259660064135883956002198416010859179905646663927342096322960987536052031159774287804866566741897947765716241073084434775989669636461529373276887101778001661416162067194545719942885273565594387421584677805778119062895851269370494817557504830137060804859304342389254682079385469027451370961839435111274731080721592087265277938576960133886222009759385365666054268423507838730448007184844972893375711880554226730986298449775877629533372737489828538044865530959336347456168733418917582273878599579826585942557896998605449503262986233715184280695975165938024035937675657363376935743569401299637821487092050732157184596309675000332226779515509391610169068977525189953095286917251642960439418210771742826883322388239151331632112229743919325154917029710092844712323726316207383829825969481457079226459641874301445664284745724671388890325210612351362971125275029301764139149542566871097053277131150680966487705795398178788146147465522297369891750203929560396599082274757185267464327525443409801670988316720923819780408030704779031729924240562402991682243436997403118757565810573428737101485044639744908421684627495784925330176285148817300178019886744707735633233391025711371279836131724604845878583278150409943432288983941331476550367956687047339065967276018210498905826220744795282246652343209468619113210299736046346868226927816493712097250849574860572591474878220654538580370598982451600260060385673172245497003996517053675466329489923747056144834009264645700128450116767723709996482901414768737699204799036049818663699053368419983985180202389519264234632981379053398035660102143442602194655104558444846334589733660424947891077950149864394028312454476343636543535182215255900892590760606898363749486719514076145068118764385233794169855886677706360515116316432306541649469843660313459226271309417333517827962815374269420833471413193447928321132748367292765412701128478619146487936420044075087903362983749137220788556044597350245171449666851114899091089764472745709362445214808140462920836166043037185020043529555272500299202201484781572361687438744472363042679455589454379578818128990888471609025769011740119262108447185976603051716913930412658591709716841433527459292527915409591196960142912774711463550394950692582398402227418350654575217351993470672954917887975000415552616238970660477007864470586668558641288029909405471778424682541265626285514220505045678512644505406318651952145961690325086798380308218305183069243056121628915944245758461555780870411567319402384582108215583532541703420832006354364353834835559098756660776225296909034359092919493053306373577602877720754161704298429739245808485596218190448681586314899929286754205281910081239196016571640475807878655919192027048557845280607173745465787415216941085814715446535011062739773198353579390036521278867652484864937241787783284226067418134506902921076310178645185817695627818884512942056901102761004643378769300729330025718980165443742939880190459652808597204575139165720878167020538002113898337524922425448841112718405009607469514377142020781724614884082895153405429661409776620283859164350456953394172587083515298745375512896221846431053665840293005672144058101751429669593267859559835623253881465201455258597791743172353405204385131701569852132286576820771419853484311428831568584858382441867836107238382072713513605205631249762852933648404832301812045988297265516049060773116399589819365794580815312400242928560243673067844755451903684266228156738106708975747389191759442668259822593461977413573415923435405934331558178077830037889891224007656966663686960321927837475653137833223281315705230279797426542095429367449151168528402052576334975740540366595230759152988873797020385318019997995292303006860213705653967269090833096443022492955147456567221063540798926412672343301000016205042591257122952302155929670588626598995805867294431723475963249214087575999060308518683611722549001602031872560347588903001082029745092338028842445199143497573006942457423705299826340922358272612843132071664419512205043959571518603273648576734386517697637672579624608738716447230244353192746342207922454846141867557211347188970753919139371417283149102219439469154008364473951718539957799432632694861688748816823148882208034578003299143979922809868370848011411232176980628470428610065804247235710959373725058132800565344945899957239492787947477937337904223242468172841789704064355902794931572875899960798320430410977494099756075937286428833201461276440316558404214816523008865097027797761342713764705837411555507461555269119257368197132956854664494629142351196898153134000572761408216352538018972185857431853330643773851729336350950120814372609169858936677133673121622312862876869281960758184904094848245697302883583379372057673280014428853239803131357524815890165386954239823076950603707308201317890700415997927970887131977904739756086902808581031706510216195709132537913790862747350566848963142493904109087943538474889562951047061264735852052755702985695378865164242238894095732461234915930690418958655748859139125656504440803616785888589470381930723114589129410043839486828006694801323384098211464275789779404318682591275029415858855039776488427270618523003916688791707289005040158330818861408962831232500452339378613719467226104094303037856277696782108915133711670096591232790616544474152584578815767517890857267783771299809613918733933182836912324740165454048016544004968898024501180103369364354543453949518582653487237143655189834423545230758952943366539429022721073787369887416345747645444783640608058762374625324886940418103859935275258307523760094487352752717690101713160045090878714993144493933294299610880890534350094849280083352998487288094650181238504045665165608649175320978151261111937442888454967101983417401369689024444655512401596699399455937521809996877970016348533292674906253660090672948171425306649330706110358615722575462966570211809222194605801720229817537549329928455907031833920826136381608895533825529735073371427604429520280013944487309585447731321123251664505378153725666368487601107515534787161585079231868877816392485231720573748540853291365184646218301487155318377234613796365827776990181117368223591905515288302224691411372185979878587986346764267873348563377579804554911248354845315105073443393278784627374513554751000337399260698554605297035617091081500132477086794663725016805534539312482552926393950295686185046087078863996630319984915211070992358731574076846670062218006991224858079791243660453862778680531895066710509533088145096010215705469286816747493592177582569646848422991688532991740614752074170874947055027574693716956821146407180780592174608702489503784567677573598769450992588449786355384812165561845833641875863198684015578844515479421608308776688070479842206976815405963239457870465085902452593199976227867450926745294309995753354458192513112156898838785749195050051459507888806586460052410637883289170660468532615212390778920092184452063038594372789077345605470676426648748877422060198930266249551017587150079068578376088440507168958580860127544308438230814191956797797072314789553690578066723279291990072539122048726278599467868669019632102544298029907328155967250658114695584923789823574276885270393173947673591617559918494761117069516555580003666726312755465504766064751514618374203216052976722381448217569999864688193930966699205602616794118707002219028874911758921910029316545785593238970638724282573712565543602561969187272929653061709110618627206744894212760133250659032928540969022946180152987994384697557500633730558638892325412524909544517138505054969520116873011572489507082165512022772535040215914666949164199644453311196649318584725932121080235100792221488004148536669719776085560765152638707141430474135071287923197106543052765420092954924995955639794152283613542918339428967867469026848621659591236323671788031019301538523707587044037596729871437778432528951981325135027354717476638737731931303782670578399338020439322424673361274387555967692986687156714677290156694926135022238194527252260223602536573393149559756328115146117232438136723182127960438093933153465236247150404069319425979617156280973273669480680909814219418877878774271363115555276361567462447633466430845928640790291486136080103886448713922776748397774274138159274525915466828097992615062161628827205928556015644937699807818413356545209804198118548263961792368327708038814161432354757678924632206800073039746386254752957572345182387826725927755669965092383545142746509754693671437258768388479903345331541938879819719785981293632160571812032729965937762376624740626493424657871428118015308870748642293597639184801348675209680434528086071608216836670534366347004320891286850646240244367028935084092183332163987303715328096402429030495970374220058158944308145421765977278791538167487903786522384919300263428049136260889977598201156642261863688001420606459466272870876849315398691750987175399953356478485830119383275959361723116517176427706758984032055100005027749426951898443516561977459430815288742400401388384684813581891392784985736858228958020591397092727286872117315481313675921293359806878719688700111642560512156203237307388536463679592503465390272990631165819479075073059418176750636289916042964948254529891404970953027857225604058855404123214224151943745769137685279291440421184848261999622598872140965420069524804095036758114762209145439830714165498713163577660791400003339423575014646377672127233077310279153745227706214813162953124745842872193978676031224976319735191892059969349870468694207194746560572013548818299081413883414747280363404240935207255083073366382073266101388260604584012931130963171009453463154086634182936623719682817086533943246797666653485698569437465027667737280760416268226217773835080253822985506409323019288046761094703771969668103975019911006464246163361065840869785682159898591265571167455475771809514385927012444797360209694646760852655780445911081430536661440480261052496111937603274166491395491289621659213705816099087390630415252592881637559758844080344010385732321925429121365130815761001498254468502772846233522274787533323036989647468641876416263067127321433483535796833794582943489883453973563460427048657341145465019952973492520558146521874209533951002007354154483180802252719652338666752354261794238980056696376928070751834373144823665845928271331141892203362117664281308771455642325558685727593335297117291294838666804132882942448733137033417248896536081241626506270306659396402938709441684829305097049293109532807753567108487797168490092421655691778348168946663965340377807537312781135247589749572302133338186356362605425035092643012563221763714384776892671109922428339374145968778786100723046976947849749679689275325495969289188020742380053855722700118969089260582386710458802621269590297904342914054361085912339296398312099610089041210916036517659278819313143606520709939219399005481788397196311882028436592985103764010207631923407043814370889779244748894888465788483605236561232932214824795318578572494383584516286232372090706831867147757249046199212926887938044604070243890527416725397038811092899761748207350624267422448059735137179636786362560099848152773804474419443710112915999911937658354490660711038667281551217477113190351312691964478968731866672115066038399877030922827758385169930211607274706861547524732259936816243544233062285329192606333257616994749243624633969254090932511901845532756560378166613636192990015542810816636194808806247624789179475061086062267366209847839097808937817208013482456642027632297561437658012673380907722409361640679383616916350005417456327832437925302461916223057612706584287893047301919514611625155673809965471112140052904487150494453006952698298653906493110425417640570465570346078256690634457513095385052666764659534004317471553962414715366345440042887420176984367093298683089883445353578918944480848873403932100104655438859409955764880903657010135306526533996318978373055478317226641025207419038085802981022628844942412878228651986964322126056708751878470741689220637366159454985140871963535468236903047121381387416724929171534495059450182896851994496402190957751045078068894416209265597190657070016465319766372147010247089228911485643937195897807579437278257473978843873664119655920863907208388881633590975323914311112504731300918503118560416878133200042199364995824313074239156825939495812219442520720461628382621792649803089332861973205942346839616894188725082387084394000137797462107962900460475779363956782941520812407752399242378573544173227760108196786278015015543276692034287638494816136777922128858811816037915117870179061619259204558366429220182956632679030317289846625948085693444402295500352881699001460204782139168692675578474829549358333361944831471337260229825638900268409869279095293269908148255394471356707553979292007515404636426824918922149895459500510498821050211523851086133120344804540611492995396140105466458071933919932306002705255931829797856236660239131470663587032272336758932495379366878070117257706362318139842427902001120305407546909808308312086387054895514872855815104715211378606927184930212855505931454415539263253747216587385855818073593784511187759301051661456022458310559946352423503819399267092319485015647735043067926264957549680972466110714255303636384036765232513803389173251306221169821531817698116112918936237805957593724386168749764433772035994208565549567312830796762432987898659624662098926432737560217658408313116609871824917485820555014580216741690059863708549818025055550007966471476071892869134347962277923152266726566763936969374752795223979671996545847962265560443881257897459292391421571062174832737485749406901178999665945863744989515306978554019895824795693181154131332724447742135160563307868792681180771050549765902343814091902154122327225277127933607634747761373090642310803097097860988083772650256631041118540303218113869689079716740277927937113979287618495751533911116887080540173296849502341421841015939872916421758146828731363558301302422210957048041847363837878184032761518796530823730416025345556860582714546765482766132910472218074331415300768793431153837497165635628282214096166128233657523397812256310401954384983894802236784111029010091721847948803181082102603076076755820984435096442726607019384963878156980666304736026807791326624537384213657213070623967683521331595140389147715872504404973902456165811666387950294058040138474131026756625552778349591091327764416088772016307811100682437372433451292436785417604710129467556299822215710389463283624967978998825777774849865137480416934918817458517839373718659497198497909857432849918855537767911260317683361779371642116746612044546392450642609838352839317853526055632671141502416280101808329473282000027421836732953698258868948082724750502020908206411117723712439327111861641219809361155308499242235706183871493607078852585524370643758776040380950945421643993352342038153458734464199920174018600856408505692580386221132763825075943242730364591513354488878178640701018783073598061024905001563225626756282950995180125504429801061570689522587119525579319307198282116638886827035255231845387496645365457681666941396202852278656034414882118613683718093381189283251479129812758601391045466035542701389673826680164439765899005719949760292924071522657365180408134222294565047601855846682360987522462112198459878170167002544709136459680248074967553996703368807771506269174669289257406074886879535386548557353972845851788236887123167930877207522554540674617809084504202997347482097264396888255012355849422391241999686746550394517912327109878565473358752707119653200090212642643895383463172014185490453686109310497834150496051858292076429766832133078430461192816292073802924706407635008962301791141393895364883129896925675365261660706826089196251940858257555240833266250057958408924121974387674147361060113341989829283527374865454027508231456189993025995461210557970869339408053331784761401390429711769325911924094943914886906709588772709610519201574188872288064906499409183908470705489286054383053088813496191421832999127391521371723949236832603919420147400042438691421033991972517087248995356168250648047160903545771010147701855975930428570361501162476276793737257976531736699646420228007302477639363724218506442372400609626331807604375177348070709343705921343400116016707555653049241139387780208387795637597941069272764529113065753771553537416638649084427268470279296476796513899587314494049409781086131150571598151306400077533341813078831467900109918033034575429721913143611850167518010501929484190679228787179824520867367587850738831626462491745059277702233414967724274257543115169285960876680394555018344671777482952104140253518427000008616708094941352235686728277549628891823444545852349778410130305516724705122835197084799372863382398328537217344074764367546075443597965426441266295270774854437828883510806024862215148248509457636878009408695876590689856553038170100273681602255815224214295974935986983332165428202419167842786221784000308249792979887600567547820264131654331623951000260867383912060911907104488133116183713156829386658753651774654233638221214258349620690190026719968252356760994360337277972346246390914927151461438095989364113074456832670335018556377740893141196676103210631512236614519932567222705552522741236635979312511861984075004437781916630945392776664322983753633551068079104533692901569418902417116361173047709749066233939959516602457874408953719333515840478043038582995516559576420268757895590616103566474259434197446982093705017614869329697395485451657553065285478914294634811269736856085632744932772023254722163033777228437399900595687637239441610926139365907466304403719945565671358995232014692286798835313867605293624655368719353167327808699384794105992313625924741162878148928676674381832612414961147478151623504224446956570463019368196897396528558896950319386047202454716508077685761892744623793857915392030359882927290470818583580322104287619565595914046514370495635955666057643898374418716764045124249096848091409237284794625480982344206303647515209313445550522448448183115674363757497033497288019785981168857789715831764466686021704424000664861302343032623223487617229409511093145994012426689538976591281251477144983268677148149372859535987335612364306096336017071216681661302625719060272657729178695375308086419077929083062165623947882178368995238448943338627366565004794670264388659942515879555230725245228999840895409086609134516077833552555405512335574612605784894774145735791624739274125945180738376712134528444923924570555756019778338365654343841769790286454154859077549447085959014531654391276589087913799989519893305357070736479272551892150362746713830431290443085203252941058591272134614749864920579483320618630376281419952242620798957211845709537167425060351744328237106467376125082994906975257076487878550841576064091055508594216075031512507236040785952143265089897916914490796615262320333048304188421041900747326729405807819820182306981475237172939820629351447551818560822525320996423522507091930511858669200375691161729349314939691101729260595414631042129549989996010412429506352841259435108730091905058250997511018179427060776290018442398363385166861023416887831180635255089880650577564097545687718264128893371184516509627279938290132610028196848324578545570595712083230673138652938174917669013191980885111452685221717937225684735949980924687340138743640260357712100527411913140101145337912411737141987634021209872732200559644999793698313381319058725546240960617488825846733921025384816524752543967677069756730151440717171586293652761441614881247943300831496751549227443371500415393473031845089490746558744457633449681693540968549282456655403002558138894022712728807369617811848666651965941423916577244644152447458681662562927307634826815880197785753995327406641465690454953268394381386733053139745634092763984337423312285282053571399215260485548457675920806593343135897268209511554393402079824013979849074150266349050558141813385860684334806962487580154483650977028477991785214057418069065300733960239910757779183777664088852051428924676367240507124019432854367930059601509349991687517265500377846008763879731289757275621958273472152672474672341785972292983926982909288853890158079267716613557846313871277492263756908106998324502275024152166875911045880491979258597870154468011887194800437211740875399427386633217291310905333893463314769262844663203353311792782098221573552959501413314141382370211859092164574035799304194329748306264241932427523419839235976728388233197621342355790632864893809515250411232237269796954004483528253492121692310865581590061368070528703340572605880374567054779992422866674894006558924180888939440818845954874101363546397900552920698575228320964949608565729536861776968179584034084390235623921402587360835147691808141597042752784920376517587776951991655992989343283651333956816536130137879737859363773020175592582187580000291483044904942983044374863579961969662318631925528995817850487610098191139585470953702457143963280364239735503603807605105989227461578028310221760699752489590450610476295744453051624757602544671410188854371271830625793614273365350891280800690525471407354623067425598910276174213650348857396104079544529914256657931899936513694885695629456738788616419265878056415206726058245295494748991009895642625906620414486522752927453756648104474575116453207425718362790820735840158846965935287805502185879235478629674983709039587427676324442230407616680114066450780547870435900231727016055090810558139041798312783067464245764930957599972569993522493917427289145275705611638138018954488543451212878980429306621352672421384648993890653529451042082747932954472872536623618818078999992967486685196403019150396182482364149932314645957693437145340310887872195040395289122134861098547071038781224225639835595915359452620094536687678455077056772470509813499732227217751542963261325394083453683326029444464037978307596206830596509948533506633835977120806254401501226628166234782550601024589128889987499879181421191982553203961138076449314544279651968141326599518629348772075726336384708730030027551878545075873021714633629998860868153982500223033987655044036840212659272506536669326422974634926330198207857274654781323489405065380081577204696183468157455279693570639871766391704702302972678562052644400738419569843236858294175294248421724328981051997070033610087204644621331902159748139344655961272350411130770932799431074050103196679943674601622273747280528097039333262185362731679083784180501812186741707282227075140800584616366579915692326057040596886103293357236092120221843371168497308928668154683331044702188702438713013816343984717988130512672613324997551503342374053603928629230459662359148827627240366126408492976628185813699798526820961371251502909077231505113435621346909495875266610269341994028738470031168794268908384674153671883860399670477059333216988363613241804148166743476840950032839164572817440702732816758103753867463692195399021089066529439945330688490847931129468963960093997734141257052706186117493119934667457699615738732615783499626512110251548490259352462679623834946896184041485101125022214797198600391480097381391224853852919584166658687603159528235106844074602471949878957503541378884998791145229358104466941630402402484397319979303788408997608719948068790895624850267132435360098652956189037455951081354762750652071493407367264738362624485871464587796724378625266024247538061419940377955218881939940434521659631278875981595323130776808824197482988519937201968340413918901221002365123581687541339832817898345650214435166546115337152947881491293126606323021729292583764750730123262149372171265007443024141560290272223314066218852334735234682885995444956374452102510367964972309811409430144179848046012799488644863183341197293857439588884693515277826999576360194733233127143773355670638620992465210455758493402105125214843009202413173910956680595829689593377213367082071618706749824715566505393919309395065900803250023713494085412248156511412039406218818370911838177786556000025067222782479211604583134317247663490822724850942957208226305579319550926670844761178264684375409134832625446224504231681232334673425907118499191442735334259908173372338121823743143020003768957123064953990428403859648461119640549159461837165048905896300547849801469063836959505225676392756413643568492184145641656883518078907093960302602354703923145109208091615019158782054511223552867820112542906611854817039001729599505989477018044221960308072889657822422734231564496349144915625334568205695146074518558870121505211636191124005486951850892137801095714294176652876847018289477233217032063126885665074725209569038934993270132722424390111862815628910291613503711761836262056743662597133659234973418855463246164765972772961371177262342459930432930402143098570174646316887802591130899699874880168707812796417267918212467705890268333061113425828911348684657654939304098160878626756971612140309544120693043492125510809073090649685881087013117788613893757440866674223232827012785342574563584864841270566647964536837528946408435078861944763361496709233399657939830307335241912015345340635774065532425439777465275088117619229526086847121239044476558456890802050645984988997436306350384288964667631381191050531494993147177772977329092806558758401595582202459021966157123028149056228650635612788991261303838278116801950150983701331003677030861773904792538139785632014249927443165860962918454270604599428734542019966420161321551478911393159491636173672602793852555908195710366379951239447620823640583117649457251265468075526897784499275980428855907474052916149656950205142885292217627692099047892430757081607156279438483868212062400545952202003016682838454087219753763780752721907334704698477102519218794409321778804022867031082276763443614191068028280390836231587722059532477535243407408176043952531833405176248634068940929026657049307111681463741923643430258096903605958873503164905705125493118355978672715650221364125318214928757818811302266105005954234229535549458921484854931373347231534867748183329215331979859428875641909391454766184182226368039047659245485251743364932280734281438893843004425503692628828015767453661274398623569023713281295483302650795226719509907189753679445260234209707501078635200530580656558487680944862868291542469249184545424011203014609243954808057107063934566858775804332866952953390240405820929062714863416828758453610248921278627599866770166773234097401240744635848527747270239292379661752573207834131495360588706408424722911974358092210374969578786328532982361578597881007672801783325631311896497217453196902319303187505555505627920256309164300939416957568454188392133174921715550167569113527214727401399191322204081702354355095072627530713683389129190531825795970894822584369318027498272921310058434315902904145419407340602467492411154132386177107741521050644223302480142997942514112996670452913357662933185373672447084893619395955726140506912978813779136520512619650651537312575894958536019808929045921244826539349827451163277017923726851760865959591143945993458831984013144336904419525386116715950484846924879089539307310283624289560507885609661458463988103080576037138420613217406775044392602989852922765296626539436921933482366797396631369033631029416712253481866745980100997112612001130594846189809125614087705321188496120507584051252889648134237956567234841831603061389165198788066130064863075072082356474035975369530378324115610083901638173687028225427498360892347066427376464804253887296969937496237334342029477858294423554973664469083326603920222126948690954961522064765045126960209651661633526168436365141072539104651718200458626752814545690862576538138987734016185965784551564788177189040747803193562543793248416628603542416910471867751683178700572474965245596064254893460771024737213572360680842120359722240811506246435793071215106709067698755131510356541011689125760826657064474796772852018731800826274242219758862968070401928655664100859194698633158804708613133346010323625156477646801874000168796014590878304248468480489466841723539105025851108843927984071883677551935837465306167819313174739463092024993024616960034042154141324556652589007730438717646431179207194874275436512363752648933228039702412200261894310552548875499653148727748606343225672151621598598521249391119581413632525924081095457546653038908308116041465476348948653425461899682225757696514243489359460238647514662968039372774983130255042425687500719788889499854872362094563592923748675263153324460833610125196685099984551207390332825047672957779281597947504557328837122217154828835286831802170773492534068527039788206473158924143459751043967240551686338919863040166575651193728726501615481830455017795530853217969953211954323544513345433477101148097759619184916306667573554932776845576482233509779897760113972088200253073606886430996872928970420711080127382114312925269365715589884456204243947521659428422171778188225527708149201735137687865988124022318533600614480315691792443903087384908514888860549454604220055575620486894619395050269521004330856412619793306137760487189998240696310942526898554987158943535142322591692505175992448162885642080241701081210686682243615700539285287323089936310027267066779022528209639828277551430671344034744862568571299571338637998977724037761685333244722969074567108963287314725850432410995963102793425464496571145247378470035005085714375673709754345072968008219456564836009839615954078871905760006008794041944447164545226964716825269592306558844831534347836380046476707620806019803309125690808740337545421802201544933569898668573397193735772900023588714129991008458931331974963971344691538376047964451597393486291209230924374178008066659434128757118193587457059318974794203022742116998157348823693336461745016254463279489540335255195502451903203984699244121591051949361398936697210141645646578955498367730401045559104744648898930161953066626695060722809513523321135933029057874015541860551897346247416034939363650905127107111705756211565994893333924295456593998337245240570874537831556841817474604076479120597688898558180729631838277796684698449821115268628184251872478630440185916830023739219218257585534779061970063415144119670940168556326315960002291824989008758233581809221753006260847775592998917730551787285851314764594386842623912136247055535641789211685125475014142909817928574342698411890285821469110421250354719612429161081261012745397032361711024970228260581406710826429295459195297779458322773571823897507278836042521606349870617699381805427851403185731302288111865670941968033439554993115461104970521996854244530289839212494137869937227759114669775908867891851724278735085165994904976165906317980515317100731107848351131361674328624517054020422149280799227490584625261547564526924277767791444232986421659648393404541970622896270054869685115505353511908167349626732403649763586079238904257233305265563158753171292206705386780748459670635907545102325690359956818024052665111113169549263467526441705051319973592013468307614867750944744589575613121717340446593672887841480550480069866123370158072826667597206356769169922550181963066768834255186053106055633777995627198438470356816533067599357960832285584001037711300662257452708855313291685441036421236268991532527122537930280148068031415811152844357627936531284691403161991318942128703769907401123618346026812045976111339128736351653609304921594723553036775624436415813580304477799346788858128243036842199262399977393342585266272420709345115576597242385932808894637011337292508223532037983664409022025976436696293220978304761112480469857314737708206465671146102453029363657249917472462721386299530514417177202406645452527316778584962851730401070755606650223665442750892827562879006565275023450090591733603070853035563271220453524920253731299244899582844279947987576687899595320515220210426389697155251835160911312872729295570892403232963904841157880224115088061043443884507426897651252253389790592400333083906249573012706571713482767482741004603902456447642707644115445630773786626165634875368498323989866971069622895628240655229355478526091559858610116108305628926656653983251348441377667490526712245818324804254606213051779257563182138817969352005926636198416495741729726207184951010194000683245850794586272397699443136850050878766121366258105440473763145405201225978106603859118407706717811012573549853848165099148606285957702942682432872960395307210063455454503975181122701081992064139956396159668479494959680247613103999234146105093016509336176211780439533656713708067823384333955939517408369095535293714550254829305789282260795864555195263451092857828281477715860228639502648749149097034015668820119529403892493735177431160791905257090981873468434901919559081804628771221727444623991158280621543398883308588448572218886515915204905006804946937527137230825395520621915036369335239134716485053860048098388129076553441422702102633622504026144821303178207446577164621926229708339042724566599178645583350800507102725959691604846199949457707750856309519364987883240830389607470702065358809176002578750794009401621501483640787299818263717304494816164701203726494987848387260092676898678468260962672755201468051722420850964481399924360374018213048779653955824421613465664545188774003982397875183372932943080593284320409023107479583848839485826248457716130410899406746499194405626696811090033341440451705523639271350168518430824562247123497365592522091969134864075768579997663239916982561582287462320267705978654286326626495520819698814120125870280636849029353334612518735532772582602337632308143542052155459140713761574514458748060646222322785558503536758419975556885750933285250005604681778118370665098860903333024479513162322070106159568400030774811298987289228493733341902941423749508568617182507526579646668971418110820652023150194827204606120505720116374525417753906504580210005253978844800554945440463959720267551847133858113173869424287887130437211595506358524709774332111178508614414569135757084431291033561661021336595625198363914142843513570522249185937478759482705967814878472782669600601365541394259622173995895187466014895071182535159429390744627962337138988480308213526438651732377831391221558848720439188008263308249479248362363644304305929070395221626692312584814255952016338128494464939367588027775767219138408889770393175512339524132588077853314172991125149208672521926706651743572283283639870321078354029906833099364586919773949437466160285651511647468696851494001537927355123685165920877382059192918531591979143058649185028199407634825787706168713559313196156740007723895730896677944698949622523324879466373157155615791129574580055731523946040733044992676745790140417730687671799551454426867115160856297888716259243934270363708380484752154990375619924288429833754533277228148498504992029986593159125637732859356962606865366053849859627673817567186079525568595113138657582165019146949855037992222540790610765419050827336097636666541477291587361459538174631364710217423541451514491328892896302380884985399637108259303717829777264980621936847339490226342663573441525515373091671492635007415189110093516294120195212162429076885804532814505649583041478494006240583270648267820479502552913562218514240740203848556909005750065557074500532332693519688818042204923232579253279768180534633803348500618480567643116886001078633240830632428927680790783812646232466989476393564195462140074926154556090993052148860202819723719412822847050791088290170003920718103784985476654101693552084959680047482445116768399327568929204409718645985207529464052959607037994488746320395565827608660197378213807066425760061688241716344139699271391742521257499203233030262713865370035261238294345378650218785862372278870383931709641950635651026405686278997580500004401436682229313805869327007047122030385624252620162793191815600396105333061369700638389048940224858350997680914551073837100483834139354233008578124384708971528948886298003426890028608352253820577096555918274379929163479877032608191603177915701838989851746507737394080304827741052205532075225278070778741053196262835162684255715668843037445936286592281469213810105137895898137623184020164807954670011130391835680875635478958483213755336277368318228182230038947730036433276972055471351985827789728999524857034731639537654721605197645483749079444222391944441665738858523788624957771289329026539055939541241182061941634922456954916674309948703938921366008111448646849285432188061396012057679529946606979613876602993512259624254052032569940362222209095639612547996800250098083583777426197914099901421582405638818304869636747057159349326019446191045466438300454523733918872985289765770000719802922576158227586830972981479033566972979673917033600629873951965570583341130933957533531238473275001044732494734540535082341455012168505258732291014335398069696911593716877539583437044268755603122391456475943576428403390362960024967266462644391119521488963007107531523431444919143769211702905984552392978960693035709739309330321325693072620788864929131422077624865546450585241081363345033379515446274252531630463354092731749219818433589848347872066509931610385943963217789511410022333373550000424926863290477180310379602796473936476529130826590111159866878751722062331958169839602102042075666150674965013152256520603387248519918608459315982071778587073419383295062882125717878652177613658536074532186385889026240999647119219619594703846984704724668673301610285665034641268865618253464034437784577707695335719799301270679774561836117273952730111288506651529020289920710890065878138123907223741301879463056035340447845545190944445107609766208032760878819813517688641965055950409358838260736259508140129427464199277705843515454048085677634255134790688165476849900184807572194335319024937063921097209855417738715285088283301276086850804215074922704458212089458778762438936169799177839455141288307516197847723239025389542815228803302360403961082280827395811288538014104783753341857988729925317434251987747377226569000997003794027083118440005662197480288821529212481733322873646648858645335472891659908972912818624973556818034934959045251739237643869331464667251259194739530288141879575117101287724727496989045968213650529590150610492709326713027489419387510633121773800536644583734992430010544077438292050341609429738237641578919204257384770167384467581141999143235132057108913423175946875327934798180199477333499751401767173572686345196350667442634104780578776285592546881265637742171806724220385368110346339206500218991743949339840113720365190736728340085050769484339241896158164013601288502571557282638267594900663478545980081278207734831697631647340172589817825159850547740009065760064970721543024419568436277979999406164233477192796906636262981955998421821206345428159603196482939736617727702000229861627653572837918650754601622027213492983045549485069477220671596048385341792435929761822623423021415748028080256079635739136526858821904187352317716551889289585615572071321494097245209157558120993987397010133622295815811455306773541993983228777393511925552616073538552981099134236643791004952418571777866304237617773181292650072269191086049848858588932631190590784993437913258571933438733047268138023038803630255072003094859803213663668467914091163635472086887177892680490423197203856862405340600843305907369092018324544325247134835769431720070055420751666930726533355210044518000555978332062778434953121878734076921763183926173531055185498533603123474350845165470443114350564030683982697779080962276281389355164404939751408203049569905569216845828077108158459150347065730730008342816753310723407009537773840563889294379034420591110124043128122799649247482516376381414449027269249093104712533132848507919694204285724168938071817944550289458359236891733986188022257399153698645872314802815058739151003865450695958359409249521395172482557846419580284632298955682080544782234253776464011937564808805615293480850804900174950642412902111910579731615626728709390834822788375694655198966850341733244300985527857253285705621106773972654713594012440762326511563894718973428920317091271591403970516008892435471011640552316788895822207359851900997659822923607614373355911219654495749996318453270168521268776995058597881265520774575131486075229797727187412249885882707803300781132063949096952263836920041850197092139454987951837419085941086101060537230632060905193996581174261701597913854456685449577203786245619192544062595943109271415426734806632022526065632409938528094415390460810125277152995857688703803616477523333686968873861705325578913788100443108157073921699211022532875900373039391648268807412581517253503524483628118218503220896534477568052277837028756840554041836041138576199285345681160031712269469789393960715967527146757379141486680069330630649862132529320119788941874777210660110364852078375811643403819936000003674523324117664815119417617522438476327553953297503939941315020972412521697032524312191063947321562700810149351683953492353660272218259155271395540404051399956653530403682184107672730660220798832454754280319741948365406642559215903198079969520529217518618873510584756740308824038185062692010926337880473043077330679184156952744552555934241671807901739984115138752991154503432146279108637767978928563055865199641899778924881291689204227380405952724184099679600732380182504019548158304256589429286009253953961990187658569333330914159578581542743592570043562282539545496151148430971965618168349917942940978857700244307148172344090154264720582592335839334069080656993265404580858234099956649518990837382692987439453617566408919559216944077038783311730710882917079872902677174544697743940711940093016335761639869897037008973696527171674927679756420012880899474920265731408124336076651998899772908810246036768763725930173878881763813084992309626941214322682159183919394877641829628863399103561484710430494531544831450889606065395660386678076697743901828503549622197115124540939463830621032432305591889868256452755295617673256932456234001117337468738270175986895572227226273005791160490245110439032761111022060643324713910336856918131343727696640369460318196867076833438075843797409095296102340033731308985537505909187744234839948012151369033241881565462613260326128727363853137902456408841427647589124820641340265313149016773344736912193602542927679728519835676869679665932558261274361011682767898245668323125591841811008811297009828779746101577391244351468863021828923144295151806049597402042143637831755532159590171062896036138812288422402298457822929527310979280422594218475566848046206659059089373910273980309243881538580376224689599970669421563198789750851770497241805481175940641883544528930519238553504790273569308182550420323585029787746747209085764513941900729370904008258985429684780962430407031039505836894055700787137931260703352079174997635278269652592175694521230773433288467679833513862087035829597411361977670360788585355770560011870274445918332288870806640106704147176565509734152588694741245566986604500115138007980731648763376244342656495429349853138024130225432771102265603940859256885885007127180538842726826201157359270545575566487934339953984399924262069701015280575404858044729332650724476867103975378709075617207112338708832940665180399321329471753191374028066414263961756677039690900865548292625764389789315717681439723672618495341957943737470027278291686348256452819227386725632038867234898006562743819879863600687860442226287363278265246950702767686944715488776147337633919038026047996924321057724196164981876607656400248147976235878249772232325280060065745060279056409932901304993543208618912795906238493291577300775894215513269427263012192645729180100150977908580618818855591126665330521407738723580923486177375247108654921385607274101376739541441842776992634773879897796488562526308724261452284977401332310626264327425304874426183504020377603193772654500349345806903629907716267328316227045669171557283326175952307358010421041895852434896805779415431013698751868162205875169340445530410664474483897362393934785606897492356931159866480954455226867091107390110755439278245996186729600429429588212459842463638098915246289816476982629125938950202027835269100980603064100524911020640215179680264351376839744583621725155229527117093037468313791257579556562486674835589901397700091066914823176847791043487128542292517375063318900244096548444094325792511029481766695370985453259031248436157742387596619708986530984683820290340383524965810758444201134785670595718586211094999543136701149178664865886877290587593161427620020574366074318660854287382837739783768630575272572656819630882633910508845682858630378272217934777366756201324890724882018711578177864011144285812687038626546710431046669308921817147418668116592713397436652858867228863128077405313827286805400539565005233321171931630896981994283150822483969732181441438402398375232545977787386417891374305819356041201950899198468015030189436599154106581357266273320420764247453531723289733758665020660729196940732104146398528701843808318345570730946433388028695420709779347659781890357634579228818840149146847317038964808766667873842082811954255717064581508734666665432351200738507031418874045306226282801057362692146856922092403274295390778745082948740153342609164470008465256454192635005682957665120300756947209690755313956829668247203845148482052260698458408382410619407172977524830367373857525955640958216481612490233199973312109404631628219858263391509628001194906906866805116285613306040071545061368021915066772237388837514415437741771136544612969831781151830915325943082383621755413726132753180476719551429842620431591024797394271313095417256694129033847832107207850757879279646864396452791025476131417892836008910535496908320098859954099218930657062938884817495929672404621855300878363056414075147524262516404709928335901715742681731942488822840138085913082823700161386801475135491400801008903338335667177290898442470477511055551887755471044161907851577839216916372311928834260805834003904510868150912641298853165267573077663182896901984769088840021397351018613333916220761612602929453964876641227229325421795450521022294965329351828235489164628096053423024353854180755950907699603916102181073329831440633897233215654863420344691635828972705200725090734750441360179042001809526432201407286567742895325723733247926536860836804119283800556113062272250679557337718326974613219871317716763822923940595035360826114106811503806453972994745163476229998411437592885848678370632071834954876022923649425756480821553960918915035262246918111193778450603671333207051777303134869000326374422853736462635563168393558728615802982203226405488653587866218706281114420169580344077576810846055312948848430867623030259364139521924341177346270054639196366970377343448609287340139965698343327516910027567959677901171110100777821519617938455074169156039816683939720670455068356441033393213227480665847141229061088023354620516782463619106361267016471293440023076113100144459168852771904395093928137286726053824339303661432629173630080192564224289084270963455307669022155260165165990824144812497000801917092105209140006838106238209096997257686195740440750853111352694978299605935022785383023529297351493992448700380247670775058138001672704334771779910695317855136685829765660559597942665582541220969779129265899140381096624612461798271937693724631178524309491467742646123063217162772476652000157546288721273689169893312484311145460693540187654523775974645612687299174042468311689326608888709454761637154599952045364944468222518901448776717627297403351742027430827030944600993601658199747472159283206854234259085541493386377854757512390067350626352615071284259329596516396971635693138968708177712839516684338841790717710931888096152325267190634710151413044526542889653041416308325159642479951829858327551021922025326786114731733316529657433496772876571084969709593778054277487709228066207870836200039842257818768100556926708057091260839104239377963015707565314614994454198301166201794200130872866365724581219116101739057872114006040348322266235732804671646636943872010297084479492380936994700497366397184856663727466257484149657217606815745181359897287149721635515635005978639854495011334342561651360250881907799350907052442970081333800202397003362992612789177967738017536855416950464619509126900030193188829891126439593512615719663792990203058508847753183603931191374853987075865496971599504848931958179247689959294020811672992615930616098875091208481957674247027337817610235353645461135763707270089412139096914432446973551389653262189785411929905549473762865500514319192125811001820104730589599947471766146728717944662747690374789001975391912915280638358954452331613527969293447520174870809170781793831967750974711813574446323407425110988441608440349902539863029066767582594485202874696826803601974239288941243398063918688858880235528686807580666608303116642679629442901790938987703457080962370199082696776819170210754317861102288872469954608003834392700231575886387982875521576944811687127704002629947047780306334229472147174913995334693331505298579090367440951927370536871878588116363848261510641490713183711861944643869888405758835220055201086961701648852109631553675088867642221060395574674951013273242099403064354853709692745305762895568672827192579024471658497080311299308067164043480999907994942027465500763923638218280929961814809571130302623118076711018827767987411983910037608279639350308249949934202072002213931091186534990875613901761816673276415847054856010504770501766540194180974095880361853828823007647120625715281837649969431921426568338945608877364189827286497228135408808341899099878557006418264684468968383599918037251347590869756822324109351156737160266576689210128966707810886675411538367098890076361173864717924542419093074863968719099572572691596526696951403088148248594472945426582325744534538157176951291368869471047085507256213488727644728292412693131265570411050650010144071298046349753853840776081618817490845968274575656577963178190278436305055089186004204368485712910238876181269333979507994717799821883787753052110489943298337734563865688379018983051442493422441860974326295689413615324393008446375726585342611603919751298821061256302638202767994090582811622375393334304964087822013990234562653275719237587390045851915003135854395230363945190406403237318820051290279988123129336785209782367402592450106735471160216352866691768153324473300108059645834518174922008436547747008003636059935939055249581429428051245483326345780048539053569740169614223229681579467390832722438818685177977499108494900707797837137021211470833177609233267925941637900105412539405116535598449595979520701034287246525357354760146961254435519797099706157571182643875448679483226704045384206107725796991881943780381265803630654202260815820305556546101870997601698539578954360473946545504249752211746614577937150642140019543231407463062934640593661774988401969174407701953160145883262105840291893227335027060232475312150744620223824374007563090319679934394417250843947008874800314195814509591710495654606792776911680590451211650723561433329471492243854591219733139844455967274560698357259815405876956438278533503593621490837031106646564394647968802781619773703650721687851436651352849097889992613647829552573062979047507654557391048144705217696074682173552068300747761776503789824260241058740390071544254746376973273110105243049267956411397635367552894582773075754079340263772061787200769323432149315034023888782596251894670140752669812315651063933392407708128704263331614573820026808271646263786417527852430958914484292536973775953120188562501257666699275637712374001864906497318559484327941601375233716018808623864348592588500491696827302633446885429062893738653068717215172124962558693466579033654867438826772163032617851259435888654008599813025561401715067497905213214683087275392269038407664488013627158107504375269867867582819811718628645671821998401074191351446748096103559784304530385782554077783755624574869863414899931127884822553402224656606192327527428938758007889016387360357444145768319289275105375633321986861056141129125965208020935127433661031392630752730554675149286943694871596866448785867976728419704211699494565602061591205707031135335380702875044672584020103079023686232499380741133340674874054313002296749861220430301353215345030119048655902223049861566503351788308350724066332764363831974466885551798187118093103272400463376355906658880268169343069461909186922387196163078374062421462761477438097756236003628213886610016893419496063612011869675531534678056254981090382055917985936727827746331141215152389418384957896065538657292533656583799973950867544809392224355314198657135116834464127637373100257399697394971029167689518990347300839094905931258170067086550562154806918664851163335167657323941047354515976447063652124235030548310771859008350518879944767437171590998460677898065413393525490153441174991860657703047525669542006060978615387596853826107051971020892926289678495794919457150434323150985623606604655915215597630447250871255596764316733580131636702022874782712188433004303408665093627716799191112629824584287724565920464017821276838794693834335656569190737053320688289428336711280902459870818793924637827753543757349075989956680090481644646550403635818866272678708523514123916019995752617741984397818058622677081583835538414117987233032039627347263675144684158189200854384113304566342560098364981588163876167231037694942700537670179860605661338905881073202432191139441522536673675146362719614750774426163193428468820880702275629187974026145632343310827250735968448708226379040625114852897894936055207833899305429630726086390632122545424288312153097784318031114039649333963910047987627205859829165298856574485258793073164636028715488095414992059896151198278799746054037560488123870119976465042940203634690959400924807971288240857482513266593390474049582175693387555825701590128435203943193708839440203124423517051044495482091537506428727314213585865966851580883431547871295903709635846240949037098676162278891584119809915656809513695379878204154486215888723286188182573749911450604312757858609322299924213743425927221169537422212958736042353238820311719072490806131973577438676257062354682168457645599786052807236802151231828086180172775156162453021773636683171261910243453783949373403622550962030743965705887183548268387104235134583932712955422584978555095784808558856744121304202893527340173601692605237100993689529413488935502100420759660778393217550402822122893014099778547935538524527948822267824892300463969170735685460460853705326759273104854870859625799205534691212303154340269512110812026125711654785780016544930545492528060304885248392838685280038652417765609315878249072070621898243441823616686521103170170917186427017307467294468932976115034748072557435119228348126350780571665499901529046425080664824323892307314548141187599652309909605480076998424641836958193936247684203150482386763138066826452769389921605864605686142583995755418554199103762203470651024146415273139847995763194867959400279185468222011589108739320158724388293723505084848579383428050015695333711369599639330624299609763995792183243146471782969790078688579304734305345696368722065243187549985172869238052324817364052334624429694420723873542401158373869368478116692527540126936448776027060286048903953710457523214314776712588750495124537341290574571577580023543797748760516076759784423312687372190416402806126907483139328363271954249582314600078978180893115991218534304872352801354498673855602220493804280597444184271587566397134211598993601172877047373770240477564489739956666361922981603928642607034211453270856613290693317168828704033118615240710497218267652710307958001620969676510901882457103274168707367160403393672475085593667322419665441482126947532344877109305493270511370455165869390847688726202816811299105018893090575685386321975849095176930078355001024001025727121194902302950935059666777886387652324228115667397813218301912635796879150684270973801294122793510047051434528338955301606298037394838330620455306266254556768444000496283439040690990570155462526353403361722120657406874341597853262823800705588772150161566382887590289726795008188675058079245848482353903216546376143298972563007997419815839519491007468797742550837749747944598309710570149974204947716200193862934755567654550113844781984254929119651387530396886828817250459813422918596037791035826852794920596082900845071126731261133913875705353641089666812660301274971635338010671773898719364294205836866488671827177756028670299759461384658669906918601777044115487279041933657121024781465121997315020322869667686915209892937482191726320918041004944365919310716324757776428768101208058124791046718264268709145419843514414398600888697123020687946803899804020523242338565883744646633207284042702358223185011211407661273665732786405863258953168897355453966624231157676586085377944508639820365377028075125818833116790548457604338698015271304034184608870967082475165899642579249363246023737741636901235016402136249151487675110405339285516577845373063061407365765537310216993875895479525195924135052258019776621761492428957713438501131341490047740303543669507904729144231660112184473098211938404375267380853699688649288259916211308022758657132400253212618369579232421518963868799913337454492901614722453163728211249403632187967614028987196645686764509642341509013964395535463912584417742768030405864109420853781654332090467797807802533319547915203973736117262361885036941113056199906567127004827214931376489111679264171275363909846639515397846671262577553636978673581352860765799509796988626567021843456047474062286278635013110617778402701640866349657297905684196881049754965359854515549711886436207840286611337536796988909861469912750846695011399369575460658712646030491363282422736531652400793592307422883451274349832694267100058111337045896655542820721706239248877068560720700899280057104207403713447759753641861794175218942883081744852464843317520013790285353218767133829043618205930716282020501294045663447634719266774424162515443181690941017962607556900783796434841771206893714033379453031076909308123433746089508357333451716768999915137933870768838308916716300179446718042148532138676534249826036323780757007684335713616426659625944391014645772822516525727581397934111733721559933277476436885341362405898315122915000431622060410906363549030814614954243487045262948889558267414538616919504564413435751230055259920645079784182158675624080860918052447484518864665498700447638863639057529859136077844952904856954037763781907091970532822921242194423305158841077350185154291705901306840556939987753255301105755164277015031274507768823978743453385783097658926718039377701797867655887081508082773572160074449459469960255680737355213338596759330877384228869850625568224955455250968967738878925959960111250108756223658611299209309118281759749199675879591119617559526959061632014471116379756185805739657765917095866383062736928661276433239655294087660734159023750871636274322002312686439736132803267377708020580011513652903352190950625486955575349779152307729610622807952515133645924768768443756504905700375994212644461179805028955238644245470741590513435187271122264218280520434923153568671464636147798840795587642922115882022132675076090729194343728142012036042683384185005777899361178969228782407645761834167946963720580624052585911909829295696425190238897679614886585657107779265992475610613424451821366501792201532783939312620818370877146119661557074848630012254018027696218697016325775680749754929402350676787833240068114425178609070834866005101235892059429235152767008039518630538585326249388436931171168634722746410582299622520171382252943469217934001870734703365176700885638602080897260203222749998006947427942442942260501649101868468388852104017248051532529927784648515076345285919331469462318987667350558137724424268687691708002174283730289558454980373249929231382133086127977063306893216468882136208875006289413043448635030434798648417177492399677518753839762441151390066231953405757817097735427797374606639704794731102466536276939283289500526823123123999279072460789973247865655713974288957686397775934267831331058306611594165428656853441100311006822145473184388206544430376528679624132875442021999465150085205165897161786808146481264040321783234367947287354250496358444089480493183254472171820437822359169847979835954026500989856377083030473766068007089403780361208184435100002629240777538943642138848445348551292911546229521063004125192147461260653450601729367973527468386036753427684098538415667643680816173169716488261822482874845082440223767349174949974223461309550311843894130567397230657899790568389543462358528013232151614257863364101994866249040517661270256820150453967217665679709720214418589851322169661165625622541791607505929775400631950057744250939679951021786559056972835500436435734335476807185758643322296401311044357049544136699058299080710263903368933198813299069877707494356384788598523773417989699227940671576465293775441606013442693154021112658857640220618961533092992880555423749381779492373972217660491888333518335035219363480216574360634888045274071832076505793073003473320106153482018620344157120641776085181726833491330737906793092886081982885217007185860532252353458967872608561061742473170090746703152133557178829097849266374663385280980240376802795950624151581013178697946970291236083727580664251205630379694154292734936926614916849945236954674380592310917455030380715526108345878406142078452330120085295925020214377714909214381388741674315389917743936205805961195485356091360133442157820095465276505573609976159428959633173526810376950513998150616959613863031100618867501658248859396992700865779688819716787946190178307447107687847525567485685911878923009498392437237186632991947771248434170910748079737608279623129991247504727679632756733501146660132501590825707756786380391610633205644407692345456214256603667896896274661539831696392428741583394074516233950988279279914003000090353836801456905081927508476453704842951581678215030097046444427635276458760349976648894972078638404596509894387196226062210845382320552093172049472559396347849937952069222615477294809059808656262094813027161066962847798198858842861751370283880787153195085684176220304546474259584023251912620134545701866627039206037875239727678158903925853093440438392981639964709985253362055380884365064399938354724472094493857189815253701064390293715484028888003510861992231787524662035477178491651531681229367197854706599881893403980422917920528522285806143700907958748097338644373229263346053023327074949815135786100821597633409173452492950977986791031876000792523380177740799456521019298631314641629274814732320154246892934460922077054245645302010386900135301367909802894198870043497219673255427336204416392181947047667775225960519179295585940252731494063082962541678568395438025774354683497448468242082027812302828870862228473990544040535816723329381650006983099301721582786924137912083116122743818127344632944622223782269575159968131785408693093394895522150115897980384717267712892606290435050144809845680993082052201239831517377763612926314468245256834784278710560363139884311392416127599504622799783994687444097975075528595149579927462647040437698693273389231158338894295941087175677510742468515438161543035659339722944837261130145077655460418573318405125037592829531915506294406496547443721123693471343733414226802663468203511134101951291510043226295103357554227136597256432334070062116388916221391159194221755401006247130848265197305414469732488349791927548339625590245603401641048651203729470425440725144762439132600765325739058821521828923052588600940315400918476606831922913939338984176325814237937354036863986387401546544006500494073563578070159400025730901347862168117439622622427657158239309555601569366518132739290206910719413268810299395903890255968806528234277239749726452153946719742281053558974663442490100622162837418382917270966613516185924106070799314949275052098381755713740949893223536052485566207965893047046435321092742257091756416151981487879218020624720228426915365042194905631224882723879867024180930506475408780264970640046816070497416534384409308225047142130948542167460184149368165692879681544177265765241644938770615949892249346864079836329356087273376319363696641539988642657161931040600967424565293068278017870167606712635177745722639624725357928108379151591734719991931744584372417498734573923660992584869385555868557388102859990900039977719174612999392040751197780966691761625885247981192075015126477373067561770831041686501974715477577453002470565633769195509281634588511585927021959221340008463285211757528882124777580938004399810532550768976344756117005454879558916402875409476265822508868111494145862656044121920628029142071647584636667280118351133375467279128484392173735422158042353034549954785519454404658467314973322071052627644500525225397993354307335572272652616030568570083529414158363695906860171301221409255162724719107247619979607485653528101629198812075231094061734372422625729171979107806892249405505451027212098546866477901067072960574877190759888359402415962752910029647989692956019192414680222058811398486885665898316000385375328600762848186967079589558930687846171656407660542931656033227853743310759926289851897360214201642976693141886488509246038511862322654617791203748597556941493514079508601889974109145688645232712141120026977707662777746651227097043597405428055590550505544797249949866530173934025203005822880950728722830828973212823369619964234343722207860426663691006752840642070522511328967150447343996687031713652897327872981301051842671977643974538234299445456963353176509454908611784533590540665663877905270031256304927825436392595911909822020365434151240450549177288155586371143727816327666242594973287041548678710101065832086087853106168672443257407368249814908659035408382015492886745660317508796534193153184316982047975842105371973368756672323501150193747011367899901496030614165158956626712361122077796258466083832930973985239033716458003279952122878054468434204535533011725848541035312823161541116368674798676732035531383093627408041315378687010057408956203220361912674475984585751521299660291938096099521292945123389927290813239113073776429010268916012822131387631599117382096680108738866222822905013445517779949154062733716966750412119632976803493006557517023747210870171796304132416726290530030330214096164994538662429857175465345253447195550907273042837922006495425273760041630276454834344706035752826823738175217427250856251140035549891093127799422348995593167228389840512925833154643704480758263876924349093256357006037544550129993104186981948761496707445941806035120329167345269679274458119706180729717902607235337930315001193933440661483396447340534659755584199858264649994426322334735194232292369261601842009750478517964092371541145667646148583567879514074593095072493388698368589729511776351909710930418265514226894681211825231288143786612336760301571840499598083620912602168504644959799130452259979575938170804344553633160818608867676583793149803317588278571411124798015682999825336559987725729902003794417810763706442218230924465179657448218306705792194489622945838423486327369458072341485310487021232859618784440629347027919740168050808774569164499057537970552669659155505107168818803639922917348093691788294694885994053444272690185738987879007787779550256126696913900543601163256797920159790420750996982192317087162305492695309536137000633733313269993527839852824749298770100926174411771342486540046533426309274184558314575000923721110237969287284171191744450339761542041211798711763187752738994752491251055767226135889768277135261129516188604468990876510372788619959392266692455660941575835131994139714416584688292384347401439694139256335182309991288744434128869830016136596552247202020567338391342382449503409792404038166956580453746861156472932607374663717604866299936340462799516427109433117083505065194686994832195509002502478669384780191528186159276706822905539018977080719333811835877285553761521131596249197572145756123042041999685155375784983959039855871243578567778398985530418913235027035276850242859069854276815308040162137156109555394377385198575643258144091460826676362599218494246867690895738069683905498993438085347792384820821050270170879690203041684590904665203840765938826196696195192518012245698783482123260945278271246417290619205187113913314120302028145662227398531960115594320648973761161251390496663717409844641877133911831173083858553075115654229740286886066354547625936328199128554206387887627761320663467312540952994655520398705985642416538113123639363697312692355069170382661386506951927967207425680422910713364988359474554213721400557109169899814346647013228022229570447587901170002324453573025113527454626775381143581458279538902185580078826605597442544931658130098626833621179252642693914898951106548313695500188867417041151654385834691899009038954639729360317416279388328046706808349268957299535633413119750462105825482626577230319571255860665942078363467684966657728725499828279398693837804591520498786431064223595531408424633264799841772857976478392264562756031584996905887804651843629931099821389781446959927175348893081325004721851385125232967231478441844577952420268605466714903452183605347683172947502504951914262092025517663057260985158669504559732336701013367046321661869072232367783568036478912535370082720266236241353007395275387529053298426658171300692895387524102459213116339950235895811499390501897487421814124915800669093193652991656966063667928041320039305535481640499207770894847242075938657271727114896116355619226088115497100722127236009346556259722194155327678303779318946444281864568694728389416755115368875674655112414503361065255554804096401270765294585828880017113167970879989315842541299557311962904233020873371253417209296524867329389448386969197350678086824220578582176219011796447735165263640136744614950111218500025848300744956133966647976284671962698960346550729845018629370203205629387733281268891822944546303060128987954231125076339225072691418696918944697233417442019083688619351165792723050058402330944692849353213668999108932888471044391284590727726541557633929107819330239749165612958486073887792547993752087722403827288791731823079567963970766548612026694292351300664467337526502437459245665400719347378037422789121460716324928237517504504365194394802131945328025828949213121156414351121281877840380909577837398533222360339968048243096638761807493178031241590838135423881095102163989799916425948213826892540530118835502690581446787872439172654941820835226236384208651358685776687990415032617804899004033051725532163405481586908541828867068540724859722806116518778980145434171543241996194197711094715068245338829182399671992269305384471145464557407001524147462450887345677113538305554785994049839582595343927527493867286253239297899073044983962159294667601663596598010468751063631167541517322327387135268346741950595795715340115680321639485660233471819016899912355204744958548651030882310485923255066973733584540452715286813117230806921795698802000177578138756931536518467278179388805215170101334443491368058253860910304806439129801782210221454983527303078729034644308642893399546081780652532672810839894144185642912920457774336422752593854053869831367826927801599464578394475486843043851258401408276006717488572838889225064087430374419437440404889224142798516270627130039043048002128687112682866322268538903990151411857932918397374940016324054210563470562874572747092140224545000075928553567103604204583131342517275493096261600734788122811266424622655260115675623044719884768912616827951296517381791541455930296453681284038798255306494361378170279911395748226535891133382802370038470069082464323395598886211962249579729404165305860492374800000792529889432105867088401313747060188279352189786943352641525881322557950621214682248895407357381504377270492731208978725240696162269602268109420183601828027940215259676611427280954027703066222553315533678567636470415920766497350795663157748100439023658467050632990447884227919277960544552244088678867758775358755114839169834364978930813798969464645742093459449038749099785559887677529254006751654671685628490203135543952379249067592849945609218851366698843999962646466804100678684417915972079914345550100445279919904901175291140806357173304924077315047399160343086161107493198238121302935654185398214978490106732054936749553989815972724863815260672254982498332383346535299688019041742887939507234411197363928352863769300879144586992139418955070263045504954618214486118468458364699637488391755172509689515998953365133856946002897490476110047495351726369520892019604027658777937870518111178906190838245086552884528094520605818071962526615754825423093787516868022248777998727324195300206431042475149720823270568723400121144769926324877390834606364349559723654670321075885945176251220680071201861667556429265927968873763162682619737668840627031835096537496176139437875280416302924574589622996076783784319290836659812683790635597430554797173639243565747844215845783491512854348749366661940948381969228988991397824934430121881024810773181193625065199319512182842608166142206346165140271259417966606795990862163767036004093027846381072067628679042518810939326193191404050863477877843575519858406541303050412139405614706423234621830844842555689376823427081874649738110847680688237636425347059791974951680143207666721073438725986575069117476329268867423021377340746710691269423069893691397242536399418771655557389711683055430687776585551499309984458099126916002151108959766114621371392916266341748180469712617709480502257817033747002181632523737205156627608894276807608031606098139297247198477839099906511114125442119109618306291376630329555550148710428518262236644055088923584154128876231432032387029101604768844395716501047542189812047454439594613137972688182803641085467834920847961064614369337814031812536340074326867472554619172604994413810325965335170342642829817061312895342447165719755986129430996318071501580940937752842135742303038409417494248225309355456192231647318764828759471825816195526276929786008144530648697553975149435749057389231892258153284265346846998914895110284838777444344864832441090874719587273379212073007053589672913386550032479594822632713122610600011295434328234408443834314405174476688283609195035988626724362226702132173041529960092436825058314225143603170672519286463207007430222506627030554652392612976649182946041292769107933187818139804964332476404052462014922412940860633107152434918281118092451698000383350144241428720615065751808624916335795653569678174259360680592248982252747949897155440794144931421499915797845348118928176436432811533852547462028614992933537636192406771518233552786614427619928932579239227191949422795434092272930245692056222394490240408675345534561164875886879646714808465746133448304457633439796127398130846984076356612176738859493973067501658452472755995570874786096284822081314180552471601137446097924712058411221692025418529556517727901239300324209091008654876147974082911053844371515788126234504173708138120656348845744596966069010498966082947862506564169113113472607008426292197626650904687710476677281359422797648289611169720996201121877282850078581372433805268188204657911741226452559259829503290388432088886529677453198810966166662989379413521190414076775614533196011866258307707156823117512598410115887384544112082506579938921787013501216066519240590346330184953182459143861491891327078072471116742210675785169145262264299761679913627386261382619696224011239781812988231952340513020468527172686844166109436272518426660156137648067746249656339417663241204992724889684346790997055586873117323800018552511309567478815512332037966316688352853334991379912462892383402751674109252616857174990290807792081938148473478101193571327481070131569014716848134361662151446061715549546437094459619831503924504026703822155403169265593783906054594004801706602948640867449755894564755035874317768508150321728983551463566609779409749979404869573653192481426546302695236628186390206838622525655702603313038666873667433221297113496230854406431194079154971320476844081192000621104376686345359067593039462760101916995478462920969891183172375014608361138918569940250872679211057171862974306036898730009694863893046436731344572700980858356700623006457876125861859603328418061362054699630706868478338624300608631250551178934332861469779290919773468706562851025231497164000434995855144621558157033612194778374601068803603324381170257238725535957917552538885647615178980598271145997941361535689770297117898143764274407973117159031244165134595750348094696031045873131558141296271117694634011873283107474628491677657094757300000619964050934581924415244188937661427963485479809628719763578807987945827678613990821555424793207308883638267858344204508767300949837176735984041139632004659592702151956439560786803818678985694446439067300378427176255078677827393590897598764763451941292600408698878646590875145292737516261927577416546203486286948344305507731672752767208251058198270541355518584625973446282079824836973387301045308978001948769830136981121580821103269209513841954148814982408869677822474049554749794204986181001815519406356716506980645492124184448974836678447475818697042307943825213799130106101462943279019396832245669866521493183697622064801882676752808095774795864024635781593978746782489859060462656832838151584764430116208324949564608360562306777119632841382443996298111193618234544840046702499702754832357990104425093872090634079399536006799593922751347209461498874997584702088933490892347061551821027176968960966929332131313322876915595125033362188273369366447689720524431529409765132973906771959025583652838766530105235684228571460719078017394801703977754974547231364371284702890897695911509097307205980532464594881638820372857763096453789719204270489725682075846020170230428382257603126689773918652990806216511069300152784464294371426925485635661064978925145351468707884751479527283469899747483197296796638987556181254863897892460422418859547686281787248779902364393042212695694363467660659711849392909159307250773338039060031442142804444015723136475697864573910157594077277406866708872228204251945300508784183566742534980501354503810490349892882300492481606320305565151150983719661774963647115278078856786902819414814308833394255623311893028784781312055813167837413813879701281697865548399319143971727511968223095790848050893572957870472712056586458695637989188371073105605074031922963636370630479256401044871481666369071232260786936012139936227501068449796000092816941400502980921932414821728826394846838020171001731744164196200879969109457017565991656715601567021793465316307821354992660349368072095682724761746000823338065742958962300157586656605759247459721055760818498568704813431261844938938738271337793125204628684444254624529069194505509760720914138771737293934450646707168519509644931625431372855203909394011064260447212626238350817418754441923387574116515972239200286518425678636414853528942898584439099301470413546414242624641604951960110924753822483787333385384431414114884948598511469562182284481284790665832717702581642328592995543295986560370193521765949404912032046107353974035596201372415151844349836620178313411969132144175785680357864882947591046513189086808838961291577958757209527689370804129632753160033673903093739802206853952851443291608316109690322254947497463139513635027933887957772280076146101665277440682008944603858488816433658458881269035418838147596784652777598635317589645510161956630506003322897939632780929592828175321704756325727857167940122799333694051652096565435678393086670400745152086959057296076578708783532652755914960073007360518966031453898186164232657122448960530784050774752297382263946216011467634725444749380968334503639857283680877478823838454721243326818535364180785054903867002781847674873268591835392370022368899544802556636129283744857515298670037782066933729824785658546682870380550124599018439736269269468926199145652546963758104500398098851208852909846520940248389766137066710136747172356517700539303427488717075267960014672408445470916770338739673950367144934174663406103838684764560193869997977301411434922842957867159061187617124484141627555355934620429694978495332210534232202226275839679297444358541712386617163694643908535502462561752925102076451711832905285082129952048641520234447079813001467699485663516229628790850517654538504371696170489022730636379873075597744244301354368166515160627274380877733773573195790209454434674974784655925351217805355576790852808510873882216187737015836618442515639230055857881085871633095583521954920931250425812754311576419308083248092325018610534083719244697503151756770233363908349459397710791031074424641758026778289601704544405497945137091412692393828241813141312705793947577136036442689876814002993181230894269211878836878828839839920895471747456566099509533376693636339182324273725819890703227139767744778519026660056116780816564004466556848106894139718466352493492403915567478608371154619263915641654201905108749066128012912238172552214290647829093516812789066224020640862052862651387517135472851433123033525734245224214354182324149866249163139042844544228758219753398945220515235923820831212927579677256310060013550131202824770388747755541710721356535100486425284470717257916226889250053476795754546608830174422652490748368215517191179351723269197283024927781464617831564068097577555808851702648789558838586061996599737076787772397390796024046412942652674957324256523653579839400123517030989247311023081033969340153152139705167901928581442442442147900314395974578511307547027936698289937978261046027495249465637628756619647612245493104686946265120976733647407862353784245701505539172825956042389365203384026187518645504170111715335474002430122797321443754670550992140106298199732311730305282772703945228757316372837498077955048394687696054787651503415315150745504320906488237040954152735566534574326735025024458780845241589761208940813529282098760496594840022303895345555841711868013776577049107061590635817243350284923907175333992552353986751861321370130085231158515948270308303646892136617538212141290811117660120795034810714782346431896244671245878874779852537931264491485367168393816473460417750092541662195116891180162588006604062032083688314846297936218452918441739706525353276760076438422498373023073198049310069432252579230108785224287115807009944543205961703301283763288071301880900854431702630627285453936082113682691421433775422542712357013571433905443954498430271280714463448556333453149038834609611052260031267836000758722451391204010068923465094324989409120890602925434262542688837697905124765511566690566224360198557535301426377929689274016832458690061037537611170828165375982749247840906336328226143371238169360778778489856604247274265745008982369066948665658013700571707063069373069802446065717348025817531237930900178913783617898108205664821463481277062169154947106024661971991654322833552506299220087861494687531565644951669187136137663162620989446388119274885104205636666538791164990642225425600838082933793085838226659162660150448890474240796292439300119307158896449420623531147483910452451494578423440650601460218720161620387667035481231292346879771058466632804531986913929608553067478524932422973714293429459436137646256242528879130915511271516996773834488037650176131756031122945331613606540561021361495113387878201669721814113910496981047986868981807722504837102575535416027161175041260560032325712100966790129235135125051939610205229441107597074879386244670758437154203278888708487682104769176129489556905351741402273909939412010393049921312603042345093928696908898609412850149493501062578685810426859402477245413963430087536774316436484723971027101556498940389872199985268499818305163917982811164279167166137621800475297388616195641725278665028664228006059160981406182858974637947522231120319860686012056349542189908258275110906027216002812117016792632313882875819484851923208106715080061306224928082096385865749393903607606253145994088083832368786273856150219557473369706623093319891717303431439327192675896706865444368882704410854294507012296757004341572627819049110604629629467330217208022007108452742269566443749562122125590732510888639238976678879516037367275658844598327919261976890480746176380286524658431944246031567263433088109664629970914726220275924984793608934993309673426317168639357308307393664009571709048214549167402879661730053157074840208303737793076920905052417558718324983325508151403470090369245761368494308204314678543918502984067292937697337077120949581797745491257179839015566763256998582470958685825793148259040047945376717493466337454837589063607553868598789404544576120585654232968302437381504602033114111907934514818124458051496248907093555402913080999073994084366430116413206853328774376484233069642065452592333151958598547075671022878574297493769582457936302585877001233007793302317677631719418136772416943135550926738526248884920535559579400878420532879781504021507746593008475358908032423509185671872921813846283343077276129338445623434061517087335862616637811410988068657476806915624679049574411190168206202509427720036591140280435607328431044337255271712409626171687730425840891081964158040498260976782659877595095499479527133420648151773652073501875173575029349541584767495582685863746543668632517230607125835415391037569163072807536797382551161990482308859620080614900297384772853850531921511502738172082824801152461313051958636086479633497368720242873281985718407795349935553374792680063029371572789304127752686163862333012138781309041398068319090602506511039514860581545761229114187173003458097593764771552173038457677913827464481625760026291994982715686688441511174785356306758135305950190182408382983221589396477559037712973807208695099594973124108823424984362970422828383552158396920124370666599850456165501294511889628662088738891955520002287747474704120724564067823194073143424456486592549766640752125299763467694502390565747554164047723985138096214854981042807526563865735042327708477016488582688100607394953853790417301780325620807705755730364548264958951624391435351818318517687149675888752033836017738007483766075122626699752207027362480548432630434758425234021870595735059337269165490159002037048971377875713650969273619083544959970402200361056556672817267065397955559059280410239969030439983595329672513359787000638212379400320814302285837087782278318434062071543932193705912223177105965599607213206762625280401491063982054332609280734074937114389757617798960128137352749272341798403940754795488400689559333315980630761514350072181336607747700768736240372039138100462928270394777956968909015808134158956745268209682993281693474588920101632740123672089300445199795335907058383037454884732503889046139249335670429314002931291339182468610328430662496218517998043007707496851256842025001055203628547563582372937387913424403335238008042625788002355665398080696142234728252812881148273688153847160941282150620578637466090101686278622526177843909349961386791727392922531662212388394153277044183868326070026955147947395205647331206977507969985214550503222893858425013959868240495339611433395607171698437352181232363016775584034112172751015184139958845384071110940777213107482312205134839984759615720923788515938004852955322293446825269283781560138787205478465751675235817302258843848916531945543155541736771316025718118476395854341635737955348383663826023741465328515704578311849342872868638208388038354385818462196389338115778715405756381729646022953718188503185720280967180502514107141731564101760880962717985597746757047504617771508938995094106763466476251910112073549553570463400517834625627043056461282037333286103728171134191279956282567358264011641861745105101394768316868810647866941622570817093429228529934217934290522029374111422458981001222665319207369537770732968460954783432037992196563966535309157325804627607190925932270632296106468534841240557635226511696217150306752775847291614295096103327207990003952929590199923289442746280127874493026435190323542510334484664863912918615669499853544015034004257264308579149882584321910799244713367208438535222479142988195760421888831700445757407789005327589357231566991894637434454915117838660791264375076298298455556908313449019565024657337148055201081606691217328173688504536586775715867581295956133294948646577191156352616092622322421864575649306353031843439683509641701992275202543421096967733237933181895700257542175296413106398677129275149779431089236955882965694921009087947625419693501722808646746675606491360935177110036776783903036696377794298328685287831859147405427118312475220917263408746137262811289492254220211387056899943829297547736194520597527055923333793336550657912250679314332077475908289500159356437148654900492260100840927093149611914774453518946317879620643593180997389472995456143282390532022335311376405888663227838734194848549781899427610372939010597094827132223230296381007009022170280361315263291074966950326027751576951453515678361981915690417061643837048557830586914570594463311661535247193533506168371995913388082339527742727370458942663425759821938994598021412154836744223102532172968456117886946635168984445231715089185688015836094752492727553357579145677919559640167414360788657736736762614103081776750940525453554093708390395326481241961515372461668930902230194881484501622866530669621819189017595657840388195069604131646733714036359983332704229615227745584699764216355663904667946400227467859875212588813228059263192916085623374146279190504657854295617299476524498952510344428156115091398283882401652129805138368375919516791323802276082457628616821967584789179181480274674152334805886258641051919236596859896429532966675790984587969368978829655275729256097209614618387555777477312986549637762448280454299776085687247077473109517987313781731738640937297937195945947354832123703990740271426945456800699990643958329365304815964113303055242991339255066134907223293067805215764956449600250953820784287671350602224918102045365216276156320891018672198870010221454768642072994979581370530674045966685869664871035377451932800263315133881460588438824895979041206688305238678073157597155742139713444324691061341040977159226188758217611388836283634389954893470358907711924067943560875467231944807115088957407109101031024629349854667132645188710416501491975940905049425912829698450619871561399437262546930417365545851639063969159513126797853481459372990646279395970002672681511025330244474453609835545477306920698658509394035074716678819569682198084742352492307897787967662163063320352086558653390153512016835259036000451887955506289958673937398735232179388820549877360064912345249932551079508175942081623629635320861605644861677315000107556757994763205704350133199292620378716074732598286706405081949404620969303016269198469564951419290771470440774352500952878198785401687683067346170486755108602567469865604861041229695407718954670650008083858817792703825370542750442614903195134120706541723441782996239719999436162272868556211795196745948442018448426431136187264846060867353054205848168394777063927482987603092963170314775788334294493849751238180498754922224030534220004292574134485001164282863467323382242385911062465786038381935883871193644713015890465425985514524791213426348724051650249082638394523294849611975148390233764496471901735950715786407038593101582596444678733061822921550416104577596342497845929759496431917824304166584979847456999840204617667365115699847537120635034325133680185415714831204725557019288716211252888744438328133001851963237790078001985144762319112936867030230771890917781563170397306359091335018014308598650740810943564388445856476564043101427039833685917338455652436654268944617682443736008157270394600166807855908568177337655202833393885179287379390857632309095836294398964778131509234113199872380260394381250844690763738339425056622705392295169486045804395389590368143875559830417187772321024192087948558127378870533546864525961423494683068192579996963419840981188951726803059006026753154875504813083098189052713528929477314340687244304023051033330238795846260642000729057521822182865582637725370326944343502133721420949952731361016188143729770690787299719701108619047769598929358215822771079215724556019635932660119747124663480076028882767537006948189500364542329906962299015521427849712254647997581473097633789135063357342743278173465122162202728766892097586714821778797794059585194248637295015145644636468732577558276805871535839670382375509331759952573893324201541332731357519692434697257671904876311662671380006455614111754250715954044351980263473861126388137844389137395302899964223162740474851772119694464051480817008324095729927842884386580573367347545760834254351750835355457883939678545376921666479431140721211108063499228284607490829680704620339581969296753582539029468330627766144341324912244182678596867900977916479339700306275830248360608764918169430274948050428210762564968977180450947557055384893724403360879976689311722999328189735577004384485607533251749202080314038861518923405634166166485240264036164928472219108340975716860075133035784735117755177099698680583526807852466114787868958678625315656864291827705168782309609551958867292650997968806443246569992380322567230308620481085437028896805620701431338985276711889888299284677543929804861868909092707420565050650420776246174778195291826687381530582635644968512578015713824921354358130987173103488114468080948436289927362400384620516843581624484647620669922963664508354081488230025357197881838347781993368590811994855887159391669275509127044030357508489581485854755998666446947359032222415534510220713951319930820731439693913311345441638071605306097436670427082323168324700937659200946674949139942145286547967782883744314596169037546303209247592611979077783043522547367868787138379064677574670808396158073485224578262351725437348201607006677203123804557970361016845118065997048267568175635245021227594825673090947100703557656594724663998154766595282908780060360755248717329183008385415266339803429228257239849705666886441200825022765202764214553615925034921250060913808146076101684661998595634579738074333322069651492636821008469368098640944229293516248446125822831237483508087308623614667229563403965347465062260446025282942413628702577685687122450893889837328899500235882047427832197510545418115767446344403492504141292335381817827349457447021132239850564565011172312044639851004472761430785579858735103756594040580477078654052245675623876408476323102431816803898584354415620428549718083882695496146792767659672015494102421839240527846803078697969110176459280329068147408281674129446675959964123193062582311900279263290780979053447772240370922514433989632706760267068678464152743907855474417124662915588042325745594423163854985068021567428144523300748902543633904645238988396070667796006207719371946843387156357840877034245617168476943744513215920441695778813005954213074506218934894979110224128959847068133607827259836592339618603490060577856893254654154914894794565968587424556531232334223241152560083657614292224535491408143320553079584625966442619324796457021577769652925741950538595827546912783390388054848439456810822667936623112658717754293160825715136446137596508837692293721040001580644837465146464850808483804597467831522528489407193048133887151346324102948698482596774052650264209450346789515567184803700807736012440894053657147450342361596185100155069615914395949111463277919302525023331542808231633391197236173705974384177070408712533036117563694135032209555491910710320797728563160259316412719019566796495739388054559818315114759455950798997653243082202846840951086865733962946283843288214321987101042767123650175930782771638485854872372172863860553972072206622487633942570517177765506424805333819196582333639578265935356631107741709987747596681728381605613979627053664758842618649939053217090505113688122792296305627782081018118206307853280383564232285525331056151383221563249867214768986303419151553744566751883625013841469167511548171349748695068773801887589122310534323429299042679805175454552559806340791944284607821312112869736522649729289437727282650495740822776135499724008464612147327955904157750281874552285658962174176016953838711948368376597351463445020377641602417268665052402852971851688436165633924529632370610003220748042953334669297197609666707917737218905825530005602654829120084593773846459592090280258150027737948862247495610711852505468016628620899663058866647115335019842241097866301446136712579336184200641498416260320930043310753962784117339222606514526905280626977535691898870632132141948725284852357072477564154653444280648308694076132423748218321081329861395129292814102983227179609593555100638027709546922120117210352382153446457397039105818200329416402086924643649444812624412922183866143863430900178054418149257116601016830688437261838842855074381709519989560554368717996247853300710094705552616026920900051804629064753654074087697328893911019344148727228786164795674919030487757845152133798717293656919070866254371420043652074834271908957580164154188099395993246751020159097806688038291031602054917447222178582696172835639761667439011202875196375900243099113306486408299439368384447816405835296810629740261903968160559322472514131796991868409375292520956074281500439582050619560234322797663780896087327294761909892308292592601390397651195634287125192363882274791647723237744597345527626358476867732048369956591352367467658609442770809189922499574607935096491208751249673783613828003728031012284523035072949746670292925804126778053477317404605055027828094181739274792400020002734708866096004829447554832563684924509835358459822573736595247348743438268456258000408447417977134104567398075366308622432950641130707399286567330274017187441428982844749025979832069660500572862544646849207267179834361591621009209774325164421415566454141375651061043014088650804632576164187153211708614192208946412670762327052066742609234621460442874118691343395858742446857234711419610959287029870833497914008954741933475070042980874505522350987673380663052088050578345615509801954779711402707238724046778992976425265238470383724099207649662140283210755175323325871947541326590965037900376154204965820351829809873130943648680396552212943046277346181389587204151589646149824767049989165268017927503608120177844500575770227658147890474149666620954427277481566052977121952165524931999638044690348332710091571491694239154721644606558933660153188471499918573332725607117486559049584771938000149274272983014961056406727181382658146070938352300768472254633053851954993480312718455074589145669064351252439325448937402836419033880136676294065608484753714914808781127177734791466257328231250189496647799966586025156577447445794908476976862247930741730820205586928696519271874155387976342685211808192912243421299167191188165759575785245406513972210462295638971068268431556995694169676930556689131158299954917611155861206384679850218260674083365938113841822239140596728257087846971574276333180321250610518261089232117868360924811544563599680035989733569479216550810766852667283215022471334830339208735757980609244272040547090906383535795931104648266547877335663002134594768236454939242894493970468839893693838350031870490998687259330970999627307815637751275371570309699721157343944136040821709900534001853300161000201390449157838755504140319401678713191542147152079635166221866444121476981819398966250271547662382398399365959143789962908982763901853447921690355773095890933367995181429345491599569958034058340078934281021060860536563498163292251290315092632534208166859608441084333471672526208780002450163419868489308901850816851835950440104559776163116975283926024533896398866319195189453621631035247621377095180471099478091109984048280834568474933385072874269562063874631823375914557839310272502009229085813053151783486910909958022545006394138832238500117047918663948750222729985068355754875718882394203147550860468680044396815624643872224191158507393937381996568613850896745514379673691873320769320367508367889269777442192114577438531742687110780256766563409669655238457502929756345891565574459476046366461767085644572852132924461190207200015833647835906350110964332702911780947932382870466214547729006892453608474202754857297508834923941226097011897587850753898002830720161709590810096732685702140858678048835410155516498692085343339985183000773419660272019551243688384457373288279069916821693849813714580465086689785991091390214106526209650460473027131671968763328176854478694521695537245796043117108799692505825687995583350838402060932611743275232165947250603609575500694765021345519873823894635849795367661100656658042348649129967892423259728806089343368860686608226183170760225362389338413153857475852717222830495165723115084696622364042177319603226891009057317299919008233475085510356887001407402446776015558143256647527937088674627835897280240012497562910475003500328553331783422003251037695730157041240615564086665714294231334966852303618440891964641580773211534027653473867490633498311133035201512600245952756704461746526186750684653651987393097713114869082478379234259930759939214141634768706872985456551062207537415158960937115345746206273406699976934769912792240141594305495610951511242330223049791626042178935438695689416620990470100633173705993410436923826683401294147781056787489388102284307758232513466594198247968039737579218703098257412743153142983551175375966205579513756291326059307947417684689160122871112873553367594978629932910988656456305611650404855699178714262746951465020544948732759774125674872553394007844631312833635053614986073763597120104587120798726559504364009322338797468845227915258651368629557342245479391653569312135064553349673028929564644819774300452494845192583679888084319850910922213576692823184598536221820390562207578573604207434241418741691542526747900789266596416235975193192127341772124654511137950415531094127952253435725485172210253484327854281253911392800934869441122318338836508256444660916515820953999222123800615928924879235451761232235806101878097168367553838302548806525930912922981112313458626216500930295488507283219190162522538046733051695971031018996128817437149831989002719874814954763363223097764029474035383819107294887069877198164014438191657350212189306871308145835720167486356850199385923791114177181390945941122166309591380489643959249926534274852276933853372372331803298352827590151553440536204955596553837597309177414085876734460300850670298125586602899845111863534792733115084990189665511285067323966464192148692536528324557168065970884039388659601970455509381709197998658001234449950322446395299868831640514294411373719981405369602498498089793383836321359212587970708089835703452843773641666822828076234456424550853078893714486976474557104336027013092400772382971359137523271525015939996310120470792021212569504533583474779334851765697177125647847632087196481432630011420229901489671331132950267930485956467822850499180296561572664267710244744089646828397098317433989298644478507020865096272252239790026949121511652064836054439030921514802290189798100790410464085386276114969297264366504688265700555080993869577576065070929895448315544443563308309612795744776959023704797932895439243907040634178089485844382978209417456668117435186769315061464932950505463371240849157995025783919011830360363250450048234028674679137603410762911868579412644730867068723617275951720295881684386501642509584232559597791922312564359577014254888267062435923656462603179459533381617074799426679600133739578758689214445802593590454901522432555902369520044526765488791113796158275082304029819696733432670134513941723789140875294570656627215764756579552744412854935217574081227461893557402846232010744124034898179753147260414734056023972040090542204534573620485760527664257355865009029715602290908307761069801996674769055472172411526007381672981737563067023268948439531038272827033476596497296573500204195613591873374569565176803149569891658374823136192916343686120916397605698945020227379023677622272401690726778451105441733686275155895403977378148298138906297386095192050763116286609314073549990128659633136845915072169364192887425012554989385341818264384907468565985320510098999292012609708259243048512890316196306800880791109473125928771557187047187060817087473711595792359688931700901761286701205950018763411841027403780960770821095699146779925020288418639739128370399253854222519865573672317604994916273279417847412897604336064513238150068372482625491755306896287805628747435192853639620759063080566212610918906816008139586821493042237256833788037408771699802210006557268889368050028046992132597407564903265684595188985904997705429520081284971196758855340719792459794210664956609849236137981926551509964994196588493678060130491888830154322536021575304178661839612782742384674348921160145150976078053315530709148767952948176363928051996105672450734474790373442478760084414707162834902421763584845867626058967046365335203677604311701758506696452868474893617531081854946564357495393131735504327607463231830231437898236093389799011834423172521543638498921810691006412824540426824487130524593109445535004415515443789509942810392609223730119387458131884362973111468521453917576009966470533826156310164093175332767486769541849602897069828698818358193095112596522091228896558344147998505675343040673574597988284372275290181369189131849689235504536119100561655625719781585126008931579180909955017406181788216594207987321498032180274506293390638530873517828913910609672499591035961595428349380330517268000202057570490749137292990649450426326110710692285706008311214449453152007986246730139174120864187777802579201526227798519051096406201195195518972637456655604218179859388939152869683839366616865293213920074902223228808558344624084211484046904859065652734033126602652941319402505163590250732292524158928159126397340656096166193855739860185236872560288649216700222467064018233602875850421678038932831956212777937085119672897155388510994296219394550091062808796113215635673020673819858972096356074183911841735288562521096929512875172263878988824002115773359818352697627907195719362257057986610989043641928232568534474223862361755201824859388206036074048082890273663793552951789340895109988800057450387226862441213429136550289687974571941417526671919762080662802475837147092901212132151986157199490481578631358146293892486273774207525187722184195348752336401161525303564664059616749106353489416741515718947766194815371551827713144945385043474612913844297258421111457198386576481359627972223742582586535137965830131829048787880966476526842136175568168442476468933820953886106603853545393087544980822836528926999564142096033700686311834502116291722120747882346643265969844746329636894698081586522281428801646587352878659142880289738665689076701721892646857470099166409733188802113341008282473542637929250582402556659005938198426639191953199403534802644201475966418334042655787342688063532712508753943660485380149842892271623601931023196594470120542007891964284986635479762787885441182066370582923860835913701259477491846819206791210346512163165884360221044329687734371212676414497603110434833487813358596572013378300343772062383743815620048980860810921464840229438651104650313058977839402346102085057010313602976171726718508911214037492807215733836737921735505998573597755310719089731405885959755236527002618249010591652123090766161476125153195774347777366435477684677137844601195069187345984597910516102500832876534685630581545111826447623051271352750733478966207228038513424579173545483060516557508049336329894206974282342319323567935674605895097328167941315410223594223925443906734094455896265655626939279672364975360443216790462935191431013256503423696044109634818602864203472344453814463177908568108249840721907727143808412375722715513766491607158325946465839025273712980020222754288333632989569184331663203294672959173707421951364659152470557316024525580212380406412987014378045175314766743068823273702310719127766261081029163261122502782953778014340816388607982214945425378490102576165655021526300551325374295478034782206468444627120424000052864921332433645060782048299886284445969908441380122894324308499886940217841486741883225547876289777257896563517212617089757312991569659687986145293379281052606678668148226785020566226787706318170463065445645614207661850672867620273048787533645435041163096809588449125195858440537235457854131594216313486396157644454832565374181050538906249103850928977293270690122152363029225337092811933934224608221198725291464632709376466465549296286098106586961685547115746312050865796041388116930714495243051449161776764387537038031991028838970616071694466406721050775131705150717362982004959671287470291378577963156178787474572973722300816280235243493752903637555432766938201066477611463934018944207972567028400013552803074390291827332208655132809650231386344867149863210009884504176507182384981863813908826113739978020492042924496206449760759194822841294629790291215223427861784701705450678012127793736216444238107838518901779325191732871319913745792626350250470433385808197360795211674793068814742746386894764316334983460653847550859779282042568626588674602562276020886506825291791166088279392297559839158575346087372821745012317909358468234430563945223629792487032110995045263317223893995335524343544128299402378192848612505637416951778390179205369945904701919547416741512509410254440867029452912210872254496203656051137239811662623257441157288707791247007738080795937461821463678177704682396730325129285711370968255176742929608676303108736261366429481888275033383692248703412475204299631469072393716043022773155600075982240894905649813667491182356789950815830752055202759155868252415470340136816925520641874989312835541319047439962498884007261223862048732179867750455977163690247985703929725160922264679519878549054694179393261417344499279442493436532203804680043135358206429263260019431446079449239450051713905471413674429858698586749048001338385648418026553258041431573368033278625328937110334461467061456544151888807212396613435547158297721346611555977452988494788497404729739600348950341612480535659321793820019060787205634051753763682552143172599819807765389651181753195155427540726551369895210194340813237612008011048972601309056479138870589823613130250361685897537161565769861180416129449275961090356403425698831268476507465088433720432046536033922076207869284105895287596310124006186179780010551791306688778986655058830890293863393636699884972645265024598326213888648478234020719618276564909847432171976728515307923183949360526597846001124974108254031499817702788994867794481337046999493923944388622254619127608077476376296314774657343326856706806012648515993040548398160330370805033542124978671078517060357124316004971326925855843423263307973040313203280473653912972093401484744410741220827194300915534606734545734065865131498964678647685423803504261764499666494594478033453832474844855218063160564722710038270144320140919324734569410671370848846087924967843870033992152664389947350070661719955596095375217724842148685121060420031549716615209951637271830960248487328747348607342760747626883522394853527980957326871475042101039819185720250980340920210458816674754957076748830237149731762203514750510884498947755124713295625423228920820302334995938845295186815692691260616910789219533190154354967788936025667601938612358870221112714114591748184618433333920681346110543768419007078526209367262344413668612786904439341340665446646044416679321049925146136109859878688731426505941761798194671385443831069892309188005660932395543224154756930651051187272216203730105852826138720932939332035078146958006838222271767208638143348345931127210629968457628969362728934884035840429623652306013829449450556564017014642635656603605591075251337279794133434412761168079623693484090194449067392660129213394408222614724953761955060945370207271476231263602090591552468253766762650120840470452060876715005942987315923011845789877845810296113495921097789188065767124205588700277864105457525108048045234478562880388918461781975817032352288151044581162224841331855125217519873179869555538934792544425359421862232559664988618848442929076224811107119734529508685813748057628278882613975625723425097000915847040113133626304666496702530341641214783293939340273959012050724961911083108365599122244615683662411548285278302341325368938009672529146780477644095686694639687726067717291566815037433289907450965775445261777407889452236456999860018485429050221209363864139604783381928860256868634543396428638627824393027631831534965786553558135571125799054693142395815859300537709306677530590235727581227397663892502812551195579273898407969955941322536359799193213872077050013113798810742880349576032955227404942375816688818471534017168935876798889690797790972321607557413286689779063963343941911620812181377775380011014511826191300098322876127646588951422800859333945195647676501479771643434410431282418372103936118089930231003025802540986739227499669510808099263675701964654057091880136714303345487597285330015752479708250841889774863874242796868955806957963875958184782836541281202908916683986687011814047211427484422839742688011574607507174362950404208399212601648945263041043525381565749044156253910596713625323607465243317180634424419731885382325709304624303690595987665659720562362178041190776637312590720027454919670914621079388862650184387649708602630833588830683653801393278048316549812160927410117923202620530001941225314193062369986002229816863326915413445677481203983750852069087064388121617685193800637853533472545642084106284963018815171556345833009760986917916444723631094905661775069118625152149045192545483599250513272407950732195229948784324968955313834173589476693568533173162879172172392057763474075949053969021300073914835723007355652891991155238107247947794211711393611471327496504976013829713327816022631484465432978882246955632199708811473576300534784361551709170985825940450075619580169490976729710436132308067955940234384004630500565671726384437674564843696680847009685276521313391263020689568658948902701779027445492083520790552399772137654037306413252657197251234765969817622045816038687187101445593749470266920726690090755061046710198485107504758315675173090229505355348316786057928159623800800161758662314888789963299068025677230777913274975910602051607391455783258729034035328721172980555492840602973770345890445161831811286746362487556613386873938547500667976118921639790017869699497800202751943955126725451937897681394079182750025800978566728263361810214597175595112387870133751716222978090114876169599352208958265604257624160832462427701457425575031340615225708881325924828708023143089200519991616841577185437758200992642669717789479741527270717656295009666263653225100782270546342058390056701392887038845208155206100355667005017840766707073731289712182570338139283339262938784587420043482754717521341284324353822472580030685645358461273321179483026825509665812088879272910429776571758869086368879380268639574310203903310789491052315643492857076329053121712978494143874890291378074321031010033169612758425725775897662985777590274680861169514084670095406654024988128582307023609192109918513693339784767569957974085791053560739069415541291683626989407525001405339804998618525786798355723288911359920308978491734685675958066167738374548297605822651780413366502554107905667235452916088565933112624874504757140779187623481978544014568647380303019938680053952145680582868091446764194823575950062037965025931821489340355718484243592569888611778270968341145126006787758669825656836073255209462039316863228079506266913039408190001670744215967726249935791547734152248121654842522199003636991924529334716539875533711856036445424372787658769432026777339434946306177935802537315869150869687926463691390794022424735630735659564799803875112933640278859133504558215260065014781132747365963298274308686555578382271519058556095844098523884053043362846063498918552532733747493047151800729062280843007061408977441079850994612432381991463789684808816853580778494692019285546463611849935820137676976651307622785207238361611687462070873902650236769315140973984991848262362301842500302842673940007826280445106257289728367816570115981841647734030784419000717746903982368577113941069195592436489194933539566619964214655099972948597077684467143548886146173134914221171464305385866480306483013305629558866860095718369246087844761286051891451787895775962399747356841386448600197833959517302217594009777300401307224898779495057617027579182689719203285447810322676992183442746957770160715407686991500990515135914183007631229751027580425472134568938513039723906507815599255983899574453123025990773806989101881472480820354920346569680459447312415501940557012547070156564654365270853432575196834602798379978376083836556136954256085579199953920664446121642513830651646722488002314784253741720002165301352341615719766105239001523484200248627961130383823725745381553084717516441637822765475086149830054370457252147506749488037779346443078649232212904665231046548546668324774930665151142647774930700681546513979948421246053753804394995586485664618225836123630306555676036511163431159538982315419604124977872541373239849285228006882307937292433030205244203357005064505922393043092843610772006542807377124057664188613482509552421096890112254794637006734278213649008007803839167173665540787266178034938880355194279892968729301972193698200303230239556607519275785247244377916656832595793717244297172969244281117682028200478338233190289407371786575840361151083420011305677199601379222425672701013887889630703254709071215115106200962844500940919530998130348776053492235833755937090971104707219430915611279011188632412278863311976417417506450353267593927245726086071082091805001261609768985411542465889893279842278420934492748862538149235298395270283670241944842075239417474685134397477750219576412581742300539299114930682063885903829767052456378819505117517396228978525697309265656267052246536023717412500826493753574310759278877915619920800520330483817112757381078157158018517300879045091669950745257996098141690506979531785955787659175071683206228658643713146340764039478699367858937816470236318956316706101247903701892865681852375703981158277612706766286981588705133563160281895613460807125039592745499637569936772502645549325553834716944612899482858718710154042643476541339859013786945147518240667399727216176696119972821827554050869166189025945417181330509307988550771604588653234483247434240194077954549705676130048738845670233924881228218701133784542447663973282473723951233675049952905761978058730155792347006502896151152462115872913488036779280852528258540953211982235641603475304325859509461394395527659155652283587713347386703540464839722159910018552938056722849989534778502183303793510209497792547419155564640308850653676126441851008960489728735453435550801321439499660592338935306925740177508333400376455871263692212662109188612573870686860752961069447548241129618376894891987189288200805860668742827361606759464620110558407192419700011331749389985697997248818139570649613550133506566944035266534317671577858124007972919301552972740972046151807599149152336910672377474271970904975598048627214041468523711914731382054149613268438008463216964707913764724052303071151893030392952445804521469613004663998489069702499304049295764463159654573043187469174877785579900859691329658078203599216733178648345243308221100417156744132989428767333391308250665609778589207739831559448665764443589329145670039270785274544234391414918879613883948534583463287489693486400435014897306079912931463466616517228926835003597748019104850981637628129062448849494441799364677536766544696524336013182555184075376363655932540894878351051296118407325234068797954557405765184613672125725729139498351713259512792662560390944292953211894546223528072342707783700030369905735364422874875333472080499882266787396836828624831806756888908764435873648687542181968697671287031802048690525065673913220793218301050497947512902675129506054529967772533400087393164337014726618224123449532434167562638660427751883132486519836754958911841826567280593484196086379981351385950882485684189245729485994326221263429949308098180715647714645353852992661964729387527581719270505433759555327357220730790682014821642442430571200236915308377611855772923330543131255204839759482247431408292482086506734099160527312682390977019634645661917909413227270728823748800110195520434993106538442175902773036859562169853682831643414310500519659656240290898025915092285358235496514822085217444766559528238357789950013172992116416816235713498925492772970197561030300437345396780498415293178628696455152931987211192102965100203673270993642837181519571437867527788930318147601879623575591644489667593073432918684095422099260408260443499292573232333295637216889298742283783055709664175334512236208681939511864104426325704245180398640133562498559615029256083148731392732192930001660348589107971095371219069207500440781780882474499218733077148434887998258740510416182577977988570468963939913780895894343504180451440558068687775843399792317937368355181484289551072988856591958209616907279787407182547115416064184022620721845257286217049057143118476623943829817745966187826696179098889730465576727887694048458107056952343932885599868497791806267662138786398327835621126714992163338258601031407908832913631379073145487174938196388076891567886127946901245428043425257082015265742480994979669192779333708890598636307365778079312788697678525135040070419685403736874593416384927119158208490291193023107181025849674871493963589151815198816682958866156818600406945918462921365646769128853723648428414235039690513653046713272437132873031257152224884340738878488342514467239896301879763157600282764475003344419274421251646409674619738757908374497385615174783056149160414730296131789734569275879092445561459463495996716310891533562510040636339760604726175352683181411900026327128760548326868783488656230417047123750997737346054052276072703948127024827027178906136828345773494208559035701859422373014804147263022912700998789029592338653686742640548528690277305627035566418046110637346143843280446447333484335456111633795102117251994124505194048293341726762169886535185872350716478957134392300613464586118104930107266936353683748276864445565021981390507337952826902160347069802294094794783934154658693691717831979042260554274658674536940026811386379462964273070730059567629155834487989104658173859678791077351984837924483533376827057493184182739083998674550707955493753824963371509004651137824413030286613562060890757337048667658524148760008192091595984964196112319696173661398576564661651430689830980750802738298438422135799906821923953472449584093772441175992021303115329629102980727258234321438913937475566366508510601351137199330299176035779357571292898310944567746684938947595749341872735556170061007584534618975545730048889641115545806075877279938334628212471451273387737938273378351825035753085530550184686075973373344546081299474350298803887676995441119995126765382801747182164688688613657976814695003556464622238886730048805171755916959135502275881189433218889957537864127432047992385372364171778672758236092802459076335708702033665227926226111041518318895739091904021649760369429075294385570871241995140226616387077031019139531885973624324037875976929592990446551127038338805135473286260947250618820304228725622290605565989305842656516306360776215086822526047447020675178692330389591585694386355771655503232315944017643228697784026938733578291271572477739787209614377710889503468265661481589941984011196703156210729268097959375386021757842802022865214690581296368599514789546797317763416369179183249887865247536552403347144134638614301360003840735555880576017170446919535696071441370546872462849707573541671794427575116028772092808994813887275263011395773579424683630874870341080820418219218204720849992657182998910745795774627267451451800837257505350094199548253815250271256818241167274884089685610734735535377381517912473458513744875058467465390462068003430651186675487908807329145085447791670652692507855930212863451849828814142698316801224701108619490228408117910173797980107991541809339458439293214716405417635423413986833853848535617219547098703773113314313983308504950130045576422479898911007531382756552419264962629459645703600536088745582694269828715114664474121890437473014723104607808541472524560478476264022311045124546644457225284083776342360374467584445440267541761066574306135079387351554913617363826235704542698854875608441105227124406325110910347715042305159100081765148717635247433601604540138936305575022084027160401921806854650000070852851805823928834820551059405022496232847699468521110554517752316092252891040333234669083414272014056012243960821929950890983979303090957588168001814417186657968620683876200244206129552774411011936342666318808543603601615286461814875606160688097334362791656905841301646957536280441561936303800316234694019057701613082031260288059085178827928738619031208922738028083852618003230055258595616334905620535954179995800179493868896154419431839899591108558977503472472125849399826363584800322257357102961787520716101708205066829306878393443936463404891246717831048323164977222601151555198294915235856113542340524617439494582474636479462905151822045961740854571194137210892049278622584860117633414009022893298035994781413802310010181194368159433899297043728501746964596627304139981036759883757767106031054788872032552027175325637687348075037581854134646499829954825601570283126596474325152346559450109500033911616459012427032181327097695520360711438261015368244023885245478352921507695165839192074494358107444753954237812427412813606345906727305836517683770365777480227768888699439269204928755240076106567239637391805541686239901882375235267545643931912569351996639906092315347781150883275863883331225245402018808338398125378193601041939080878321370572905383648270430443878605704996963481724792037671459488208973710214791995328513814880639827158097197163970783540595676240221707604646955263203695286255912029005837218859018183779690500128536904723455618859130881555844199641724153195686620596797921346341095565093577527112389871616195958281741034890990501773508007239366490068515189183415522457662019579332493897243808445592057272373509082817135294283022933642875508092984126839272267354223423143724952056364090600381936534457798171596139776952327180849026405755864977450066015286343699877424850370870623234921325504319240239669351052312226432184876178289852268191818796474033476616015678866041076004725354475611581711524489041884073805680637740761065290420790038094350010767425693276758341732858635708630245271987158594530444108831401993729221895941129666531268564284004208324319987180928613835293649077634111198772550151697911851702392972258067281015920722876929415537077401993555222440276721025540644131148189783913760855256463432451345691106605893788113555821001126864760755356376314285664580563182555968086642293914910740065234337086593076228917732782842560380993603915361834244894951872073176847554710130417410526613911891318053170495411327603823326407797686168042866947578502773482524776157547848029535878826310230469587591470351009139082678442633374739039761888281306483994669146467409905094544671303744188636953930038068553633647526806939691538239849914011669588647233743936856639434401667681028710457146778331673170009948840055194840115306419441320535104811940650133203263194538409491339465654084201322597838733181626989880953512910045162653210610071099013960254752082658242928119126184362344700034261128600875673304669641847270034123382422621914689757289019770922161188805139690447740505460194215752222590789270727453684479650804821881769605315807397781818929077652061072874717244282958605197763898835325895805995050296550401631203225218294788125701376832931615383047102247626021300537134527135977960307698968235340923769573988512937022388581970794157167045831831199702162675261173831899781089977310972699852141995375796538331979409491123023551519145030248771004575870823406071936981743162332688826571397704961725471824073119373051883115108765142773642130921352631821615744975621823359793012967855125370906966023314114177064253383184699563159621243953641082994495364902194094426694815659390399133234598643736013212200246517225032861882691011138054851341176959569477852066221600257663646458853520588830990634770389683479138047140487882315109977347617657378798077417999568669533892249096199215935438644645101645325064609425708314929734287025445822158327688119757183321254101388891944791214031496139924338292199751774389731953743551869459612065989368594697266833496604878766389932573648835555678053522375369183477383475691024328757448333006886788263900364356374178129188703910813671647151904018388675354649308595360562047045916453119669633602875988335435930345337479964802945677275822934336390363888343031836893326681232670722426555965793918100030868126459960005327075525745672773216141148276812994372751030000380963633505028435937465687552261584927432746717299234738206408905072255737489557433897836336362666066461288830720788863036013829554621241989211490994731694541255427627007952124368701869236887019016654987616060277064130981276791926399055191473326921692553603433946747436545274409650330432808405917440520146444846512595933153216602687160812313643654562403654339350981827311383100766297349724248095734371791597182945619678590228684664623008384754928843642575670881689486743002058888864121205849133412369855193655746361632407237647748597699998601077058467696832212398769409807572143518105846072760247998578495664853892480384420208159535068087840234724410177201925622842476254087864691991350336954083433003110260419760407356190258660830647217958842292269602746855938568992986466012649176879755284184588656985996535695416535287628250120625236482713834796719085551375015492099766972564952972122174433937791728042011942724987791473202215733235498471687222736126258802229463082468726670173879964341523416365956966025976191616327006540333234727514139867775457592481423214734896369079465144640778481779229825339036582207502649720812917007232394874474020223312922335848908276088210176295875772233479890192149241409075476019571113758056662820404016707279461799116015688230394365586960252971759808586859761906483738907262823506728926311928488071830984223776193414971349067091487501541230345811344949138401754042134448901852218107839488918054300127522325512019837441704257038421652871479941019791762764830183544927465126395835313555503747915329351832253614988697189943449701674280444803704959774189201845575217077725677377281268823128613557727241608715437697639259854883008538607095889011425486230812334795970146281874758181128329407480623619944871677023093266291294371159502933849160937735074620200442590326096657581011042349063201845351832186910310980101667674303704600378944739454395769547061066122320708474881744019435392439618183349695730495200710171101241445503654973472292136436753221886586771780889253695002141263450635688033820404032960711571206203822765926775078946220487075634930627020821773404378593607865071544766246627105490255413763824664342312440932369951483888076577920054529095403856119192846537064350948470425005764613212514124982517123480038181414745145885693713958452709570224683183666661226641729881820135583591531355103977850718944004423761007659317259089339722950758333632693583948544823877220844067014828965373501694314835970642698828631100019739458841293574207373921324766697951997799231510274715540253679074189038082455039394654525556796134019912199978303757714853365289296566881366932303933378421796879938386462894365520738933265599317996069201677220373528308913619866588219348615519349511958613852974793779962212278990406906851789312221902175272827991968492789383351870353585315186375667040767950694480505445286691760631950192174051927960480561211095595802303821202718689216513531858549361342733465444571281664937675922363846948934741319139177280410210431775031075111052208838970259904405069504565521554258403602477755988422676992478791990314710215426226653219209248368858592366981185211951592770949418204043604117412130366480668598807483246943811918314933357894359776625511839364304250579635780949875943232051558958336435398002006747768108252675984277585715520270819615847028269742592146492611961186242299168914271368093329982386052128157777528385828897785810701309286591015494847728949190983801937379591078056361071698712917784222880588474479971519705513478853256208697299537503537426634585386463184070665894707145734141343610891904723099374420782987659525003263172160987342660244990543278294545242453165830426527802703956122163646937958958289926588615021210895435543831108304455793400776342892290607015492811311289967843838449293570616303290468535909225201672986326024230351063529355632038977852330679897653511753271886466537620614557392645916930468471590363288761077902100414446815253096765407167533922465356135746003762210210909010393158927418508838857653452839858740947698692559251419887895437531611041055634562899991233465951945888393752601577205903735709184303758284793617841593988309686386418447348969910743524157824488213164294437735919978221616947268466517418575739356165787517216439843372661661158655949705327856539819739189759912126389612704555915864155448294442268989544860454058720042012025587977015444772820842371335730584744571335646475064395825087431114677466184528412911116748276366346648233805029622095514272710240769246998144601266786907838020939074694248171498458764320324342398769002663511956551787005774101966926200570238504573960854011184406884378221241691313809209147570922895003571187136131223051924377310838130819062383243693880072253321795178733984108316150835545563708803768334438403054228711706839994526094006998211831169582830185937139707375673203424106294834281069285782562901323103973281694800291701601765495907133412733089796703857992760890249770615383876960525379867351854917377947274220610840403636661636124329137285801991791652369852074892435737206980833724619540348984593463841599610022455661701928026081041528928315552256211470848851116899064205062409696995043995997187656439187305620914492372344168071083135761299962459340659124620876316470978912738337183107744559362469060361846530883242013211264163292351297174794942176539903621769026797199287715187621317505464267997660320775226069884763041909406602548398230545198273125755149925982093048788289764824206385480552868450904049978310653815122503176213997424386330757447405480656426141412466537159663298288482384089671483882415052963067950499266559124579554648765561158165548444527974617050654888634134420387999829700157075108019726776830142306862822669957776418582209392179779539813811962379486664641625755623361620469719441700539053706454474981159474188977966997538637231799346752955726811449939654005714424286183273021407984589043815122177007829806238709595684127931667265831859707498462216583553258131555885644356941638491648453512418444620503024976389242589983907060652979630593559815638291450269780362084035101730134695627984592159702226873716290833651345190387010827678099183877690110597999488688156339007511261158373803507862310739137170643651713061076372916207417256160068935445719220903923817813900077331197596785770305740223284586162797977932014839907758140179275926001003503444592490827857647338238219853670059257212863051107139973767596102151329175996618043068655088646157032556432070967480773009118982832423118118356572824834472507533340693959600103116846456697867035198812246906182757633828233724545840786465414862669728343536603635156079561323058417654839679285399152785547751804336462361985350651965595062882427940564803576784635830031172388804481186130641165622548214919110930716860082664096454337280109106763996579726577637303424714683589342216361774808824140055142574508655008637483780424983832875667594256580789284939199689820232968772828923761665280219815100770685171316421492709124171918412897142758898713287319630932844598260262024762406631209988344787454825715718584388223392330171157709689666969482026829078154681141172166689940837350193901561187410393105745047718721469781411581549999865379337494957485139123312584317159043128820181967333626704246741446349070006175659754321486332709741545652582851368552267283779053473856983557286782795134560699440284349119330319377529781920462567619449059664217227564119803631489890731317538645360776332887047224928317314310226058720202346976316179287390806677853906534800877660083849729756928236934816978917273874124723729149664974517420673903238713443781500191884566292530285058756198009747086700240029450980819138625616473693145471086823503534390436982329739073473595741842311504094206229022115094529060119901696420070252291543101608469452759882869293031249842819399778570687315713927276103228281640351419133633265727990408767557158501146558930524803368499029728254295314360375728883525854429415046465193857912649680694201424231976057532475017725220379938790787047881969114426534789621457234923895465802410147543545896589862132741838521439410537125588483357967758606899367148595394538503785970297641025986059541762508175118945789735751715605481731185170400813594495595411472090396713109640875025472349829041752266641252057596347175453640930185780847429527486435439438093639867277603370286762833197772929772890529806006194371201282147661215687180057502149700747832472137468782638283056576392915291790724529196542915685396483471464429814577259859776498265333267880188162593078365511989770749344284915832229314781501902540133902609705881870584032656464901104969583839493550006160545387825156850874081088117708088865696547242861432386872387646701023703442399759893827290124380346051219570997036716440932076302403304681713842338709963506058424028445879717181156058779536474483763288643597026151397985989105568228776246249927842979914607141823807035295033978554915580959910466850645400926747684655231149724248191404898906760132098144352028066616108197549732573057306525032378443757328837040829872411292346055922200710432458727189082449623484111851233968403902219843357027724600423917816819177199651288325351142569989341296255848647301270676764713857517092795934597028398600363815277733206805677854325663921533101385784107550151177288753286628201676051839833773603000468684503049597070394702932387853477137302792926973277784578660797309972853436716610509277844796196452487270905418746686011791714789785415629638167840583976768576088426928115321194143164618119562994200025273624240881737403571169851690274089316290490526412958695636696167537861720381293121774538275262759211952889247513826688955243709340600443497597512859785318530079406418872817982194853229335295867347429588775604102017191698371660832469583636247885641779675263691213434569211147434777780075235707988137983526723641353960105450258881202060334701723471873741513577931438834950613894271202970416448129654677320283916104246429904310245859337617905482119373171259101412176766557509823421635200001526187156958647038318561486943572178033416343138511940029885956880778240687081730201443269821515105906579293046552220881862984215706079197001498848457983783225560353841080562881745024030900532137436123591413614888876606267071323011944862814577854304190865665187336546665390717856634632771793569654240399957199610458267375389703476706152989551204126026660856611341069773707571188787986533394640981730302834856810362864569771002670898596270045132256059189256348101166032819475595686433030002001057727413035861451466895079318553243966676663178052463791877571783648470853997585191387624399020840230775851253349854402722634888395064365307597086265034125928893941442710982871182291414306676906352699434721915229616067075558527464604128467070421010754575410469823596850380616953918069056723649459311157806461843571527330472032939128272285077283144076259112343875073441458829512031898847189645413553303538708311890344430384666737699344756887889445532553059612292181190896223441050757239349337894192004540985722640654854939647954166214145285220627163423573201276156420616026832984400498744664023638515804850055120028599410262078798225554789535748598006224741557016433129817972233464859717424685517739610672086717746908269922108417863679344023258352195273591426709764719557127235151834102228683925220025812560158189975171524197754329600081546073923979421101922938505765158539948546274263300314356659532721116247141917999795504302140625845081056569463097222813066285987640309735121188324640042643681500555361810175907810160126427199515768808570206341199030933353397823277014000377094251715946095318930852693476343941201924076682379852772441989345626898961748434677943663509249530220865540087109437836852671290063053405914552232664114850596465831197459256660628785949237972005757297888711104147929244212840052576915504964399269168563146696983808026521890070054926266888490787860205760359648537764124239703019089351518247869892984010445592035998239277821838750474853904008609518583559440367605769703965935891695134406929377645581703816330794820416753804157249919698625874038518398640876112555619985786088032264534173432022382742684178143323942406076625319508345620012552665279082420873320643580378785067419771821017758206931993243147041715050020295052223257507966704186567209268537424850229607911366267793130597685184798696442321519977030264367180260172810308065264329887605048042959395543432871774958620376241181376840573083744134775268697055286994959895857218180372613005136406250639187732193198458372949559596331705899975865753468536731605501465246006303016104503377840826711040896786918857988219024355257138376417590113078654615132780267119567186839443369096456008477226870553796990479788948819668340499867747053642560519221910617320683771084613467202854584410490756671986120233862500276079432250268209070960499504144086731301549556488890704627895562838129711470586260466398852261169909635789185185745438539286264749035007148621006341167764181293425405630658462765144716904320633893537188555217981843395501211461918923882724756402441571602597926898293839489877765891299109733128223013676294782950984923092786709400559777459346214305075948796585488220694019814446399507617459907776915997278819810360403506281350049555859040056692467069163567881917915452728186842720999309427057190062588666311047577201125403740376313505225927876538768179670459668368349987008630337288745310072252809409320530149411693132701672344882534904468854835827892152549420719326853899002485147223218862272945113148401866701920053427418257615330914846495099074194452529267544884070689971865214384130572635049413556965139755244968664992826630502593456141285683356175569566762138848344154034967849627997729203147183224866709958998220442395622416868024516806777181428664973028997707978168358474160112485326429593717053645307899226706256263260164993375185153486320194323753506624312947483607616532538220697651193829293285078115383391885194061848680036748432998231471559904407700129714857114086160837193992934925158989473720876767129388882281973754236792889435879162277711381352069243925721477849959862922389241455417657234588148128838565926525148445757817819444494979512344966466641276731237170520123498050490740300808237793592642688229292039529972876084757963203601742181203967916148285427080228411494529205997493827788870330019782869877105450830679838225387193564644024924046575431769536375395620209147881302181629406259444405573960781438727439010123388320509568937141068246382749237894286648659399424876270899509960542317432935720527608051507048349120316063105778350925318496971843960836291871891075288513030436431168861706411534753035947872224847923328240523979229582917903282156957032620816791427806499993187926644910201861594804685915377535681937186574534407276744504098389864634273192046446410050663408656150346316465771253602338310033967206117098034411279126021386252570857514580831916366733614271460142839850430855710714481700169422161965355772299652176698694657464241126350617823724684213599075153991777840028318379104346092359150272424542263442619486396521755291450217726464109853184264829574205118554270788377143134257275716255519899170794332707293997738429708361360408376727014175619020936473367368351218255664881294497014013485921305382653051350541998719669837487274046713497114223417350892814063198055675979049784315683939760371051833189321801237551633784480919424152322755865940394251090569118470406256760387688893432769961488757051583761044377872206460476002654462626307070616817842646895869509400174252418127326472933528798604092990188080568381814604893615649977868763890401956190322681668041663876209430174747318145668012671785836538974189363005038581079743237898613331134341463035232791053173003607213902080737929146300089472658437746256563408994728784952258513616770782411288686227347948296859417533598004547166615480518483312590991855421624099301731453387602603898173254920897665602432267985320770635487683052853160159769687154508233375862314085488902994910878952303162342387406074028236353176978532384970027990572612771117221454240953468321905763447075389685762611593637209819000394831247639975169021460093447474374896464741346117170681752589206633498952654471218012849825530173122745718761546903092357487626753583594705204803343885461934521302562538101122943824353048515621395936581655682210256136002192763146010055182721022155993618727346982724120873984386519354435474122405654460227392853261248899194383022005769793480964570470837673318191130341912730063677662496609449574855711415287958841434495112358929224952485880239386679206880665599298997382931821015748033621263692661348529694702509125459879631328041435324376927958372843056578996612245444080759893326134633504289691450085023437403154288692453910991752303677552042389383174881008883608377406758720345237924926137373810710639029756861230016669800124592052908131899559335323796198187008956173352819906791782043787700888508425410132405327068828719922651492356094526062126632279594136414257906350835778839647251732009726589812176568770244553137565303744829386842850150257716165632908342394270270265119309749328582993834458882650781749490302896456902373990323366256651328575082437543747412512697483431992468308526878064048162026583304846967801295099971999074177662312103273484043037470020011967200040941680285416599744358173326022957254099264852902881271464099462526600974609801637216681723603232750558018386843540294292781985538783417552784238811610167419358632096703737629809372652005500418384229889303298321551606617995445416860941176293245531895295173803468598210991557655954773352794327403368685272451791895523566171409521779185428496282042413728280350309426372300161255118813969604277280436642844494335057175674905544082942626722810538324087743787219166061242680804202317228835736386178530068443579179505435789948995030426354015229448361094571996279577390494916322933049681914239334968977297634247579757084418932500627124099527977796363791844624006655737796430989092604821689367295975520288703941685095138688117794629570733384678549244426119803010322192417088280715662839371687945848821952457839701824613583220965715210677836538386412618835949216821849761541942156579226632667663455472184829949815247958427036440852028839505155480697633725901076566128788597366150875772069194139810470680059794333528897490008867845564672327278228253926289728401233765529224911169910975909544120515311938758978815728828198906741347835729341060990699584756191888546199544360294885671425081679181560175330483147674582448029699568848091138354637342794034962898126918294486735992554862080205179571228083206512369632358634668382001304620387432770313800672643810695437677979995063386813331227421725150098390357498526863243938725274787140254555246503258126153262637232634052336240782365510408445005036967882180351869532442110834065871232497838724138439613541115953073978515521901276292662483120800766781420231518596568117770801831124935992005908622681592409551771958587764230019018645756086323615501808413417706707551751643964722328143564838170695174916794557701639892030125176928227043661626728965177362702578438732455001981873838039475631752040831369429210994239768207446209806818712393401611182542946935025441755096164624396783060643483061243566327485073507464374334921375986049093414671732431443076374731593535436050655700847081759004141542599409400490447367220069388777281782025957017149004696091798485113626579323210145524139701284102466329270466920141602448772460121192429749522159997029421618592968283586231004901494630537663665789661775478012240158693893992247962385885733340988100523415893746736148393845253707644188748375006495673321993610029997427127346394288895635967293144139093910462339408665832690602291817419815306204831183675247235155363018550027040885632450143487791666485148498570462666251171819358228511633953567202449524013892399434431772709218834077182926451805149126982976709464849313970872673212995873271988970754607791082970379471367935314262548789906291080420176053764110534053914026349280414543574433000920287059889193717310177962357773407180335344936931942446326911700715064347927043194040619368574172674539082987345341696694122753742028062603213945731506709198332215380626708747838054297532293813289106777072676326085746124239931522704370624802537618595387396585247018727028010606302925236728635707922712027546979475512041947690465588331220155797880559434053972124201632320872838062564408703387023093661196575573107396951355825948751438423181298883187093829669461622454339749254930468125741968414640745499154404721906228807288984941591211125522289439760165384181589031966350624198219420289330360682405799833508748379328109741559579525182921982617849210746766508745368103359191216212143657373302931737977391490388070019297946884956582332873164210018961959037919024930826195996683918498479750026752019225608065440423844945488243416122016868342364609983278410210606115144813501123206403822651547999945517046092869895261196261032415228978435286883412438350938286724649386571368390634809173589416003543730524945352529543851058320286487120452003174447047034524688190407449014769837698478437823905306840921091395601232777525311651051874857081313700660825196106490639688782000755997514031441414802069822241855930023378035895595755173817949175031603792729646552665890610915543935981691796334485783716932520424021685028128342833078745282639444710149107771119477776841015069824252737732569402996674068381290132354585118211439759900196067563895506707699467167976150740180834996787572918431116881783877689759536274261865143890230674109311556913829184419227743249668467157909528794320928841548158856692690552612592508804520456604811004100731275503897190413335130835532901550057368012267025316794810472867984301119819137478063352230220284368236258395250423963331970261580752740866083352216999307823613190974620437281161717269619024998641047920369645217335596441376398042830565219108757181720920279639586771208447254851758515310501296953711581158516553010738252708939867858261928549191394288259129475851062545450563211427927124684080405211435178936968619337803197324695850677351422512132373059289369785851912857047499122550582473002656758445129141761318385744631095972233923783605238230528891031153243180730553795196057891084145552941766130581296873844024294545499607208758327462253271752290031367139298317759285154197828446052831645244713981872152905923499593772988198449505317484879175838719954938082005499502032137056629436088130834503199923805387083594284276150484304883551758437740276048538559505800661150064368722557143010824796560469288381590806838526287680403368751315788316397236455693028500423876008246497328856208180809021045611329976417701853150227284597463864866261196439208430329732969419646936556794176336696057781887488106289805810033212802140406395775376402140341929409052331840085119106743771339633072394287638901375045153494724480107536024634473839346836117731236242382787909973569337094193729576124627246700807829950994508664563897625925384390985255550692083802753019235532447339223357286312362855189983123431785347544374378402813681666336545505518731862012479250551372443471436329356728340311972635518832178418157898564534197929801925562523089009126687467002055661419545894246594503421158441177019444268841456003173866143860305278319713525672085072649829683754650558382633993317420131128873154420364620148671726355901149647241234184344192541332210913869759012742340776916136659450635899676193243505469470863450190841691563963515429378674797455624402359018477040403948453738033276169692913258601935169727673567921576163196668728381068590705211133912829664782299212200714125142412613511338363593853423651328772724774005273702516034792446713530825763196148651045556003431450614060482006438077893715065982675413551487119819959888915256545909920290144659675522275754301378991732870882789867991624001276081190885473433031407288394645852717288540756313340004498106029197529853656234207941235980960463403199391809334092015090077449969179523417255959616903456416964255664303298029230535589308576384727344293174241482388532465875466983780408023608351499711359933014926695504545895539538989068821349313586962302304941180916694800791373511252750409153124328034646928066967779538702895130166576045408375158534247464370828528090271056472874234762259599522297727683346265406485282819821505642238009365528723530453932400972362843171599590139600985215639175039603088488942243426420993603534862810354122964235281483141297017458346487561670839374653835084575123415731977908173639890494832517960180448854989265494320359247833391195003669530293942254204462281535325761953437930395336475594597100703915128859329426144735797811416415620526512627444255995049795353567648124880240252535105118793773769727061550233935522184186757420775271236586289071957929660483009573639290807978609727070237697509505778639419860700997052348727110030858529108181656890655310381677243714802456096988929629875705805319154667176057356105127026423622705024533121378246238922707215786367630538526372980215299077581229552425692309259204122918817559795112274925575341799186145032808036847515761272606226326959799813717056130954350505769973629228305424001837050487099855468941112570198913781953731883551184126076381792267482058206932619908219687394283528258989620947430700034787567702136602815170351390597184293340649036796627300101460902776286984713525968704824973260656286956117981298557067693149671089063783037480006954398386963927909917980243770210668957507390564514435866280678529450697669816181256562804776431193021304187611023742408000539886026533723880695915709048387125923674077088450308914932999419556235503881782095027734742746400007240686978376992006819028208461116022563216218183446942784162046969985120168485902730320266151514630757801797306670480716497374265715245728531424024481224090237925408414638290242317648307327587268216679787542088952918175636686539336028470680303744526188760989711398658113695638523581635641878274573184505506929008464827003644435795309994892408732189184244495002543238397776011964414564082968435810845142039823485271116790453505931637295179195783769358833172047171196752580130590910547111452365347289238992863909677842307720734932993969280722337640971704886628313863241438667149288188653360258473897402601724438869639048790962284971159509160599422154334287525401512901022807833562964979678480551281424859630977569086140704483123934373172376789240138737644410492470514935219682871020148414738737231101375171322584288846887866195989700320556684999133911403811289262073661559083450364743727805101491688634008430726885203802466414623755024017892097618524813978061432893580116820453429931225028875665880005981148927312664114254578434464763590362138203785667552288647131781541014258330979352288503842891361248522929911591012673737100273997169625232526868539313235896515067675647580937929427565659665588781055936082593107560071691680849554325600825390751462752985420023882686688847544834232371646495676033095895917530991512966034748651229944951756109447574764550454995037273413523636452969809590792868817841621725110523250144858730349877990214212166080665595176818471425163110510725612626599747085789027219489661677132967033437457153633724789480090816117511803503110074255470408586075144559698737586668511229406117534706171542863207759426640133009901559989475424006912415196767479133952922418856062333428427596485262636057742553469578979725869449674464182865147216051391548834320323756044180244272940819216698888205779216878843406802545051114318212656269797401365555445900229563456300931242692749995110815371693223012748999412613009735737681462170001738455204371175291397429642159599809525710777008143140729364829587553621567566047286698621489368015653151087928435885834444867360820115205136953940692655236048956910744818360250657287876754437296413002688889447079896118215778378666447625258634717940650581008896580907400145121109038015862417758150157799386215483923027211805599750911414397010443403022004309620807619651524851924027224421234016252865975411257068101851117732435844749873803854660582879255765437856955899667510447500010777280286795334013996680969649693615257633663408055595180192150816680204720229053565799159163615605251250162446854672419548190842235011809640640777804954275788132235019034957703277258493131753312130890341545747792428774323793060789741964186277657067195437356311865530994216320540566494193985508701944996740036639323004570762505508610365871602611113954238858025286374313526556322580871863588767259125790979066988472748568504200197512518490097184907228947450368736522856885616493374802217113402306269096608980872723548798756549599735777050906447188517850881498646425970027033890241415942384188734158839830266294315778037326744411156366022033978940018476343721723491637068390918467908136683348094016107638370230874149086358241058105799780881996663301553958596115780964216354282945670719338954846911263591250978745912587009788532105890133811896475286623438994829913909545679208368218153645691158575031704126214633786000246615774982875741713287908192280304325585715662746642150695581470614310765470933328355868723344152899073316161766961689351219437021163921438524806590708986006666753952956974601124454416081494881927837883518100905107827850364602781208086305722260322447026125066310038427479166906728837566878191029552001145841915600229130370438219350388596820420229443469387164701134044755836380440205327540118783033780679557864838290808080866427019926509457841910975680821470351197940453812718674056064138813319254324133038842638908013845714036449071351369076748381583639419979623709940946249667003591865784738280403407341577364426563736660601519451607678329084201977163822236766627922016026757080350592315454634414498444904305594988037749943528237039228350183608286362489735876967505638335811211979746653508617716561916217050627585440541430945147610400061263962425807349742253937172272182401387309391759871952279689957819359724432187125454322682728405741595873020753256209452865555966212502980999565978816404973153051656652571711927133467210513230143960497255764654640831552534160711724389597910413066947347856776991148939245478882741881643372794119916872386281738656343202993085901323624028895186630781676007696976175209357382379766531571234005105497975169303590514125896113202700677928463206376868848735225872332845073161712050089809831368186832252595015015568237365457035044920337756345807086354329189230965829410143674754840093568866635599497566094513280701055146220211420000094434879018997682582821441694956984871654979638349100944594693077963761463049937074034412391254807354932685844076703313243308878559201522374394274768467304061273558204567544371137023497603346147879420932520673384991489313638669339372893306970094444809081007774877693041950987733674479153374577528361759572603936900756201526011490029511744223593191748498253937871498349227442097105884074847655221171815772446577416734854814269420716199115519644451315308496347916882805576854790717532399314405215387045034757727640311814938826297239115061595469517983397683584386667925973305810552281857312693180862065577697130104710752561017913880188268683984057024963045666242942419932634475963221704789533560781463768026301399897946578081167306552936664295956395521955722462800640492340784376964323908708574609451678849044045844087194055512549410457765903205934360623312662421334210767341756796766362476213374948541167098462413065403365330805699289474802789206566259924647576926308609420686746242403881111640872209359198478042120545593320885865829736169684943125792019008928918274228448591130077286814297725820528658519438360741451934586892591432338633263328527544860398369271887989200452197136236655278385571224311022931602495170766175544515761577252109689653389124228935868380192945915273588496478028153776933509250669005391596208529993339305549534426763117606915410359750210583119033821808283492614447366271002391030601664466327773490581456241347496382930731287979484548215580801366246395289516834496427634236044697949185233598013312693320748554245174332568722203313409247369345783764709087942315731920318029136708594656401033295590450428180206713714746982363462658354158493951642595227839870776759970148835470200266899633437793932386468436941803830799439315798815382271467255735517143579324138418478320903329899686175865868203424297484403824936682139212690613863240211013321946514077483642577966386481260377063297509937374116614062748353455893154173794492279204092027107760609516044285042596566723887384238422000923109178677014783905059013613938269457137766373245482840765237884024213649660248280743381316788925742169554933408244197778173453532225526437562324850862975651727852574195669867862069649535517424566970510450207827842201784010134616732799860157342684768415007301180318881801428895728843069897419372704330502281814379552582373525013317862387544313351260725214829561528284331283102684132364556685897982049762460115600151687107007523705746412482966983967459666051687805556821456481392562814836843679000180516609986974073767489751209862432865856506897217525643846299063225673375744583712460930427877262583017773745665421340006943754543790647783484637232167127612101042277888027644958038856313521878925927220162166601582178391966635578467016817781724547667313023391976555086735287833835979325512734546800165616652520372100489744229723116048101745321590330485815461810595351271539229996498824189354402157025171537817660598787248417807789468345416491892385032857603713090863800226346235910090863220622041327292697336088218066526301596277013902955209912888444597808551147666534549214424598042906662072923318870388125649979500938015998534599020115868867539203097438345140729898566985428546782296572101471576889126669528861063165775235793500022393217125123795395165583600227567583676889937104358691521514938944880392415436850047056263966495488855778239247106368987144580784142034610965511530069704725448419150881302559017765459737639231908109747694615446365103947268118219507464785765227459451080571663103512598890106740166830947872582248090386188869642403978904545694885292978054088915006892283583493667682377329841378645817148873021075267535966533632161800469052758165942058425893173917947147076581464953918428585763865453483792575423619415370931321272732493732153266190376544058587527686622914687314271779481762284469958428916866586009785067169846449647442952076980642933772253454478900270257384673540485145847920375114135249687460452583627375311302429626464204332137781146960444235243886482583132715399932750409273721939408046805960812699355523234341114455978929906390627598999890788156000456323331604309274475478821523172274382003267317223987666477474738684207961272604819717391581095891608602971937224767042112849612056125332513920878906142602228152988675188388156573761720115220787101901029668027339179882915947157839621781286445626186756552522068041800874062253343737829678301685088143008294990410500287287835517886847615194326823197704627597277473063349087033186631010896269625962369965195760019883490546276552291491567760538224180480932932172694954390943897240022501584163937936198266622583440703919228055550929687041773831329597341852631418846815397491211291527331843225677312169865185732740735282804533612221852099366750780456215339471958972171416901023267082326908042121299256855262580905698228129395878081906759462803928591324713199684376555470334703601436827333780320889508631439906822524737038250891841336734163181568597226371730149073584930963997453232148444746143905922075837714520216273183245131885790497447853567485369349356485083642036635786293041021495364850664403874055784850341570367437370193844167488941265362507359515922050637247913635682538750856186974355321634151908339600199787256607877936533114906705032512769190763988083668583961035539881726817209465568487230983585009187677895327824158914742517267609988713688317208181578471548428019961389401707465271548919871380472592483052837319879869274624573109720326792982760461694040489217977142563892775948610034308840715437227987269412470155852449794393819708626653658547239023839854659041786525205942979696550906041931487998315214511892480358976072265280090901327696385357688766172845550898374033313769688801617419678673339670468015382657642559684421111466243535129697166547670044326739421086954216182029374669318570863208854422930500038650168231586155730711400606394888348347656304364964555116419122415183230351116239351077160258310436490386883194899123878265478136438176336292019246584564487352682690711019128793375506279638709535059244523038536921432496812963076721208273663812819608497474155334547642346466286656880100728458793936276994494224681466373439477563879439589172718504200954330599624642420378874853295178927304590143438255304791043509455051153007578140536351830084311454022004428742280486762622477557904935167090348393112341982987155417553743880420742875777303981102761745204073486725005097179788290550599988243196773991682721050689594561987840199774449098904454028657906638870424618674207999288016900053684754176273304973919355211357371677542616076107644937317873570831554941567629128610022018700759559305261529158718287573387117726564228226661917224651828970711454760000197438029792769010599292035541338940099591774262466141161854460957768048962059926696234585753687054686572001866732419479585366104388466104107068851014749124603704156669171049690778733079493520023738138986748275658765368471450017677439743944659642936767512052932824544821428335215565463521653231115271826497918690437131873524006147887977449509205921294281870481115945377424136388492121533941057871130673782504591516723155877349671848369386945500186904601821226913462375866528398433277419179548775090195996690679704249155514112774122892276558550839149310781372048398870307978789486471588623545167688389175976222519635898612411345199757709395454270918535263834595106306379767507740307234848458423318753304150625759640363036941787775893707836796635663621731377731099588642020700033263919132947459422919958450325610108880865272976952712233455771155797757582892305618608993373211189177858424057630480876948116203292352293927238945811673658835995120802939366261999241418837535753452560786997566262313116970477005670126172555761463913995511262915820829839700056008670721308901054286323822284451629805959848775141285192357818762634747745362431012164318234883712306718937679236955956379006209681454650870096867603596525012592117809974191112637885767238853738758321554690677504321340770324743376008871575915155881544781646523444998519712824205651405710932016863866702783637264290024245578537437633494889994207724691968597026777350727113688316406001384724399161454849174186349883598479396345869136667096323864970219149387241925450322400776270410618955101400394255282920079894528297902984913786345449493258382691338083226834055987073414499734551536582595123438298508276295421885701471745033032622938127972257499598264039086601046679871851615955260006296369568134669450183607752515488029577552748002391994685455333514982720335613189724723026685493403576829718828146561068819989715385252139701499601786400731213682456591902453028544415307031812779761013542024995108839004250467651837990805739348495019711532243293491420383633141616503763190735750801598912272405601949059761948724483327214800207468783791216711981306016805793646828988835666952357575510975626226997763200372036733490139079473157756699314348386855840156623012608495483376346582008554059369375198573611012512433116081382133080074411158811156648040777850144368661718571453538440240017273497220097928028514376949816240339734553772264608779610492302766160491907343709055547999817671143210989353221723670864225530606227038628651211865005095111368621432440458732047617051129828480008876651081228694485883891292489087571824422244052649297095631256761509945467698206542986504994391239641614033106542051903202472024994509165519269579278731274865245576423529202380010379543742134447978433782382038575726316329446811730513052299146397175452279608461485491399776169911722272963580769230195411849373332774820965814488281222376243298900906668862036452006657671145653276931085285488352465406037290772061468359627999972217890745039746371054916823209470831824365498867071785481470948910486835951290420131197411273781969110095737812652801585656496719995921331770953838909107028857793539168488166824292024674448845689244749985636995984662827704374285282424068523966714433133665471642392829052086530185745627138746404464777603701999535479320894299794099802244936061089641962910167692435058884195731313996584291781156244621722095078214643940367396075646834856992877100717662754764886579032406915536585125834062319479954827898839978003414299044995323313179407713557978474385265831800510590109825611969145236224836364231147458510425172639809307024534252628330316671459242667508195118184640377172473111490228592402574971812271056909333608590907781696821197678392546318102530212742025781168113187306108322618911449131625741539587509241916691380353030191681774697957446491505642065539764719894852195431481525099078407579108446427026468666615720962868464673427165126770995322442487006520085730106886925709866604437606102383990477989243949847563063554872203159104377332944552260096384387058805356949463353877646269976916890219162862244288859548030948233365831507281283897918911570099155057236790487278377656965512329468731600608726103260014386357465048430748115394373071581210782898531876466512097856544196898291508392727111148983052146120935624074691611015701647461357408147592976686203202812619278968389404604184035041396375106845442495086937031261174716607139886416599083947760393500519977650414249218717935549586937592817846796346291445191991760419975132349380875903985408894168221350473719256905430817484539211653136853875619623309357273376463169105380524442512399703558258379286839559041462192361132754889131425832657484773617336674351040378102129447898818448617285084613552642653501823732168448849665348363845680092157037598907082250118881815635691993512949993255937315914096662362007555087985658226588406043413981694838639378674633806234164631308843030748916643075461019293977406732954381901010111536282793756270110613589277089164553845509924692744195927389803276432767969651885286505982076825861802421783048606176578117167827683511867199452749656056049207348387920911997755130202069867351116066996652711292762628325364917894666222986770288048335153124721787045933266608509842473546215303196249905446434730014710091586932974897047785257410506152278178258256541627944193392605036903032927335391818294753835606974214763906638269194951259074219288328964719525469065833280190044781154070771092176279091730671640010735231820831896743709545644597131256172754979126627998640907826734705505187759707841977518355023399942891152209884794107316392414136098374749015296111692267295330337706190050414527028101969713161015230823633694977104443294540125481087848195472619210273930978898486986812024021753391276686163767818270796112073857464293431650258558358487140112487700426016515076145839459664356395968354138926708809205301111987130178217732935415063041146136583428952107838226157811196977636138007869377389691647460063059290405844787473359379352076883984660073074879911497411312040485534740146137738286529309404600186542744938103763591543033293265958985879319093881233832747379503475427950736184512413122177843461366833150309876765711377731406304985440717204296411586465102897159687215560249231939516932751868470351111532131548158508806757522272919622074919019304022853204982939993987620590557667852333251304652523028035398405275372166435300851755571267219844312628909003517024036495534678404081453080350989102762296291475450079597907692241246320041100107151761227197749912676843932060212442011668316445081205737426831731484503623442666712969803911529926310557769900264907558149581871799311034338573674219350384108869338013110164046006543217663854727180664631062291063692047828343642848884961001063833491691182880415923946125893922558620356190242848742460175850428620323259040261170668927034647215802357414964685651973803111092657949086502996451417732271820989162396018515460444374132365686218817409237054024667500395271191926895354143668027268436716294433147811031370084189827643038537446099008629550982289739356732507447650124363459280424979635299604381763136995085336957958701582816924758636187311677064850085157569417999294272411255957951620516754722280729111294157171193895767590301678583633168353427416251018231373673786263709431493742168560667969684805085300908694037237600391439005967837151364188880992374398346930018273833410724997943694859883858552643066917056751472350131975935193118586514559291554602158327520228393726085211631516298925671552141149482026991831125500005067767747166080989135927095207080784632576491040128687916890512064984560021442492548406504077274040161760843234971121284946970423318298595903414037770519002267773342752356426973173310498234482711140960174849232157085329620218373080399261302137395357322730618376795098253244866605637343300597297137586331552991860296399598686824658817954716660905770644774382447540354394669665814195419682537355091418900280474836620962737313722504068679283960308286532990909157108885256609884339676408040997009736654876008020488049062089885624961274617449403068283651404631247366745280500338567499868673712238134580166501245316375077176936623353474834539429440759579600792523932486838190757413305455771679323318337867421186728676828292657635723196130738156003326792392672370832470173668238813213051537228999008053199756403786007051772439251580230734233862671402752029773999507136744621677917347526649426067351254052723951092910840071323889767889769648053427360293281882656853287617494589336652393414930125883181344926212881097702605453188421148583545444638252477969677361292565309913581870167811749694509778460448531576033909579596357465643076287069755318509697003219474955503439581850792339093695114966665393186179678603605163645745104116367147375780633324512584186156740751663013056490749882722272669191082494680648544090821053096131583284249564501824022643986814200420825210453532832521437814550073338190270859295344793717839993902004412959475656908087466578179481761437852284511888103504270450782935872471132610896185830235676161728097240204533778549313388617190775234371201510914088125849486470392062208126294078077019829652072848282633418916622137489699466775015955156698252935781296040146311494535096205407692271083726436123435509502883373382731823787358883980138357116233750078818855684389619104796969640591606058713771800456660979395683359729370849514547219759521845682319622139245943281634903242971202787257846887643951212893656713527767803434601524108332999171152595270766485954183031712217948631224472060779595819276403598297191656685583472749542579186041293070012374929486386273408381115508637069410489130514343594795144803230287898313344345395770858468867545751153693467585875098809484513586867571095301546117044271469778265087759582400464153536395090760969839722957932575237299311159942384137582785860798728153850408460883694928999276988511913272955812706717556228571226121959434697000899478589145908967641522448611506080482197909970345301895480154189600032660299617104153370481511984571692362524087011689689278516053677260338360856098962791976807792137370750224580522680800423756288821060240687481246957091942263208020718923724492122739371905786880255772370565322496358811499763203003417356314977645912934295649695387668050539484672470759390195934612873548469462258400638325642819859560405981184881003146694162029246499414086317464288697860995061213490669405113621822423149978948805499865597365919373936815985235001300103594692456236558107373086263902569748593189354590863475394291941893032587096992644491351827487740135834542295065210550762022297120999387724032390467119694759634214089455473033449604902352608697439668670757805702313247984167501847215832789396058948022871533237446705435198145141154768221527642372646317998980225431937729337443205268265704245775800703218315959372916548905712962643426309427626595834518326023019097646936624765196366702603977688045817684716182141749017402967038440706365426794734924182739137717941871998510002641196330928758237700904627114960347854532384456175443611143193215952063197649756920702188084141407296676737798360252220348096599172683406369306459205585346181790398111002963061275410563567724989432401004821493442682955301470048916511634818594697861452287316867424246353201948091767056406518031590585050234832923735429843869754974610352128392418699358774020583179770765003910595972766079247365890743761120229325576626677166939109720978813772446425127292046623079946096798219596421497479827579504030143710238308653878904101707652195824329113269018925248017819386595810503203988262150962901101135324045013345259225116882574546462545204729135962386908940846325319069024610908970958219850070597365371248613808676080392071400949922905439993398841692647328979779826396344809075162052471442174484024930766467275735890243092713634752731216574890384340745621696938125076992239559422006010230840253940631715386281911465142332833899112514943673475301636474856721981679375511588789382036637325143712131820718591996105061686371508349999367166566597115028486905035546485034995309440956495586731574018336380496562176043172036497434410742534141149391055368684311874046932876351501800312544241431905287240329920111017911843512403632169336805442046100663380381271615361789802343490350740247608930974704950401660067377963316399499718815638597014755823926634890435699059127754620946792374498205491645981381664938065516137999712564900509737785083586485015766718267442109701602633956273598019703345652178246147293119588827916105005095484095288681116729391843080644039198018850307426740582398621480900601323576024695368947322749668994659002812365594581843787257475600887935581482003907545608310791807130106255259639116943007127101272518812558146701964779776704364808382023850493400729264065095045059396488704744497328287190113167966974807456113724849361391151751236478551321113211370081858985706342123516743361588502647577703527741245916376251011309196444062372370963279344842837329662881014105724438145441778937841450177335269359105012955517955854388485700808780642638374244233975212896752412596767327965803636431810062556086019122263304840005255307338940906232325455411398431641959399700947530547229163110864412188232299434603118944299810801938198927555907201818218737408802945978682377439736621089013485153763718834133685252213123646960366174955018164302407106866248553810498348682423579048383071299998831619274797349025107555860902647313455152552517563891801996832543271890191638280759059465594893409771965359746847952233795024779001602799743667672718624183104546987043995332388492771259120424722318435901123871067724873111455585529696084321681967568179199123378629983684415615648229956215833099469548806810101808157853146546945783367176416054515503235717826838190992797710706754778863629288078310346806134694830032243621272408469424779875590237288206595276022843689962596765312643993445003316030078799999630598215602105004865027286007702433014081901340797638525339767326562353992210687164930542105910674667188653985899707904185516813033662684501939462687161099452938990733760270911176292274622914512379870716253081685982446806331761969716579226386181204122009057377435311783343495547587725185648384643734709816863374416685567900408263858027335177115559633398284838435003481064986331799787546150136269593987633547273979889570895634583749138348867533462809921774984621397468800680608605750871972303708401352712780907283937343810611813330619336460365352458301359128025875763552040282932848665705005225992247688381464513717011350904117990679880899654137535384025445246532375996641702485924177368405841986748984964209316468835068694733167603379881723821586098378002451457020313776786923954852914842180259788163738154392827643890851291647156134113310676018405074713846884202011342113164118573541736991414230488124789610515434300370953226281607439717888227630170926599609417384516962260364332988138733407592242941526715203561477899702714665068972418169784200861078822497594482149914302278125994365365894371986372282349575077719399959242300528566472392668195146046383525334974072522799273475886327066262441484175881798939909025997391192170947965707669601587543493342552062523413246435626225650597939740747700509151435035890049468208991227891202417473097945846259694069204253233169795614587853894469335084056276632188159098824493536937032640467137563286038049164084059591461575885397528262666450584228269762418685131865497885019546346209209916975087686716390767058612827677147294536602735161622995953722486337338059639189549149015762610375973423406895064443337336658501777083077139238115444944801405756911846879170104111841589727086293795638031694509366535614859752656748844140649067797995087500801409107258024603061812644105742460286647846705745171897675298444431907022400344257859470171973934438864702454476132167038433729297312778951650987749523726605842552843644253510816650961429097724477179820438889416620428119253300397503743101827509951421408468850182204153274334197762957401974013035789136236497740242672105778337308390070776869932929719762558082681808438734820670826410804769084282912614025148988683914678161802452982014988033923273988357247576345950090313198607306599643172877045344738941217792281486218126018640551050606363002488551621309698236018405187724844460201370447287154290284315856974554769734099634682724702790034664344724756771387178965390941028534730577941031488122991723376832185872399873731354016888431747933247642313463985998217103447678927201219071617570026213267143040025775306579535172189615561763921974801895993246622695433079397336238618864687320474956000476803830949076515747868121990644275880365469737207965527665735783065646640510843822439297357126009959186868499371260389007749807018729675580052723334975030757998593608494060107210881951448299191667763701372152584488975068914595597259347681832979922757598361649383206978590135729414382706431034420935612168479188806535879004483198433430813651686581716326187929548531323130260330308666366046183924397419547229419262346565406935788607252850219614242250575523599334114227207428714132577283178521257467192618650102442975079479791584318278684640356403123045177338095301488109243390294587164982587732486227246199574335238411843344428539451585213695957515121552236423183978728190246329404358930541365477060419760574678515058100881502321658855188256428502823623163679781871278760724375261925820009859201109985042988428411507437085886420092898556344337957214113470277672902732334988217617905268155030031934904676951521101963012065323550092739669628255079373739276372883205355111517325826955537997085851595356627880796472006146469814409160860024927836046518845304890668164165933861352216753518476301049025013001379875108445513672409772381752088380381473309806065451229568465023790824168250231078895323777400284147725200240924716811746445176974614991987509920944274492790046695977698676791415226525198957725919958519370615111451361112819753547702303938408750845946465772061307294992804926918271447266078752508053500973028052170309048612990902329434583968406376982706913625246793680658679629509199655759602350936387391420008465394881818791629996893966480344914714993565826253855657099445170855967199665031787166595778848090575845002585186731555685752613117990396347044799852843992691929762468471199474923944751393954420236543292648481336736195540229940711794119418631023384273882749307188183523778167842473478437489381795997296877545285959912126247097013071520368626007294727339512973002115027225446977599010011775761947071973356674605836390903696443977907396876421376643789645387551057050381648043832323640558833716435277639703351052478206297984537648381893543930054270421762423169625207976265135409720328876771643677623643272820926062917730837359796288334276908032276476788816160668597634952179360708909542339006314206548379106354499474608373435689767875879011579318817808465742921277714509005438285036335087352272560357973917911349700290181997066286749815134522766494424425828146991907528931797559413263454226131406543143172365428149629968059286417298793915195022206428518939452511316115621501086815100361373834680177981095892871278588631341730805560517781179535043353509307304797270000190373116096171682727326290006230928655383632178307838555602024958617609191619467786231222934177744111530833743956415188918960689378291595702209681430430060845588347346390989989165685205884897348340889435725227430180047901129799369918392209511922894374996632048701275783249142634459838368804172390833738945795377696456025299708220127580644948589070264187488583601564417251277829801972456742032199779827922171607229794528527247252931268899039014094350405856369345258151439627700277379137967184026599071550626315168216549871634371535728216617751263643844538783964074975385223509169066486557051172060524299005356299450476813047366740127530698924909414736957562771299781351449677599445395002818396342412623514224261495897586588656087730307446429057282072402635910426373800909160261424464854532540135278149821300632861674074344580626961526179287148160386052617229401454264885336773550123810200420574923686498528879445044814398005897869113216122612895681030931577615915724674830453572968073979439137181215712641347598227076728422411376947354313429159837743686731117977145292994652841075140203052558749507560808613193978918397091679531525886685067921269248008948915069610193815295676566739928220792479201992581646873572954036750810186636556124735006648459757438539529119302463529239835674323233885331948487746927400426308121229107839458594096920878167703151060305598215773252989937193914515070799509943364085672758522766306261513991472791713022024583289387351919004295868890220532926858815705086983590218419254894614157602010888751472844658002212565529702537244080875904146642785171784910301826230836456625559196948787849784295388568654434387039844341209322109093748095119139217275047139738553322113276279843577515200427350082355907682736142322344671470187674738677070809004372991433071416444951512076860866808802060730690506685648459277895594929028376757068161402034318088680770314962377849872218159713332005580699057805523179096093935855227961361275283505091687433459417559041512716957744909347813262771947733864855708761537707354855287687676244850044976230584013266457511315176137130545049205904790954006779688150002665017293530929210209529735389063522189132902671722586603883922841517056553850765582895018139442817607139449303459794722926518778658645862630478850609754041242013425608727037966345634405059728663345846195192415387587891880605617829331790505162747513910238078547487096194299098579585380405774108233646160573058449491900476920120315946424671285331588698941169296028666726176056572555245172125144254251525700916546079871356334472590010255220006020889412968063810859623638012136984694114344666912020357900116029634972995697010937689656812269302412898393411994593689482513594363922838516763318569704974009291218306083506929079303470803025774962568003066559497721220962530202454836248678744250589422523696987880924908038984672189305696363930398458473722077612880330356382639612279124156418164547645038612861550276641120794263404036238944307674196610950766448704816770005755700059031686379904803756368688710893813360049771650435890932117798169121582575152126897626402388020009434210606972116098670946876764510674611351325953748183249870650008941761932117242660926199592017107145806593686076902772886102651205409837539809053906234239792408053239543537408264415876694604953725715738138450103767194770538307675391572189195425623731884208181878557975040390531924741178991521590721557811486610729083909435825595629819067383665793493460418615230407311166876253657435882150028939486120013375006943675900461931087351563427268476112314689508080848624233038181118113905667568063167752264225403090753664287743275394482539572495000705674691060692123723071485158363421008854490990267838562039060561979074293741534111755428147762009290164703705635945048971853828812815607106395406801983857730321458397841639957376501097281065709350707073591697421078387856890857639285275687138962008033696634946100410423090882987112310443869822795988166274485563839397924015536825010724615386689635109504393314011392412449024343693201251638415066643218046958774287984759358556828255318131166308257339740318445222871585529607546372428117807570767357068120507419548494177486824125321578106894706413770862815988700830292019536554046602761467968985659310148742030912580184486248568680354502234313039202358981921148481404220330144165557958953304641762516574681109950102179403086334992860694982375261227098480036303965162137315759526404285169594079009194979130580152088900903527606237223351332728177857216907492469258626878958978626135410656142911483180269705638422073485689738939419684186212426534313866689555485914495459601357332757705279359550814007255860821248194573980051770965975618399745600935236115887757356053564148287999670285672123381290978812325375907343192333777484667271510987523901467669392985951802891178408744097178419114998672817337642870051175309920927513614791229022330396901052923370871647406874931712638749844901520873506431168411530725735350609156971747316517180065375953579915453906410191882092825509073657058105747446939439078529055514298762915629816768100875124241987243557687707516832457524051036155551717119563490344048291891183021450693593944553375282091922401369350711608172219406662799183259432317405022398926059841739716914803428273633202447320049840691620057280760977778064030731318766369883557373258560637857283531607084322361250259404758855599023717875322777938148031440294752489916091342435818259625080716190703978130999539475660172837577099172756485729109315576714588125919434498181087147080400311423219363225136756803606498534459924717257752546576014258338028329660039259065413864825376905875645128170933010875584131035918328166600578761316298270040613041809064564212203999045102830561373322469811535234215610883406793672587361771110395546558309896338549608290932880616103302169340966703023145785970575588100980943733567306979845995258917479821778642822395613339461069063007016087282063041698155628190499621573495592682222862078664511616293598367537090475758991616475449005169696744363927945093454956915055217308793210929471714064825409634349785169552965725176293990962688269967148961838627729093308993213450011888943965297687001018314516867839627633475145261899715264839939510762252376413060864130989406697666888142256060571210093381527992835220791594575202225357467751057747703650805565267570942529379835560232304480462607175018276940669198303718562216003565512390617301989647758011447763690647230986759067752332651095716075373090446213624673350028520764058259577891321253481211916929216361781601324819189319479787037962079434454775268059559390873969834731309910075102253003061527515836951166201261592637149264244372034141214742401123120791370245786528803583062366731241884191846538831229350662164884726328015893999873278885420796196081120511048236330501592341359445084771550939617733141059424094169727333523797594046478781662514049608828971037996460712606239970699968898009612474317308341161252882738908955086331600950030429780866395578864665744145420053049570291802029584909546722226619348204193636033336530781184883364085273150780709646712205019482735821851700777069070385764848950981832680205369083082594801260490951575017903602504633061757989356011153289800748396461376044175493584138064913766343948237361744292920403555066885124819159815718256092166388958611082329584017345248643964365710326795019781891420709031893916000244244729390238639710749316126566152872511136557637207498427359923132638146899316251880333688379817890465098341670070183184001646610168218882178252709781577115486345736310065157845805443498713176289663165243046812269699010280621382141987473122876984681946705627061944704770573855607820688911657018681284786964510155787393466559546674706486943525743012187552845362067434148204280997850354768185557821471184257579139983152296145882426576788030824293858903042243054657559633710332654603309203309666962658094135607049336613865414958484812330717726929398395920375537244057786808614080056870390612993512458874716337295981117564965791831443985869117565603596336618857796347926366837104891358025302328659602234178268415073393331987215856530345259445059500581714598236583123984662674920083818619030280789070302775774469401302847267035532444159118893069629877117211250309427822036643296012004921094773806153144996854209979411974959692456163438478170405916157680104179266170774678276039279555206518452650043681053068874663983080940512407330497891198356479806060026177790577307930384497453306278359711129883093813223612657862880701662924860599157144906550026863289521214920743955709190376569257422293323471277787964540215725548953248346322065701228787408191858289123504667055810496931428730452830660927889131450583925444194599913328059377341538919161145501043226925217696199297582900757413948038220160252800512698263274352040274424144351648167006594619862428963643025372654873976635341259951526667765857337955025042322161351465052543499137184233877226054278660330841884117151470003059788565122394673108741186875949122366144575096394802943212336082657436640561965436743750211565823797603654054870078423701429423714580886640944152982621014412360530699489636791568116081874041277351416783232403499953333463728361958884838359758866319091105138194175589955074327184156896410945105340743392581259860368811958398087015496926432824162056891318483076739969708102270584522031342616117382262907921202589026019415236775560195744551764015537388683994350595939736959622764826567940594074286753463032319009456101297315633371253107656302428948044937372360238830320455826855892784100317327580763201307952684257207493526689420379387779887031729608436863492773082323749305912256098081366499996989123477654226896277427189384279906704863450244208141197085810690128334259863679545593474963200430486018949166184093095357048684957275143583053450888844836318238937325949305714944783990357542408145756690404984091468064689113062400785618953869818523408224931837865359897645094359827281754579355973960450863868531143781976971621600094671186416040021653583716145558243720970288212235397015651833211526124489646816369793162938253137273467657983784069913561251870895196407189682349560853558341926064260786933598374420378705244936807771172860830124854435434959790167030868758978581124941536515731658217684762745689878848529118207932364629999087128926885249794584725235575941988911370608728116418473587783049593275900128262506330519482347096486994119571829264249235721289843655285866281908262123931283783054810280433112159321804159418286162329671228909580820236683460867684365095852524703392755996947303499203693286345509552046998803623654186344643059224129706371499037820679652359426698338882006539838721228488199873149086254626263050905419321215779076769554075802374865852808901210788103769698917083559482179779965917360914733080182122272354185724643991466637891600628345995520991397753160911096853562979767370458149364857980406236379012864476927652856194313894601784490357919135535089785324518275932363070522907509623524306097111333323066837330682416167634942630113599781819126927073347064451417185649432512118958920340228769182433499698279331490858578292323742365768982765168180247070576465387005664945073691896406928967841555093435089254412675904739684710586456215687198882372303052636986171127548241718829654955852987656067527955056446610933135750702469875329989147482736889292467082559876602520075321521661601044274880397953076659166490868736139123547672770020716155821974706049152616266875154054713171569053080603189088185975483314641637025511815578005261983421348562684354695996737700127458411027627885331475080899320762871324141775622360472335130052478240089386604576567114259738545859958832571230184563733898477308739034528567976884532230094882022359827726158859302820552976170427412445114764007444939652691582837470939766822770375432176614171118266952784315497909322345651555972218726053757672486534797733994356815487873438208581987706374570437465068897600190112209051449140118134798823544694843888251782018244840874626752347092189525780049026458193911254037157075306435159281129427078889881080169745755900565613123964819324240408684210887240823767938451001203233000750347454561990923976899115215319889039235258688920976987593463590299345172967509079203559257144003153531393908250015193976078578468704644403628085740524168446436949433462769615050888558357022716844770118698590753079075350266250757267721630257132735131315326928907498178201003674961060125047892042885264653417739949743564128089992719322364559640354638852455938082373506571234025814095386083076354976469255839198745997283195412170842851574147022739879182688499692022252528223192832234672841282350452721945694028400424075120036261178693597847694924936947738029183980662041334940150213949725005937607500349805439009674481151139500650378711919278833523028835743333561292181872700595179291825501773312266109977432465971060585982051265682517673025578773201983015440958895746695265454428797299302138556276905066593416712668378069117562523707736411152595328686320167446464152521001860297271168559742266201048794252650677103471842079710363589574704904518215521757964750056663431209577624831651499023784968246512484417436796323299700007757100400772627470925249281453780844980432353310715543409847589590711535508568277520521237969627417361395206135856523404446618003753090845320389429560304818002746178065744471020175094404421788333865471449958563276964634117151704119629809334184164504983605982913249672043021486214405955625408914477285539458425217146455442272599079870555875038379671711884410482383258861958341087670311726263203000449212557535470801771006441987103631213017379565207179173141619576994998411184690552439381313035669936515262471487081355070893748962883034574992080544390608416285292451978961939546419563821360847634067351231981490233610230561789701007437565963420795611896402886284694472153446451210396647027661577406001059492273492845269318124514288959572609020624346221670618671636935823927851876082113130600455266310506156806080203254402543529393795325818707834029463110014628173196637946837248235831329689862015673774315441507885589407315543118850383253928165282595722484375429028148937781629372651907515766557530896762690361511255553204322265790659844098598930900335469133776707080136592244122890127318997314683905536848309826134636221567299032761194524548899614947559079824864613817679690671681781539472939374216511697196904292476113387636381232161167199393820532283375061784648249561106160104811763131105274597453877332712389311470710069148762932519412404325394160175162351075948146863846060028849591306131857283247377008063974700769508462421303519452131979766005030046509955603654835148810762622366766233418704012236679800716851977436131588756977861442146315421450924824368256330140188490924959765248405502298341420971363214065877532803507298386512536222830378773650441100279548640442429767519195682579409414046030310963359692618498132239616813846081220899091790840685222784278693806403942525683295516260416956908882033937106592894061561982797119026053181067212958280261423332921172079928293118633533227784497397466709103278476096758662284977100806406151398408994128972410609231277745868721989749593015409631859919307714697498704137508087676308848416149710771844857137939649030708481923682768034067992288317240708603859256927371146044719917099006881077865219424149614141572237506840448295061988495460296334704722571542280408578578065052621755562409670199513734761482996522374582436041482048063432387364914965402035175537072569926294576381700362387282267122732788996053651929240504649167425765178004338724047895108307363171391529159817224370314213128394167852919729362760809895829816998411528792659057410827004525471500820764826750089905957838562793373091935303231299177196796176679220097698692276736916629412870736453564343244779862249395445064519400790046858129619040543721973511284623005679153370471654780313182673262620530496548201259573856122772694233045948899880999585908731679455762435603190457143605389948650788722012197198722931865338570441744166773805595758595583594387119028298272512480219406398610431019661675565722174102745570555163030175832909730604455673580107573712792709740172293940669247757206903496024902187905737859024866880403627734171640113991955726718289520089255219052272578325398680536203345178279533452503544818917982739074847249131682659847009249080411383484961918891541252307604634062326677918516886965092914078782180428205624853167601140098890887174739584869666636342241782979221246706052545183795795230013977887239080172637949561058733451022603279618269597281614527092821371085076866155646317985194191028840632479575227482650267141243909423419134121147537764288055178151951117577317638923581989319210061920219735711093708506993510139910908799210636078773878727965901069043190697324112697776354768848761463976437900409694961004515063331890783444219566869732330558813248782813779755722923907517814269693949958991210121069736109630240624157611622520185371420343329192330478767595717716728191851454408438339556089199448249952286671418290533615610066957524300542229642636216360628254421217298500658442273236919082094360265944575497787669065902263781645126941576828456317336282303980927967827228692473467511598731304619731823759895689853634642656903578599647734708469580958965452875636467244969197672936093523530130361235306081036940925523935371079853235723770361801831497053719879080526079336741807855996222099031452084515380797246077831541730784662878825192084008074012006700352075188001098391360551123476591126208548509444510932078220102232799263504014890448673580304362102739887012849150706388031961426076150910375646876814587272041443077747289836660145691053826098557424567595795822326925194756237986805487535459796612174293949595195215844866114788231280451810725932228403616639697443387398989461847381198134391211171591000404629899595686227920642088916715824016977427751445206247316676677725069033055253524765903142879526086709607696696531918950785573854630830155900349786720677360619920429061754998034888606504337028939713760787102516763348868803827392426863260931444578917947156802133964878259244663103078713285835829925761068810619306423798462485075239503064683648882903881809907845009342931759172308095761493458846655202628027395817262302340756485782282950050291495202203654244608189372017004437555935473657208657093802738249910233259180246905256114707596087885739221007885919565941522256735257511089976648200537208106144019467598073657367496142769674078802263994545759209081503380888520711936243097904396488930811125762393684023786957746075146045805964599960269337787029868065631656913719418794940892825925704045024681951497270723080077800544707432577608869735228117603959766455390873774692171954730742605559931623520131458182012815078866686125102222583471623781414142454502898378982655406945818235236728061587367959261704390281833333272122282925484099728650672843501178339400487439721628653155920006839918669526781035723105536466308437828560605313629198623424146522788177120138918930060217957351282120926463972874930397104595618325170157609087501024345572591336099476255222054661183890220692998546906616191388880780742939903509585940608124619049789460172218997136911530502520738929706051468457419341834496484009756012517054792946436227132249368809384645711902638512874453761891524397498190838142468988753415957359356098750623407968064420027424489040847499876608709024404517025645252219814068848212083857055874674323929428147846608641508767991967380945332102526818427125636433241625898273075576307195776242113239807367293393978290543797807486426544684396878819835450632210029606972300163979220507307708423292818618188209625376673736743189345755660286697625158723263420865189288889940911494628797069424547384813698453239255437829674285011508203643382708761547905616121812782696176063310952995170107519940052687794820884378470908252411626420849947791725954625232087663816282350441499724657366005673750013544420153350569352047055453563786627025568504582349215101229125570269335163971796677556316005127031951260246700484966297886612656458596068748256117573471276284633100836667099073758074910749095224546774044214221246244455836900058394489542845578095554780293141313762169858941204900121593592631150943965876327883429576713009451974691951339380506948985909815807879781568291156841028811922423373313572894171383278861272293295108040644341067692384423861819251667901464240025947989322815102420477978427915367823888559241510429041126152015810987607598373408922684564418235561053693874693932846694024001238343225943361099211704432804415952527605737325139784391945008202150078046258835473896439000601157919006838834938393623366973772760952576232460019292747570642056189546515115093634220944134578265706895961937248460078286868785973432788214019242379713255350426653751059263007771272672380813356544170189194700829708323337483305906761865341524076325869332026685324052604327181260819261308205089874083710736298597400165148072423077117839569386200809938784155912087199208856621842544654344900991246789245104560559842453882106433309474494908813144359460123064418226006306708883130452388176229110167730553666680373573081688459995215887226608906377787831806008521204864929690327961505297869357572840398684249816673968353328186050256323433413163898470322602748068036384968578229286900612238695866416603350098012033056823117682901252962498704336027441628383822939954531704557313528315781818588117011098603053311487118678655691020416058607276091463013791303486525034665564308876086118606078106232652512104041227491760060544242242794283584912778590396233906545967950418992631324154799724143246226789559777534039169450913557848723678618088793825818636894912310639798078985822551631700288825453673865351937525535898884353298709321290474616456800747123470868327415461998635948104579385674420865516850301120769055902694089366570944035208832846141132134076259186532514205539901404462224290288088010325666159810476432496985911799964153708584911573715533035073427999262761958320025666774349627813386090978757835448048556330805092830629617708780458240094767876445276957725243163793295608732457566505100541564270660558595499734451585620413762563698744243130908217017079253706767010873334730856042711473301504518416311218587527223349854059855006377147086888965505774171243560479749564289113224264390037653050583923910657085365241815530651389650818123534714695933462243716191110920632425476723291305055934167498311499817582511116505871409066811882824976831578655537998821048937527770571418234061605177292062973784151145412403323996542859847074172411479351552768927409671109975684345617711916749172001720791516250793394836520324993245939218700961335148567125094815238139904153635446324488105250075419426666066006913727066246183548859712484602628205520338812323873306077976954735721308789497890059137050911117912336806444837327008868885238349199643785761245494125827511484794600837662943426567663898218873924054168414328296600406557783838500812059216510240950290992261721742729685325373643395587239316341602945181171514047559891753819998434832793195598811457229607352646748995093524915552566880858739144233600854995520321374227337448672559176930141554954092591547073075983473337414894989164989272699745041771318984972921524706427343144060978974744359856442323543410601307272907991790794982014021440402459729695259009040445780725262585096224585169505207803441603058869098310781062142538117486989644986154148211679169467788700940816407110478338943110509306610803595677644291873681414326840631419074782206549298318882297455155863508667983612578306317462325773866615767124656750810234041479055464131554084294940020313608643816993020638878046042528755069244117767672283383139418895864503984538851185553287058793577901870065242004752548953136687283956626705871238344340658509817977066724559007293160433463314136827173986264606696451046900279444040321914678191093152379049817026060199253101911237659018056681527769572199564104957766824372244587590553990429437412080669742559730934772646654662704881651981648131505898560218406625659972860450366093786277226963968230525647197749319155560920320648643688014266159532454861497984832101484847410327152693316749687975242875980265280114632832154878027170701846814712385983621150075460072892860522202969459779401031657191154246029397773473630329062816282102737181832740884670180662002984235846885770654152847248844263847939841345275555302253118885897888005393794608613217628300940000835147007817850966258922815823447688483189282636999367375835627350550482285620523140961742802297174938431965016941357199616454680089054564868819203631771064209763633964044051509401735010335199991214519188417445907841450985718540972667733050008982870024910751343276409107135929483876034071774164354252607532184504109158758352033951593307212300431262893392412521136583387671274257460717923791050892228984165977776787047913474642125140292261359608421228193583262498126242719213449550255710253043859996085208009436541404259651919130490313415515073452467054817105086236608291281841064892169126166431290263841124245219014658437717488287489826236848586277409491585784126699105330885299383767038398120060488980281116399671707740348936834103670264058826237159107693249100933869236966851771494413981123652922650316070199384434670987671686334566733148002295468683583998540178205794564022023588613423548746328392060824627991146101838969251276788178848279552488023856494110211562563392107409889741061037338434908602788588984355871361091841937169498765166525797395492757599518421587186494333519752793453346286155597683809808733277991328730073089186044833770882559508019184606194427893375553590608252887031839516582377858216783508510157428468859462010138770766462254454080546029841474635828293918864474623484510011165135505684081029697825238183956546958150187676637297455351827695760423341765421276763333808974712606701260004937155947125065706693575996901130121495141515398711012188672973053219600202237190531222503577230545551821974972977912823077456849258779224626565841739068305606229245567266141250677507839445539951683292909971379490060258930272568234333230550489103915398589155190660367517991417998203104828810498370639931592889662082097885143984877361356329453724793105995855660221047376908908403796377334959413365250483684054618438034243095874514059880592758842823030424572589158619523246125787201194244992386500808256046965546310115064526922957089287510754140181559115123912596391755227270832919039944482379048422760010264589129224285463658081735154141326514129478198723904271972786705244807435728000389685997299121239437921392674958920651336060128473022512387253190720283669833366003829645767314348297811678986061996840341948765869222973304268446919619358353682777897499011909154810971943320819258065449697000201315544160426408891713993547692337134578131970936968860954089201761996740802843878209453608327755731808539270919655693469303597948464413917695590122607012748836787504598542951069649245365313392257702296273901996009781064996726719756645354248387201063127428969283910096894321752923089012566052736865649618899067893644342136128474152707457734029568556737798213468460522523699929569215111187865750213829247613427513667061426420685737295322500085436084291065270936852787117523953055070844721019614022460533300788298931103411123514144064006805670904900948317777360880560008619347483223230220320914695217755535385745011439233907966464715841944128625585300156132090289482070280860411985508903910950839560977946076252726324024977721161486564315363322903133077194905438438940600104008338475032433375271669168550261286230829705983847945218294369260699587566554969572602577769160213085645314814598895267392504549293680627400948472383045992943761560851880230335276384580059807656694397666017144823629503512741594175504431618033221826877098437562947579035756983237148792935183882643078024621959241197024208344023237101730966049320845517398023091073119179703433943553202721054808953215434770931338850345314064832063691547899659736630336943560173868042262921998465322618616543795038551680552369729246868188192129001988277920793748612256224332012857846187003533531969561050876156490294320440225615420498910518710545729422041377435239849961971478151810214094522746669321774791246347400772028581404884555502542888858859267158376162905833347360613473276932689708511922895994956221136464622952059043425355168740649019930277952603674651535401314975824813959647593025909611039062499488724432430423697730236876471140592131924493317755240364606015585432555511794313926321161921348009479487979162198151484026226494828965497947270001049700919744151855874663248924395829946065924596919160663051576681744873461637968637594663366113918513389742009717020498235049998398318276736437306221039301145169700077299299247151947921479997031522530835388279522774262448965374692385514696328137452006836076246557228196867458513859192315889982290527013823287336712908141359007052852776529459832920812832941797040218754463348180134241887477786996730424297824908417948773713433826875703549509826545106858303227174866034436701201222113252457107052922283740675307785370769463627821698506609127704758956472643097924051351207844154387906123738261756397469937092690032789037380162473599408495336693310880232814663181419092459230363957147741866213643774703538643386651304832184072853852575664466701041597014417416676549886178585563462581773629539876712352077018628477645706203871621775604416313192965759985906315990846404484975021114700046108646537841698278742099036775635229353792808217441024619652358107557353023169652433177290831823803826836098111001573197618349345516786219718715402208529311886642381919968926825918840203730399505854810594166121872443934123854240488457919269389363023229046856357899944369179032154278162480562981589419698250939131260972593578738089285921047214024435747712075849297841319815755649655488609473652437007412941884273553836755026088383953513538476193659247117379607551870625451035851617678039747199544235335115109368589086567537460714628971332337071179285703479726840190878977206396479866851378803541423046441806236460927585494847052383167699759354716685227798750313952348590306244249918642917989712607305711800705624102618615608906269121672375034564154855894852507135514801298975429330061460610257635356109522382778709880172404008922153262970074987412286562419435180517047384400392964212214147835346226506649504646064493209220014396049687626221716492603104960018536918205387733390491142229886474804413713899310708445024541591676731901233463691262567959566470464942364803102924762958768199110115257468016752486292333871601288982286324401545201632125651699273872301272113943100893653370034303417650069406413634495551806019443881149531673627911684679688381344653314330556223563953478127440802200074320858396868257040648188731742719364718259864305508176959377363503947381551283560046729188502789899392079740382311094862955437474623826967569398926774526378547340983731863739447219994135168337649817086982167466339547052803404624964093069659292433873119748586241631633570865283343052320375121352870683959755221329401470822943146238694908681516995132183601457254052975516568998439182530209880669700187603134190008419379175847440727097424739178201154265658900286327470796742698174590685083649191648912784136593214926282078795054767651956446313997023033104125407058325634403086903208651552399522989915784129561451341258737067645132685629423417043928340537100057200011484310532173305094115826295985871395750353730055167244221325887259478746767409562608015992768562202835882412214768578625913242863862569713305338475641913319984563043140234860324876894248548518024209739140356983061034411938010300001734982597659139253544013724852536537530793326699754542014370528207560587765091975579020897506836420747240223478108563512901815553465371233622267336863837254133145188835743481146618375170667596042875208894663402266942395151589805083846160807512521085300280311960202803219984259821172402938009317666731405255632082248339639140108701406459954124808670451142814947425424399508784571815888440610584845172064474320945808212720369901863675300688418972487593964755004268863687514170272612189309294953384527738889117675590445319924037102868244190909448615629978650484536919780276780269784494280781950058044493860505562508650991978820218355323688990158290171044255494726683989968798346370523387008272753708838538836409452951626206437344292604409864930733724815221259026234380123807557883086449622272190242341567747244353527410768969711476843840537764951292899789654289605837941330510091604874336063348186257140882316579448031045911002391873178449308247325902460615855107944844928067821948054259699870136237367224867239023419760232544741958534521308219212273991222665596103033856793833323599291147412492788326557529002825598701836518953772333950022828168409000545305703600218835035623950706473297129816918034576715302509510116437775314551731037614551559398171657413048300698385159129064771661186281979723034442704436231137831331354885774983510015346328006788256083671296245951393114839351640084682532551859549195179737095429136468664880666466236262490705233810695135464963131120414493648434936581041918420644999226586446873553992395034645086069081044821495402960663360303075326900889598536285263589846975619239986014415585017393024285936765667767172572271147800743385865698925704807748468570828012723358203879117982384813960867867089418945060106013060750591447662288273519798231277098688556848572780451776385726821073535778599074707025270471772459041681436365328891705650483394288582604281001532280873578133329535594197879951091529133614638554284119934741210615281371474882113561625559015416596543204336299307404535896922186855971645593277064698574745132981867993293788141200351969111446382052047627472850292353007802255879921475225944446971361824019651516616852894913359180456156396206864035789200195075293706636874763781257107044772063378560797794926402619778764472797198873729269883825115498138038215010270688527024328988373548928052596769498973258538714130362577938401754657617439648608173395452182278147391840428927756191639558513482884890140762570322154411689150699767280738952445834100024808308818655430656160744316199767465575022006440533388411936605466517416826056514834575578033008074067707860320615160416200627386442530641988364172649133353143269364550508628129673658767029463898800786134567005418655792270505211325192300490720223420342089968532440054476320107151941048478175005635587761067090304385301499803144769852766148319814803902685615194175727642562600998570244357907271088668658452215628375912699581132775573961259117606141676142122685458753411365107310746568325176917527755759809558398754664356636607836768958848647077047742159320282183275331918804301890217014913124433240096351926124134718090901126538134621119306373924294823258580978515350067744370453742458877274786332105887509017646449226723352939954980759067245387097813119149436619602599822430486697845893990548288362932598231554264063939341912214792679255390332503173054207398066455342079204798353874639515331431534936834426848871139890156675875403958357392116838262703279315066065769963118670297004906830748231510743378285717382718468908746571039700002113384068541763307569074071854932414725201696236038700865917798859912298525638256935933927987191414234287871131488631191026631035180444229583290104995795986584383392603900958541470231172010983452952903538777565947858672038893312250213461194906308815365430175479710114657357676327479430698622553156996650672015813823173181666191180859470719247443287499384694740342596808221838976349963422450640100898927989995956543923139713067782518774623143198449639078615492043150272191520714270806553829537362579391949543934826720165554768402990936972068616219533468234654376969398462322463641728497628793746500897663832763587597098779433444060111151560613365145798288855438516482209364939268397377102006425811879221094446815908427765077943503954077212748956673926765592476590912672040778711217728256523653782504195480593213435261927956944543522817156860582565649265833717257110482644436855154639529384385562463130629418230665130292600132680781871744902126152638539860139383286356164546047047779215938372554690539675241097692154326555170029571587866390307917757868401374348581056195397606914917965841089549236822191186044982236724475394537374390750504979960616615540817526142302224352847400273029725014309803062320355895267208146667963563514065522626055149197010486630337925269470068569003044457651437896754304484418823142888225724479807748876565584490379016090104900024302866179987340126865039763262564261906069094352624293985328660384535209066329050220781090893436295172151411184992498719322609104030507406386754260035626989550638135399298274813110637037970235328177086096582437397944424001372110685028940149276505308864215970236230277323107239267809249720363658857533238645103988386740706259329980997717619568673823842872567546883071621746088941418252339496123998949591203996683773211056236658584800136433937148908839018523722694391646328422113228119632560882213024997883143520809742574961539226700942232201867694599185334069363617587134587285690782229758464692134241208814062658186685708807329104502276723086051880290673012938320989662415112547661084691023072636361757188550994451314280533833298639497023061701345753821829433761189320742002089411177149000651435200356459830960182797474672171967899543683142715488571907644955519363294624277916299787996794299465587114482363925910546898800149849137575282084567522071399342164192160608206347755445639389485029499787114368869398324634458267397975675957941439584425266858293756143972566499144156585672627680242802240972542059709221747276627130432485279043455268533809623504737684036872355621861506831470036905253642481092557888311288651597142677933956098173765662163725690462759359070619791647953041060184870886049336290754402026157588850998441963401481880247098432886027484237229932452536937952449590598613063014793121997465523737794367227574551523091885007747991644320498322225759672362899273286521785872965701562512735745667090241221777147330002789282119668167064646972311570767486160224740523170150492139447661290027073917669705251161958763766642100829690449343957256880344058051150613328672435312931996872918971795567337159322416159153118680380548478008296509695505042333850260424740996252156500366467341389367015618014930143744349161218586776892068513445450522125274674479567998440793263675964221516774113931716340189195870985459524111505644932178566272081730889490261483540455507932965353546355969344995096328847312069432588128973869829277473340957353425915883617105236045887947099661846825786877266197513117533907584929429972099534900553063770407354368086800134138289236554859230248928266862439769326970715623467387451482297633687971678232983161436461263310012941221169722679237928561060119077189709894814957068380470558721451639048921056818170828245519866019889029511689520530318529328751121968354679630506615167829421100319872529508396218567946111885516993221009432777709118384373280534169473928177384597044447307960263902679545031422737174272443073245593787987661342250439096435858063005787888958133011853859137119210872534983391334364916925077821923667428775619688667486590325732299568352421447313950931439598688204402357148230346241338558291775601360404597101223856050453423932356064115368119392086050226834686614125595230409784585438365970409777406122434900790969541548800608646346546370457062818621310562429957289497689308378961283001706602167497479594192364316189433262979062097215076843181209958528701814217391822169801056213348514033085618150530536887355403987695256108306122025771365621571092752058820061085097221429644806548581601080780793879253593453670784503727444685952278271536530069804329115877952709726739284898507662527148435099433950486891652649025032875285624558593146159290682844325886186069499506544253206798071427884941043396528976981916203689966816813931752365530214011224961506152001087370900913221771257279090835895281527681067188497475927698175399012113962319002081823642903581145599284792250865058090386931366000882510369824536174606077800435618481326564258850783286242236848420099045940496983445780626866231839255313716884436747483910440783503749637278149448205762860171000203991456509368312181697688435187222280244578987890092681905812896995775073898246315245009766703311456665522474650370081583792741777965154820425298893044716053783691176642441874246249479319378251707165891047555134840937018485200410727270398042577941006588615172878524190511057673556929393199528061218089112127768149646760148267023852815117669729796723517013646003289529099088067025432349228312038506728631930442955704235694247026307131432589475119239637356404261946677522183241076849219320571418868311194030569331796979862946533727246578105683212592622083182861603544853130557745634286320602858118450626888629488069883441088600775508474472338804010252425655443600949805181909368523394667442599008199135662224506703880661130739080721780172673514072162051928956918043097682976066545127193276898002619953309657065471630066300518282124981969568882981381441008843795033649409373527712473179811588323452783743272732665191048326552214211037453421127173964470779831923544861267289198335667811183794538725403785623958951996516902632959256334525730941391616340863924887419186352657195267192938749693105825609469206750203379480977447591237865532815378470956734300984450925894506851058991795782636111810066918229967509462855866446201613102859102668662110476535937919660933182337133609023134039098812495703155090514203968155611263345360446748610110444926457829197698327557187925828396278383080192477550679800480764882047675018890063210929048081073313922440265265524567627494205716023600642447518751828173511475981765684216982736071501534150418995748503969442056198723006472332896781872832036490226248788208699255094608639090276024033828750861950429529513701903224133348095673191516236672463701319243804812784136440916263261714297140084243241039613699343700840395645709939183162647985004806943679052585962545005759417320057895735050857433011939850501910224356979086811880874733716918613873088608297716431702750790915189179398886493738383131588895656308545585728839822155635594725973747140093573716709351619971334992788775911227970887811780533913892514778817894231573468390346476233939891750653351752592085650773351389083688148645121188199328605604126755888567978326985622985481382735538824705870974232183076490406986570167437823902082815663527181001621288124988095477535937986549337281014283065498593071032870856107859713603589076635716145320436191560195995499008849463736143799087481394587566840571286823706596461554855449455976754546776192137003134772465478335188125834479506972475421663809649599557325137188462821503924228498467576954253196014363737470564910375764709683604914381919723648383814406117567594236232199543404076215402955156374580685386000589773770789938513006899802585919577465346978973520283791192936308106199639902455422993929602713087527630283264356767705064087309260030346813154510383402780246123670619847507806000308252872066335776405153441416829680458048923935590371937086186530064675992864735342347612902190909838576900821937124896673789191497002570426092343055740155138259547690694322665011487433446847159354157854822208136172875884629502239101148038579745625222797862443442589422848694092280480600397075700914541938191681811600002257686905814713485116222012184268981893236875013575820186536899921289345343313480952280911931673895614953630900749475823773929793389306142485914873743216761821729702060971706877885325240885223791758498270909647097377212373225923644340398693960080439829442437893390345819251253008085361524436289290758020177365505151090933063854050993008552042277718539029846188255200053854865399945700004044320566948557511888909439439899502868602939799941277568971238796381487199130657421314061446281641314343217815183156997185105764463267731381212377715177225528147997059834328240818552946346394736891902639182221370238195578832734167654608331734337611512182301026307299164904916537755500416484138285222873410399456273677553587366427365663786633084089400886214248869207457742144798276551972305171245448818716054847746366165697928314552618237078979375737031952602593361044501566395919762663568152240871215777955966478194072000566360363219008091311297911259307009524508560279033710375900354131119211405047932564908506649018514391538493226614006189328571420384169033389764622305284499072335138794541775267985622835989644680657768070166483803111722522887026909087946196991367544648072719375919435149552999698097223130768534002228291037177810087660661157045513317414993116705293438329196245374402844145833809001039372989609488260437544566850959597020119055679381644520594470288742382010511791708803292447501216017472609996148947893532411586042686012487908196042540695205479012259408201013932037423899621012356666048984915050260766815710587928059149652105201979485048257129420930638461197539023677059666972651459305353198542921062244387624933917538359457190364616428051007771551404090366242457205494839968934969380902495992982394173614885764849405187208713093814535581194503984853140941603254009982960547968144321497447381120487324501133453800486623459181974811152664021337007763668155447001412088399457030155262614683610511513709845944717386939729086117482805757714922856766054897521505557246183251818023088389512487560405487904044001631791114927671902502496176516960848895835131699307714031037680296470183718629966181520972903426989789871300884884547892081110031746480930992633784741969019722135320361488400455227295516632601595709589865904924460518885707050492036632386292870857479016357957192611563858456311667091999225655793452031210749420022500834331400737543040468986538540689879622049930797682274678817495271963295347618897784907875607073064402385823463216697005380302572887690525035063669942367898664234137344291309792807006012346210197996598941400601003145248938249545023221201695417217965219993448735022383950375389588386651339750059221491079542319625447274667813096461501873241458477443949766944494459214408846115978748446455292811966388572628128232940530104762791750036435409388156078060114996672971638106929547428829309339693310246194744132434922732664457393075344312238897957385223495965967867927843256734969833499313792842410614651487394108125704414156928521521669561783610526742177842083562739605312451060980877610852389204541054804707842098891393119441500323674914483548441898849123112533432271252410291676177870478339077750525301602713348084896686888742194967259201534636319533039474864017728059133590065477985170180802516362216994022326955899460703007852498580727033102730830338097245473299303708331927280714255586852156112618593992121689543959328887210715918940562008661755486466320344962728585763523221158168917545232303054220434112487232543094989167992453252862921505535060676224999274891918258689934778549968337864195096226233443620813259408107222114613800815435009667860441511037083403829567170815634349330397823418666546645172851434426962387106130644019305669438737241504737108170347405509549908322442711951502055549890657143838765113529237470932588667661724459632771435152934138479268503852380599344770895115209660144269932457496848408383092045181931920785874563762271516102598080217280732532383407714601821584623909203455944186859925896931366055392863420728200660487878415797926063590955363116601271057459853739843399848780054919426697458932868968689019214086974098408088050663384560082898028013323419552876388678825306193604576176404212434015949933511199878646213593931460039555778619406187126814461470367705587396884051237351086929843887603617206916048333854776019387030701017783145504547743392397226490903410586119640765952336471139330258558594459897312056880309008237242225263674584399287256117269389673986351464585183407381632739890720337523034599534745375084768652720848421538250469199493846729584813633537600081363754763663429741378146156141436301014921693928889183741184969419538087660972127313338638155943891122051063624703225181307222137299536934429151473255884080254591147681394933397253284620299492165653492889180842548910851173088189594878495415351952025983181952371801001982045199821373358030956731162898268233655710374606524163323228076941388836901233564590000957638073971656850182992022569044927594022177315459842123115457635612858204732563825335829549785888048823475014918590722752773625871859489130224203093085206516812166775594473886737661531670366230632047015523768016565617302001678246186696188332450562503192416590741808458782355114408744395049097217468020516374932384664053832991180191424452973094387693425394945538773945417576191604671260371862403246083697654581048073955008100779530949636605439509798642886848062431463985587851158453015218630665458925545258507508857587844202571644413281374683941304518199016712456720273440052589356069054858048891940639818853147900964310319481956542438389494756214583856662732630444966172641161841335018952430618844114887707496225210234604650417684474180589153249980619123790466208219145922334941311025371599802987623121436377325083765755757096070236711401406661063279139786765516886140204651023906078880012191136595005598484348449332615163162936834318627653511746172375968781494158500264218254047688144937672163782133926412536402635041272084781666642643874190771597650344833165060879387939455986576928806177604710514476039139156076271192825730239821847558433971830322080102066867016543396285878884804755873331769205878909681396483753326494725956656915439609438738184137399027024648419695864835717226235192008173581976715384887927051123793154017279378596967852118451825953680477500932442116464250809230537628498666404613040406431072541735862027478475255348115936114506103493175396711606076632105715375523634772037088536405850083831361789315536913068925088168416859361149923679541134716622252383136996441150359031227419070441216577844634931382939447618413610932928555351212465442125577594406693054703134717594368758116063190603242492695527517125375296462708885568359401292827791821491583267456014819132210976632437319392933778920357088811366811800937844431422382011308902859807745183128545828350509341633713867809736219758160830643578124046934084317959210819384358600372391502227084559454756243875398729375783598157864809487649805025202736121903607494180136854123655637838020147901020594264302438468857483819379446676193849499535259137815716446204660646999853136786981498076744111282364256013408405695041023352715590503030035227215280449411604083097245034174053225856415909931750173617028146342052645528304415613350580856981138629381666376987935302620284163699522822989918211287647589963486159391585790387570072186503944366249300000825246710456363644948952686948388281543276654611310289522349078062682549219515219295653157786581247935238416007760668437884928650013384259012846850241607353769665449261974090927326298540251533517489126497880023183369836748428264504212585356941882891338407193560340679380537374669174253883197915855588988679125185539118367135714200099168856478166605808139948496901774797198195818629267803067727737486218963866175884381567409180927717726801546894848160026314159301479002087005028573832380013361981737884966486239365630378672652819100907113982354290700733007214301165253495745927411870512757455531034483639238310160631157168675035391456071586332660729561792722972388729142828138493261750123372831268445576070755063438383218787558033737963357415586174375199760461444106105506126603098831450345665243947867024138692289028230028612133863323613996305539047860227355406721922236613321764318330766983767937466974218745064276813526402080589564537561738654529417685804853871379700627702386110619843389520995207789103766851444132078130594073711801103936974280573210480089787283362609013268600520694656767007717146173198343528855463661089520727445057543485694259975047854168999144611445593752015963241468351890563788986488424259757241177951851077315659228419331039953654570786221720363525446130652780299458643885128609811371004614431036658287939372675561512814423316591175870557144461937766050637947063198821418182696005817628216088573010625505891470222795501829620979782864858496628933293174291025951808390868672127200227153871702559434774008088825955962300318120454524287806460152941199935028082441625115404287257537049033554573480132768662919391862547696601732941675998368388480324057566907841510019557562340395014806045411001583315475709454821138911803600246455328808686251686849408385278191300611039792608725336760091444251331329479217687952678285729013226888993856308671089595427198915356656987329741667206666442697520424335027597046680880009463349899927187677324265022130523937314501606579830318478040322775216738105250016885844026108768260624567406721325237269217903108481019242786123326133345348686151885563183224034119642359406262664105511673751677543170859184047609837106302252110387437328802030372852804112733022330046255657788137181365932017502723670687024070467974481300505197189269802813758708445404745171877093815332007069117834740607750230361394836772848258905221503675016249387908176188432174810280604897279509058993902765287014228156109591953333919675330718341364137968794886797471955102137719166643952091995366894688033998588490505744956195599470503480743704624689844579861542510805470430575999852783204075907939372593431049310738996937099869151227870659093406296025604222492211027783761227424882048511251269563808947408118595373435773672082404522337919700764732150484346351159289492465088981096911173866528112802939836768871974088496347138370003538218322635270962306296467778127936068941269988875721823456150937233818716342269996151319126937426794578134899364747989033898747971397880419195798876276792992158470438779390254003546350340986868281594568632630370969330080859551656318391535056881730101932975104577011058067063075601941555490881704858145252592123273453579338079812085517541552910867874763574527770600137981721457156168872181990080074215986960594030027801444715547502139484672414059103200247240018420353323370261882738250744541319545765457618280277310407885670922662945679771014946155317803753721774243518445585856457510169240375713878740759461647672081140664997817615956290394892822661822706653725906427491440542642189362277011319319532508981579235154586462374071007548415624467875147574984358696635871080383234932219544011587221997047118008053263980259927906529428730926120566297770734246240990093307169363510847841651702800382292087157890001322353148344423486612986150034043089921405431381632664336703663143777300686183227060547240098048662773303343348195999881133669852879269117123263027555995987372878919683821723756111952981472417350022417548574831284249392791035401479130448297436545503621890649374136512501711555995957487299023200485016519918270457492917232690744794484741120309884408350109536756000989399546259908867467679132083593570605928726135554284989221503195445043064934393329897118042029842678749116477727888030264031234428599778121393873910854558809517915565174569350613231180702200464223840638178139787981792248154094574151295062675226915404782593210024819172647616219026486521760528880755439998478160366234511279961329656342752801306056825555701827536706737330316896533198713615264053345202193364460343020190556661378254105615803312573888978180114114033502153153675917652308206919317268901275940577591176459218278520012776966560697811642670157040539499925858403228734112307577327643325077231565640951473915848749577160986340999470870889228661610005575714054081280331179986510838037282945017175252652993376854989298202998622928204306644871171656539902108168488091101869782084494123111364184692030487759300527978409261529667128256229928307822016769064032621862958478223483144518529612026237857626183878769481137186841256811923600461995133214077690789542275843137318478775978043369009026075602200939581451954470308073412380830356368921175606251180369568404506140485332080356511002878205211901419956232925934426871600826600971147645741492485139458397388502329176197887109383110001459046219321238525950605647881054806244997432824581327517349064598127026868366542383537542694651533469312815166765151007490060697031337205980646322099084923851305247124310329438958635903594071968743861698397934138305786136730184069496994391839391290592377647665828614712290319140079413337491888704887731936038244936495682297983002171582896212239828979757202970516091452666755207564651664702841432789264663864265475868852755734214407271218039212455310283019325530584946961732628812048355372078120319408838335839300542499311154618174473017298552527946544912188325489072996903766319503649534339571570129678248393645705902574262781954887413419497332212111103976274524091354464598049709445945186674011726068479478890643743463200447715689399764524779010696161937063479625052983945328305136831198983851880175983183799417161481402752197462169459861472038710935408414865715727715114487461661601377073807607330187799495004284905140692843787002610195938317692816368330731451736215464091707114704732722645497734760235427750331432015688163583171700178179248704363063328502237047053208350014437561621407401041320569909048075954150659390339777730826331241940323813683820188826322196725482207135657305511429959649686281721196816266150124215015579226735436206206490391867254241309474751120879582631041017709167616517260155606059299807927414856509165128599834114173131476335244309130824415497456057133880083329727166151207935498167512247848908194771187111615433886065089912438697398095249108335846990362896598699500088892590215990416523418928491051032486100548774264125355042763096376694794201598940785231280307713317814432817070664676388884758976004216980576393716404024376450209183221197603458320428292814924408253027025197908438310104820315709035726680141966836248602938369432953895012123791227392055178740791188438418793682588762645616735927394925667031146382445068479601787356301732724085658918438766863515856783442978325727578889312279029474311414432598107479897577360974466320647779319727432770511767383113262615643028002235820832978461954095615849580651094683615583424464065339264095750550609604381353707417427482018255825265037820574978141597888106863091616101879076730218687123184873944784274888913833029579411406040512023751836228190071418278985974466234708241747338387756765892982002305276736881088546975908308274986175198868522263541613753857533061218024369318512035075716169713188095347925407964109529447079562571894561769999641172549033575690061885500404680410039336339564820284965990394254829062545289182180518512532192351543733709717495611807911827403634939111949883393713353040337206354482952578008623599812901583730208153983475938775432992715468165780158385590177996379980844716034656603321791906660432441978456239526002777582912767633878212219109693813704076430577746539837791681567197547826125197852086059086762914799605380905703684233340583071682782903800085639765012984238834490971400533856912261446987557390072986352529902950127168543179266293676428223470210739086453603845804877149576801793998448864208124057469396808366821317685239923109016689114010511465982812404106330789544785371998463870652496733294795565498011835664347223319353290054330253864637897739925782369128702196500667651390373846738745305929526933381021939426862142294385423647427855325917917656256778261564082983881340491053931799872571099229809491672997089043918087812953364763648442367495135526820390643478871071450825431074976969350925127788102110634316218387870394590518425221618749073961691592811514226812190224446953874960756800127898147827636431633616758316545658145336347687498874797024787570005770485185997353752907927803822373737363981179062141492837408588712946296277797635822524498309237251225677220789996439515364394018487381998297284251527791088978916466758504491430489894987463800309690774801485908890655611116009118237737299317794570495148846399511025691545846746701715388139857460533172247397790531600959255241869371819346913872558632474972608615234450646154110856690253020649044889680636635544754201225045318151466610154738181274993475382268933506986403418266757294929823440963326316318355750074281952024618162988875253677043694467847832418364955103413710533023277569614303967686992087579385241552702770345934160320878529590181267392201061961541133163519798455679673652081820720163215557465131543095463257070140728307480128671711257132351647389320896031422324563320659273281659000663126159787380542469180939997437017525618483915891551866673317437964473052973658749674878936681319769793286268399459809595608605158816284504821339349929546521631027047244086473501602829987298206526276808800322369699167778781922501193955665275000067080783852899160396390531975703448654984280541056910300012970261375529919797228326378845203539807143885392006956246363308391160041458441937024810401112578999086774881709842401577778213276994946570166086854465481792622560960910723869056857060973545199044894370234532044798802796407382357356850231349832917100066015335897417272711645520291943889906334730709030814941415991033907043981684129354655978657943849158721953491711007688101509313483747696231694298544734693751881149827057016690822331088480349823903755212558148945295189677187754184578990430875828563587880035090468780887580368228048672555918923588248667022475911431068486740203207101289166440725193762965416448774826976278904372438440478442394550737735431380368019991855671760177193616142334038014747810156083361535295314100214789841961208757758596829399650077057456284552016593385993979434102202072463493540677195559763292136930155155254775370633825282093897104506418431385291369928496952706001864327753232153583888841617310611961757938505789328571063471684516362531327512325312448325521368015586630496037556037726166684285306319847300010829283635405283355604901117381415549284977580322583308845476652372302279461722807260900106836611860662870806475782882839919684458588117218362970673254418443271654288497043826521981734272537208242723476874043999911933388825847648417260300313415106635174985690784668908582295998854965288101429010242506184144865629582497943010735440403382644241933013970823082809086620596494730789571488963871228789309000571087535006527751182367688147963145722648106804284616300242583206450161729013647119480735693346364426487325983893112225296560939481904296352831539936160840368529826525690805954316603091670170491791749073843482384890898362706896050675348002713927355310829733239576939958128352423188088125686129046996568143635897733671426497805022070550774013219479758691080198922792730914749628571273381695066740656514018677567619920368858335632165826010299771669112425280387699266112383371668605798783695965017083381680967676290236125047905978960626106644803661472434976933500322404772046161545611519421522923895664136507191674774300057978080721236364391316975709218948967928167527082023630281615701101173403808719309749816538064939794709060644446386373684833036470598733701345182229595567705975683975631510590465806779983807966581425427648168814694793014304478161420726726309138219592602968435528769923204963078368805958387080612078882413581044067931698498648908888489010486939273437905811975801002784172370381304666441093431113521872228056008137410526386189322324072775824056862463394114580455136025797904432301031832059930873703724018332020935035128713917383511429542402031759143321748827653384174519208140056347745391806383714114751450742731574030651518434324267409054376001210213013634172741229055143490350922893586549861201350005969862405112618209071016419128588567189283659512325871789751934044489263516242288125092809724105879079892232498086462886072230410372027398718904763918932401677503191746243612619931016271867830470575370127903967867009502259060061420104605896594685993794614927229377331328187325457890801822604812058415533213864443477246663456801961738118127200790509345364492916863339269794413788440541624314538128572181497102156942436234332295741149870807130834273592129392252793311631484749887121730129834471649792732030652478995631619908056466529137311680256193399038226999054149826284499950783594917765910056538900572923971095966802858364111860248222203807618636039055968689280004921984397383429325375950995085936177030341967720512987744810540057654110020630413038374939380703192201794559928229032680163648533169750008750708191573660722275737158145951071535183956215079731430067446794720260974784306036059669237954604744437084220798457873268710200524659115337368954784208509811312089764239306575932091625048019640602787926162457858922866104519823456653912154480931751941511973992273535121504825909249368795275182110164334278402854177539788280007624844121409628445112020800103144201596219057575834821401449751485991605489591963081186257023992498341855435248048684188698139680152920549918389406414659306459122478213934810782883110200359379831204758568596177994289159410098102469501461343534940424927807460804521067881060232912511756646136076854506274997224825919972447807538968679163930422734573072767235864654518849134442070112187912683687579321959411312594621984738033694135893991167721239129493519839316474730003273222782718334803551778598451939010497280414742662830530609685511852067240934390325519027959611254235599152041271372210903577108444674307778302844270412400602308319228545453264007296648149313974881407509559280564710363096964854656076028226474633946254596559720035674521158986316516029567331256779670567480778355057662923074447286862356790033191075742489052991305184049843889421852279848080100905367011139869619305621911916504591337913394680661885139271081733965456528824803575959495221769242489558543173924588557715200563582646949454850020864749955987777404293387787178647596106002670842324738124879573411848596516674180889335862837132360541223128223970134015300751280374059659598850995370148522027575864760931305564412903617203681364082928733791525255726157504690668264490069630817165214325647347254195961721486260745723415225880000189778154514717519601136759476482480964111104690175603371056191205495741910608219149160785661633131297087414060386564681030216769381309309660969787657264251403982052180350871168736980156193305604503702709891555190961066620335491060967845824428762433332352282758584737077173482705292888339803203221737695468756220676146640617839766483571993785360375537198028038695891929348433739323600263956212306757644662805589099166162306184813213923216851799868569466194668466845334196648602580468903893319307866778512276785665208815620794799811272166850947386489954165166938020291516917722754576175466568147967565067323439125369260111446032623864813717972373944013205793820348191780783462086360523837548283677639589001421712784984573055407538325886518883806494547645053457608638684300630272881162052036951154047286502039939261715210757119125156308269209199726445395776192340916551946477450281622382421735487306045809579471847976361422826620570548553864317492794177292898202031836799499341027579818752961611845240056604580246620054704863095084306969475980220700929700762970178798892757120522756088559017720919073616120152365331758209569102191742233296292465130349918947866243309021077369882016879549361298154831832784068174882733493999107722348352228769799827992559380088746836731781728468480179574041237579835704913493178872435003451669109993499982074368422389243376518795071902165061398853019634774153598963704485569565131774838094851719377669395357781697695971542154764758194313903562806427867176486853118952008917537628201075735969741092591590490905502350621865232247559095400189204036108604041064426429459009973114946731624748788412950624774506508564254528347810505199376164147232867674044963669383621618577539402109356389914941701648864311443837585488378959401922031108358012266180903723223659038505013219339773509597337675239183358182518032309510070441825764324397084830926169463281755767504519610290682436190843020480812904130510227268423003534234626534787114906152550379423855135179866263381526534608498782399034711179102916673316061015003676164241046723839972041998825021109988783766117666391414269936436793529049966986156720821073843432029874944489626739027343497979611680195918168975665874407284006513036732071505961413484129199338979858929715438602927345977471671566491719568070213956320786939182893162918195651609863195218896133808203813386456778162063791215287150348490415352590682895584389717342425675516795277855453184130583010096550170391964112623526100519778061583828701599142312011378735654323382185159473546811316613897245044163675427664246324186768920111799673751905504079316673026723516614210941871137207530223231824259111480819773237267039050613914498187890456619964355091046935837340172615145915006446246859290747122624737810519587527844478922580110160832456811301258606246166281444163037188596791501390003288851881167439184034501358002891761328258361823501451779749971767575482620282816572420514924029456148483587966269822476253636494176877216808537087294633740546979323417915458919849842253697959346748938759171968159704393129881899849956211531678485479070705782629162061084454200320110546187670200637941561344562161466350431304756170974062327030149998651741536795363647957813720579199774640705421208458449119238273023776791961279978326563730826910536727980387689113030291954034880785424164453613798397190726419777187699008470462537339945794403263020773227768287374116263773699400975803670241101340196383541385173418579661728492843261755215941539834939951229776233244084287108976924349515424727937746379593362407995981580371015768931597169874110798685241424351859549058462791400586460437212726296490864829543656078799162362623568551964713793563344256214824782669388453051062772386500126223268185499606069885367980003892753793853216006403254073906863461659661396768747661408220176689760223412694294320020309680817062896893002403540575963641605322870760196282843057589040388502082692639226027739202014857887634329864461745511857980179388616750680463319946870288475637973822886744946940870487994014517524333521224314601867832523743124932406970023488250747673916549537656286371791237747777024883184667907966411304254490870655204372747489712291541968089567135499563210548267741171958009165379409368589673660633127347946874899053038566848618093420687784534599456956229568829145673294735224021365106568892518934979496928580890678796987519927961169940244516153172064404305360377114078018523187982587510381179598958933584415584952279447410330880732050379271018828983988636734665744311652752412876354080668377078367283624243077654088332752847411188361643375397606008540772462510834564000180425535432846824942486093145310439621012968819700593441645440749750791056654039219464450559959980199807149887965612342392696662655048913440700123606215893707880796586946878036574601559518149969096730392142195711594624363152556496991830972557870024488737851910912314943243802774907140757994327825666890098597079944279281295477661658094661861352747094127470950660903384491665480770349741439741733054003249721379943702896832609167443330054078824167601504783140900352308239656816293207118012449127701252340103525063813384364204408211476304315732334585383342376016731292097364012346642424790171672893251763923708609969511847179460088303332841408722589256398876328718093697395941656675214246743105450578031535370072665089617426637869784097058086758557614522809221938832402937677191712428611887335896974036352522237661777041464086363445477602362358314266504576880175231139684651135539003649138045311762184950187564170254802481656085813224025088087914579424502199536579411632329037419106566344716958774710958722467595638979559997222130166404379612420817541291239242989141563079179310085300515184530887208890068945648801726453596685881628999154737617632601346509638309035580330938315988400186524570089454176735775906809452403686295097174967167643404774248063383047715290017215192950401532921458399357149002411351025219541692432851836449848193812956917459985110414877181290949538043319441792868880314559664686205482931958483764628519949908537641412504757355678082592226604195817634132806904384478540862504081448629225969622337034729458910258383140983398870521775611454391760911710388842225713275855528380842437676527323536374469448351987565016509048387671826477457083214668429223470964366242329125329382272601305402381239690075045353354340171783217027197958619624907364215549544498815819254746662358508495465078677429964143838015560221363014724036947307462293130453791129884206706876398903511561341528470830888055218489352558642735591895305236399310628016576404721789002624508053323281853452669538757228720134614689645711188746490133749173771505913919002847112458213845313304324463148045564167347906786924485382994205456349701885113122124799069590478512660409265425988127474005138969365862969849259326752050483101400834259580185202830585644469851957141993009746784107991640838510807097925185052327097398360023161159769711431652648154270629048281264965670319414893250444783017740599964738649179782155823397903602427198905419499831102076639719083972896213572418921813522145994134751728358654950510208875602368856375654788560591932647245554180741532392295103785609293563775838953839837480956633145469533261326604504727543664384490383063076324343659493281920413235361821805066086095792370564567611976952659918708286358198562814932243288000709011337943194248246098155697939065116749387218378715476027739222104039444902078073115178952342412872080558665625114081838602326067887113621516154015172941959383249095388872188660046706083139467587148373213125480763281036535552088126715404452834347591006082328248901141496344632498415790574707840267121342532507320725061582657074247264859518498447402472292079105389924208056409917577436247935823282856679412332841073160385477894542274047894935263226584943371556433134384939414152327878010867275312841668081257617718185063148338070641410609123409133210826390348519211548838876758537806392213859401706768573658590106079960584842178838703337265602442219440985759608519499867800703492831502112223063818820411462210766717927133986712843712213431350748170423297848120390107645056936563188018887070318055708247416741577411849368147136164338336125189615648469071798054897344046264145397025456371794062229473138610621075706910728796108572138822337302406117925222187524119830045479112414359301477758955877725555023507144395234674368218201257820758833309323319102612799523165427482952591666723990845573756709657848074394085358172813335245927346826353196012007606615426964043133200870108650183930926407027517407958430510915629279571752150320124212895539373035743393074518114948514341816717841529840058724365191524380936540717426328282511352326604183488380436577905799166109554024290834656585135606371730156016673680189640097089573481972219045578135784073179804875351409705081157575346303609831430117578292145841043369611556679279053869817343475029033178641051893248430527265723798384465832386452582344691028730725126489142607810316761453702250526743264430334344968346153828477988006516682242919893719888515246326590679469241938666114314159574434161822340390818605199031228149190755795016326194584367026868621435838353616096100383506666697851967075721708153967456450288958572656610724913718353627673395941137872057645302585945816739907666968922420964876220186451975900908352373233854567579480187044382905824215282660591444468965996571685853920076981808800720918894129159118314562404349058369250755476655186714994780385035947414721225474863579353297156488773808911676023405439919534658822958398256148350097323921499234454818436403416571275971023088062239384829486123020794163187056640700525676352833259526459813904759024286091657965536965323684994844941577533830440790307289585250682917121527303934246691727225148645796397593708454472664806775361281528927330580013580746820860422282774256618348884778215877624453174112973836419230481805143108676274071897847223377258611578126092785441650242829537588927884325722733296261317206419517291718060921208426946687214752299233749599645353671231924209920023145430592648675628422805932542206829386609907236853513350934460147786620715047475931091833152527539184055735261523394663458148141804955038013259618586055420523517958254843279874612038460452331959077033016060230939494296621764238760790405716507871252496249604366464579245902709947619538234931630764568442291743743837726947471235723370738836035153519079518588951810492934920618531930473111100005583761978948546958748440303781110106095225960368531780137417723492455108559926924642465879691191828257705936872840007182866790168610275994671567537847777675967072361867794780720069890126640908479869123252721215389920524754779070494429443618745799787099605386990266556674687640459736692538469804499244511263077167993537958650151816403591433653853775543261157023200754325884469799078218830995576226174526570767873356437706940079969047276324700794191580116238598027642936533819733885656049553731289008508768010771775805711718639288665949007934983147016075946763868338694931650592862873461937639748823579232843663310420357956300301592319663164460662060700125538780771298650982887022321213264412299592128402989826167690778503562989489176577280873849987012837382053683642241705949491668519720920903166019637433653045213218804743379886248349306465183894992701134951625836361610656686502180225458704144853721347080883635241568581929181171348326575909260992418077520558859879232964994062213087613174850215919557568471128697569401576779904882517247564156542080103066019213488699288846404044858072219425596998194020678855799201495184279964061241316960953662909891382813368663711775802313021860719099633650198308470451098497898837933292674298146206288965164201002189429187182676426037616971728623941836498713109167675195521703167512531700401583888714636247422577813309388775755761793675707289933133227702018142585895037811870272825676474577156999989353390505701942489375597523880924581519859673699988517445137753419493787980038144925582511919719466642213600108904902926387969839198675769618936440933934439504819891118663272904524676702910590952902627833205124275680860273774536663671245424512539046124465245534969296500516838181659552214742087312964217749172228593664502696754390071047091046749017445399478619221543087009771787154219830697543086535405590262242609250833741492255803947669248209274542040848560275552631773158333962061370115118284904082334234933263299181419429441415782349344719680700871036441062249711499414910016688185406025833390691220325626940105228246424577159953922648730608959121205161623138498405716204675974719480834068550973007541912690411366443288696645820017461896401643323969669730507078343050630371695319134922119374031771081368474165037509371717571849987574527688808642169689068184692941389200716122946071942414942375888646470618126457085333929571431699192090242252292175951134004434419697014977784508974430401823893362073194971062150179323527558984647357288275498377719784876014398111661225464253422898087332535559891209438482989402966933343672035491766912150715296703694587583470814633504989693929701333247657842179703831946569012843700769117851815678793049495815756585500110010608986910484652994935610559812905795786364529860991862459967907739018082873652133780166336469364256299551417367656579840014438162655238353085590751560370931362386022917762365747103295496892967347818849755283911609781871475254773702976296009277497809653957540582433841872080697336588342644913733581989440779562770741311116408495594381032077383513025314800561934573154027562614976404257819198781235296386207211183313337005496160583638979395514919953733083082596987117322857634917029906319997879832637154865003136062189632859598597167531431514347487800727343023666503604586796689513343262273687380592344594654208457882297790843947271372768361633665648429551891488226029166699140292005816098615063019442333444208847257037311469190724298834521218871041272095533626503594180359187175606781519894738616064811916798188440423788737614409239798997694865285462628037577911494483518648309930836027821716992547918651160778358930750367301984567528644539604231287044748904258124594071028706196162403897002380484001930195221545855419771594403649129728230621661241189951356277323551191935410851193771345236303335385296110363515966625220721735248571973097546374670803717592969013815521939497858737893676955756210883198320739902574968795933450589629837400600943607213220401605682186563634953265424604306982375680386003099284480954835752370718680673256296489501157550610133964352964200334576814469396271464393007670184995533596226299207384128429508446611623873803745788689278885141027379826910315267414795512412545510645599072120135655320912739927638160668073354813505732187539617731793563844151184611941219106573376814939600499137357427791949403381647632800147327627416552915629143704547456996444704071453668744216793607178981542146204368828866284795218007617084065258908917097455387157479865517040250686441836974662366456347064653399546199812650896931881700876367987347261906257775171524409372264299747342730406646729719016938405444464244182699273180528619988982783973376940594483941343321486944595738834420484142809975182845266028397567739124577019260236072204548916873672116097161675907743494741405620444113459597090483566619624497487957963934136637265479166548484434027250578717858745506293708737564995693872267434955565234370909323700671296262866139615356528851083604242332372716494810088781328426989667937163993897430025218312644580715315194251108156880615719100705405023922915153480915127000408536038553224026077738689735193857203708497399395171028542357201825115589156701791558417005015011496323486963555791240058531886233192975293946214351909513362877897917714185538753735887820406229861454916432417648944296177712101587745907894885242297595210966075257780133830443410251504501161048533737465316596244056353778376681808671705728005118797944692704648617017029675972910329753096586324734062681905556211302439437728806161943802482886487750555456448178101350032160029370351289764521475343236089828938172930838237934067762226014212052551800178252714895786741365310404466394804192678948809827888350759723544332063185087569303368795305565828380810143226924159552878123004147785053188069364673048535359718947904517470121640638922856536832910870111293285456083570323628933009943700648422751896865060814553853713292515638215620563700073602734154420685071880265515886588645243326064273688808949911012574739894284726354354331797537201999653025943997657809279071806291316432528240718053923373348918739042727176886540663485176006632481773660594238744931702256235834149853355769666592501392681087911377204648161390709936648035699591241087192148480747560148998320122248103058389445588660270073085672809676405315927044867535708754085680772066636515076189452393475475301378371887029005818337299305827224810126105181477687339501545951463110793539855363749631188857419328772423233990583183653407725517675277083203968847468655975820615240657163803614291597591727534499056680859487464795272322101109662456999842124418929223748448851844130447253055969610894535106094685403367883458829081762813414327531607451198010866871006914024004304880653421102125502152282763794521365490443150615737946305844149884534564383107850825801469103598595706151239817466942721689748218983117464332782553562344413221668695660976500266605922651867139472801452745299311249866323099491964543143912581411144308961742750906448867761804880380778789921454398390954331860605168768638877077362136227885967722232006210321663163194461328290533693019443205800731732083631418687370911819736506340713359227554449222779219707258381296291904116326504823278786827740939622244226495885713566119972695577863760616406495432340693406823543876481236819519512789567507917927492836063350433439063027291215811054502331554327389192558997338712740470255091190195563269657367931460081451559620800457273936061475398153107129257745817222432349041925224815834566519442964273943573247571676801183132073505490995846024034517220539699440057954746466819109696216185699476570258700623831694795883363308265890405191701817018915966055012682205483884595893523609749310243236507894564113702421095550597686640250688180440062491705319110936035868921039856767140201090802772839992438228932246936683308340996020033065818578968345407373969190066796012937600191377345250312512228756868973648017068170191059816318063983011801282405900220119783929009742382413823649172765194717453538925721929969341202493302737138020659456105040358425577618251811866873509832522757834606468617004481326053822589447991167865031801975382049088287476213663772612650855572736181241803688649182891637012703690506455178461565213040844448368581127027870756526510486595236127244696328116783902583656591989790098999299169545079189526291728629229527469159187972239329070733616392316903461712352254304649774498161196697827818013615734054459825258410030387102018525063313065618223012180066662237086567066855632226032057183667244764160057947368035784018812112424560181541025882777571633098931737115897304270959737235971172708029247432529705388631241986515026982104111547089420089780095955395526637233238621530714519774879510353905722471128731236874349276997005305092510234076780128878267892059862635258133119679722430301936681875566062638438693041188600842687606978797476025367493756533833621404188252523896530073389192124975932765204968919842937584171831288541672757121547038379917493709235414270039935190751100721510621323831261305752997251873769852461632827015591671973363714537689103798348323754743296944602440194250477153198095101514975635065374796973859840890736804269104762061539935961996873129944246024633510466464159639572122254063116044801766875349213150417180167770499123463453290534727487449189812421842064547034683629765968877312218842018429914071756231200298017149073316932414423644768139351897909913738446839471182138124194839440330946457637854534077983420387507658945006372502772260470038180978445433289523209465772711747663062714951565276530965078953754011978320631266719962304738429748476309584196219571015543995607588094364235307837037526649375615583953009052783785716575784000685003834472206459490392139396513210290771595901112404624252421664823711187970749033225117611293352602898105358446756513585771231316778568101648614182304843959023914036372946721619294121906828831010107555358365300841937159818769644797225017123145826567036512817391080323252173926102085642961790361222547869610148422955190831140958472721484800821359573065601388958276416523733975872603262303098716635301604132047920271238967606166392255234814003790242506890060060025904992484548461249298952932499931918096547713916757104789707434048654471460979908651949083354739199744048131706460802432876968932530577031493962270124288441190910716002497406407027902829539959011220465925016073778352270092154744763632099354369051995933532370929131763155005872459500214281943419150831585973106702880225919848609068895552199809691519419374952367475287493249711178993575021394287949055674543081772128503073528899995340497660289970784759857088680655637760422482180336477399282312959758918044280405931437235632808931256631184149586677449986215100205818613564831551866138861377357487262035669541279677169108166677530862008255380382836870143555400790661581829457709357663094937839269836556319619060784781287879994094895842925237798105168534083802053416823603391534978416107968889184379887054117119995288697614417654399998597161400894729460944165695155193325139806826162655351836451623699159748671011132926276455608286108808391046073720779084271071474505558899829634333900978593175480527648382176922577790426159497934116792346017576356686368904955434997959539293054500937158775715106900995545353826404354419757520856820443606354904070161090735148212147916727857357294270133958637395507834717295004055123704718108961392379121867195610641965143306428886205436174237899542530137502883054497856692676490317523657868874252745376576123483252127355238893641565240433772770302666826583916515034436502428375314793921851644080210540568170200566398238285574072404017296354163239379740924465080692859281506159856834123482547035377322339490462069746149777766332168512328525532884999202876403878443259687680389355299379119045768608271987878450537994531449099111776949893724284046011281414851435012043672316118490072036652215482179456227567906990624008572657637928235279038682711791961467829476184706293046020542203197018926602553737543516436783460894334637059325301456532223284695679911355697956138661595366581636914399941184662308428860714039402798727237763999855006464536751864799095838895334568064247647265255733160432448350291822501269908444237337341573327747455748189605296991366645688281580056336223469961148354972166784844996445567696779279686862440918161518665582349200214087568014988938707601215077488642192413155283259053728236220445126839995181271291854874270376073547004103392882644790085609515951600841862925937491339424933394029213877447923889843971326466719341781588349645956719646512659773438215056400254048107717480956508535077198929317340092898304278221306480009784901756527291234985896376936635935408552656141698120085951730672122001181880056266689430194254240158711079129410398618318117186051604940395328869798573801133070951452190158156107020380935454751744735402763900762180803442125605020159047305579802825303313689425211243330949699005321539112820496834344477520453887821116740556961616299266439097898512760773245122724894227099729028590569361658611499970844233336927484851174270127167145290644413119267150522153389170439051738035020371705662046856443508351723232886932847590399730476239679065828648173183914483609511349832749521534591495779271874281347456652621684099948228379420923714724295782195251910010091256873627087306282528979694107840802518916031553095438344458290462901825779757972904584057043992242495486627480349494923830986547114818940333260821447963682716809278185717401017427069811759599897314745958636482118627423347434742684305922619440494381797455221115144029137467828896916591023371376831639700456815266745020050280112787069968763881344578674503139510543001561928597167107760330027482582857041066564842702494485938829702764266053132295615436916925060965810191864375196898543106223822416600943317516876829599412457830111297469706124056485560438580761265288236501553439314586221824515287860121326009493312371064748649436448040623397399967327503198790272241506605413111395816494444088588662516714937609694198744893333775489233768843998532137317006214035104830679822710936004726770361809838032837601449695610794586257403120950937666301721847683711756727219216455226884542625633284236071280201591305469706878493863180330035597820484354201639880494637986579208202677941096353467545176671261320288786381489970702186873892506939212911007436771006366477158806674079135538631589316884233619191903033478877699861069254587223317556605165892693433297454352059259833955030960374356704687766468311786365506278639286040563143449217664095300072846338038735709912797792911492603811327131244237340148377509886090010187201497524776042569946870331132029711960227640261418415474081273172228311178424549347180332723149007709209321789596051172959094269714193545103415533176383261675653659934259835703552321624642788907933610142777534414017876888995575498156119232191657008651471763036356418924626796763387054128227890569028300350777228472462583258105719766538315338089988780113961337107805590566889062338604656957395328235175528310918032744741661329131565030750087343985099746670653279708778254169169305597470927454681275291308419400314221281637407885726434740847503828243844658160266356660429214437987711524512446207752555282456062587654519642944562485902717985891909115016804212827976692035224037342043680858688433897111531368908984806372385258153629886804157117496261317549332532792578594744440636854644705154028273555069599598546652823835467538741014834816531967452287512602742915949235506321744460735224849089040221471694418932925250282115050130654315637271115638226286644847500848172562082435853807874167663011445411473836205380150525492186379446619970161757976542254401926371659817619047606527161385961988603309925084249366556280560166285401065197344111412727473457809366065441672186788932317474143381198496184999901508619356082045751324977816614716326837721906802926228595358352136447710318312756605788230224227619038077403371729159249243578435648557589822935865998698204270315253900496628422720897396369939691010085646895441058836498607263460987652522364750186475930826744509806065926310535559447898556938346199665463122015941149700143971854188326039072701494014346965443790017253602496317833288881042741627570235642419089905099171172571365664969498378215486759551066843258303495496961225465556426529125400590544037225364884845428052775898518016076126324535128706035048862923976204529642946971164823708640530317272008441164893988452028665418091801570449735241305674007971768858024089867710966374325528792158667050713138491574422679605537187619631981031838590715106691174782012101438777813573845359695793283674828458886754430459720697640903877137339511685052390263997314203745917439234732516333040070531431343212400792747619080951242269020931838094002226416335419118003455188903540831053306901621117629729826601517795622317590757497768168864083285177587424602696131464892536702323346502469732911776449552131457033669737422600708605397541508522791494462419892499799388321161017735032764094657050042202848224326604249411828865561326903359354700278437216222730401544880896376802030470446144929978445238277026676180164634833631150785572285296188135337836280270009020541282079615858559182312478723702696411105074362783548982152191773822046960211908232713010183350545699165098027013870507023716261037844891272528766583612726166466485192023879678085032278099071558484075731156050413560133429349219651290816146683982177944672594549988849125161031222445179452435718851127998037507665572107441699494383719789306002194904592031605991863785299465296440738857452231153951316792812183192932007862021072363664626759834698079014301757529695910030622691377224016218070101568093921428922348114484523734955782009369824155297513013395794302209207749813714222350583581310053742541847464364648023513533133028788964606485056268432101929150054414084866128121161375517952109401475896463502633399459776585787347982677226557357717856909264963992608499505943371630129077137704754386671251246094671348524319971180165182918253246964046386386594235572450325356589263769702483178118923535136928261142224940442251672626342681356096090323420148526460766569363243435538237015490171986900460566136398796406153262545871731354345380745265198507788788148005905138362605749135726510228809878895594521922970977540389208445913851808664817789453795088225440799870503478054615337087769789709966393276140664129550406830225919813066400617883670331528951775801338266245380063182759151367748481123098564755400546037838382373247685985188090027967365233303979018630595073657800207786809644649555966779747126994655901974268420626665038048317766839769112493307665189025144013159323775600822141533341137211413472361274822160084146062953822306166457598604633648478878957521487243404586388391006666860432276962600556944042548249986868633458786471461358309342458030980954770753736204473510372618611435989859910557566418385418828349147760644500779625657794997061639594956610509566826883295805410673233991823243453336124467587553299606395352417635545474225235346465076900656591282453507688785915107736524311251858510402975658184341328470083917208487818529815107021258199268150801908292811312770104370804915286964853592072141960212963866294182364850669807947184764872448649472953880429450137218243330020957825246263848050401125210826168991851250064503197451396032770005089110213145197500243553726512973883327102763645290610593243921888692270654425367468865619197051740738755091120061675269851343502656892260976380865740303140274873976284337179321927575594655453605068324097394731296570147870608032700419234628027247092171874007714371104254715417931714431658690053490303912537414446204911124562277775293693461031525910118722590288536208102946144580573057583119853744709907873213093706385967750814394248554198666519023747639035416618307376034733218711156128485991877533990684156485155803578723334595248843807259422128544505611100361025010939018545653668799561361204041250990533747176845641062143138210195643787486519912778576693914388914670976683985771888620567786066273253363955936849612733471446423633385596585633535528559230510775071987662881129238092167764379588010393878517549410607206035945476329556521371691304005475937780258096426690370822017793875970235227514454960344318207057925453043705368012371385634870757286700300179448112945935045759570873477265913995070220932421762122523499790271306063102307441183590978457811342094576615614347283650894303013859494689986446552571620619399731175724625478473657402073229843911881198627625369590919864179669494083925825664460853406247610447713114506517587253944855655706578699828543863837387899958834357756287319996228238644608457986824695260246295450084741818116542776445759068335317047642369493840973156020769748966643048991888023171067201596798065173192449407338665966095980976958182976539720189664952345194386723928896431525155690992543294080245254525679868836924907312769765858342124561835007366304232037186196056313439004795469665896543459621178708258057084893121224955254263098500034939052452123468993213990067914450775584724342237924202617622023090260532675560112018387928503762106501510984803695203126297684755821353507805903866522459745331110687192841822479103876600974387605447534964970303605559931265427048467313839766815666047782181344729812851988929252897883576477448474039248294855942882715798815257663953630728934199372314293650286043465706438644191681887175616576872784233967625614912094364311376202693714412287444365649526866934985605027984849962002102198966410561517280320404930914088834807943673088982548088709517490361546269464551702166190325306528649764013541654232047041279863747761226741562514192472520372117715089679935339341917959256276218361624941177549174986510030559519190473343327439008980729631794106861792494708476313924835125245485340310398355988211692310151520463258729709062205623791028713686956039480942630029911832689629472708761020392467579910282882183873811656031681432732899387687092262884618763913589472679222621989977544885996757671223713407098916322795652158932152853403723402935462388034889054639172914829889688174083684851143066138786979283203114343398547841479230945933995917498438500857487256917892922109016055277311226323884141046064952460860469659623488581074516344482722363336914158082845336381734463351245848497693676283086338898959154063427789803742516521077761039878191585591079369374235466750062823770205722169967446960986960962792490637646155569145659737900763054271699054301041023749654829914480355353501431968190727386484158815131999830051898245880983945596877122796951329429561217374038503391000797223951685675048953392459276520142185106116554069407787716543125856554627267318493061350706043705998256854740258695999653908821476084820417969838456111155789990346923923281346306221778944317346893876582392957534690449968477514993265271525631235387343182874815420422607439673337243844504351355693415461819883837514034776437857022905965210218085173856939031741965625748211721912678763619062209193235118593717465905848785073805518993344244101067092709411914880652431285694852166533175425684863708963230485909627038113682939262880769124641859897105185284196629177594895835499176702103793524974288046885230229065278658204596734688604267166866058117418308353563137347059572547985867463504060144186704939456634496351995622308642362014679056205677773799391268261217860209386878404053980058342060302682199407709281567621428795806308821499552424949257334437411389564338841696468672219482927017286806144013194221058514331766750487556984397185755037233511578203416715332307872108288707867719133417323360171623441448825069687266181098385771404995833235910256346287589509621961507832496245089535728446060735039101071478828307359326451986565077823426583001553698272179038211643750134673200452774181216528214813217388905118257914455200350636858013565815204154126385595674287775858536530937042788505066869085811194607179666304802220598079036523705124442258349187259876897209963126623221527466706229273264726067238579904684020968612588221915618763677728311954655381414117499367025571540370147533984266601390962583880638176003889750217133389871240419819283764484365978285861081013832144721950490822948319762990595600323167893416077776428056088798561569211558711912591886388014841277654145486682128305956716331670049323422736789914109180012408031114047965329691373811497123349908235672236065402404857828878249153164844495574904401218641969761707006153039157766653648613401174009220976563073704675077944016732727825677973237700815568978326705541538656008607054330521136592610736663360828501056668276194915241252292699354294030709407662357325785774082799148853403463642057762433292193336767858038181793724641418962722651344762177121579563210879076498430261279161256856579939091318057821768584633230710792741136054806019864327272125858200156426112308278983693670947058327362818587119057633767717754967165723917680723248671285012978381218798182060679498945071906380635503929952094906720582042062717857100746023245776647335124774354558471517586052781967006487578829921781345222123905659918256710931166115075879753249941662172057477552162939142545478397920683861525966160188817407761674069510693245710295014410226838970533103688069562408253743281071010834898225927468486593274836444204278049470395540566666873157087178527636473281695685424038537191655347105207182146490285923983949359415398048223325768718273509992271875207636722283380908077209432386973487916066763036088176131895610858635163707457040114198388965572358347014499767105567490240051873528705610233535159007395739159599460676794766865415450748481994000084603564785176048181169604696999090324926111538235225043721516996155296850537615071324867323656152461558103216392855619774914263264759542191072253372099406012879977482952764186683261370202050533127810595216993222626003427441482041563057403875735387284972026624059400403979708096313593598224308264149313892995405399174104653664475444255381832409635687864489813108124852509946942080334062346356851442082941534954076015415823195866100141800977942059684512261320390294258955046448046868538343952176530688734405445360442339178591389579311398518763877496937270543376524819465807249388350100845932977947430470997517339124682248638044089299062164855310619129222212484398897703273745080205479550416114856087806895031841750283131367457861611656258546287711245676651245173850048514365673123920345535872414005963112448668477616538634061202896226582837812255315141946544022173849844566738825275138116308726277403180855677348544731200495193908838965209832226791850491284848816442170055874929717895500238998472837104355662451436705749757317260003757255792634693133521031533153569026300884144762248953460439970892589955509625926486073770841867819446054449976844120190018507295895220667999367692451791292807563077773267613949866433683582801879010982100584208643361503731703770752968839650550163235646579058825100908481238672339317600032911901892715741712035810321248051916576805018001322184805415970211027365701780078693257951185914423348667217771115635921524896695216085821509048758350245749198500465918486184241360163219432389009858028240191118890205669838137190447038946731833286301982624627168209452638276644033496335508781772150371770821955762885412048232495306497592077396034836927303197678917965312257349718825313116092932043943639227390303438111531455647157062719805098834902195823148610626153816428350352495515394005684731014289341897874171790148016755700870284577562564788985983772065238079515079550858061580725536061963537600716673152816845718858371632425981447754609417829395543525893930928174333568518944476622959450193763396976415343277984240219311260335041338054281229008897346591700912453396040545767354161154694306007937823075415829991243122402411273759236442208263412778171398261354248379450495155273752453478689215875004359622853720916186701800150966518896948951421430575223269785571570409960912833113977391726478998886624244792112188451859013869022779767429499254813242353055092647683215705418824494184506617964732227006885865528190672063929869549777055265220482297613712447188019039794255245303565279389683174394268574298784785297905173761169521395061379663396272112425605338532881598486547419423174622897354449863340124299652859240535655757536332964998565777698463113295080114197719121036720340374090019714902188604176524192658134033925706314022590160570700543031830437460396885401829939955516169077583422899253579716190456933965611611638204031362331840569836331389136079249234900628262531333846024582971795598820452693530244535695825418803594100499913825570586275266584432470792073674895683570560097767698831307637525266308028111850987015833395868120089726642744620904062557949181897542539741971467991327730903781275891145623718074986761373951448037904930390979101436729361119899810063483601893883044216691717592237945657336797986846314560033804367908811639907095815538083078219918345437957670759188449093975604474981500841729649132453915724143816774782234411658644411698500610774935497249731852828212544791158975048934834825235159110148178870424731400451608311122151604973415800813812222675107277028683100741570283216277544548006003723863031212028062585117916899904606172729666458156752357296975974103273649511256679293903728518667288832970425433600562778002061608595734947077184131394422693912076043004320425723977965986826588526695482920756555420819917734918760525234465913775358424870338709119741506073319021395669488036518047822056579967844351824217595281161191807608724109856608772026370591825469078443492675119990378252312774936928866791453490412285731534060565897765827841790367167513880725741121257610762302128263011564509932676550471053247005139601143507626724350231206558224864786113511197143858111273887352496011209657414548990621598491488338351731997051724783319993000883140430878412231914978162544533970417449173684831876654458257585386336778798952482025583601133034301833075230558196351017968971002441004092019759407585248542419161062102996762645330790089176153151426862632832505991504399511077336745509706882510896728432918781422283968320085898566174926908026441461992916182192397291055381055965568929205706112047409527848724601361188705461225654742914530088794265038623758150619498512219984555625602996244519422656312277137789455419830719236197647164637530958047561136170818145252552203776125419443050303753495120038531405432989437871262756263655929888260983281278164511746139441346554481381299429491853648502409747793610766564339050017174917369720014952478214092515342669152010169863520046903169498074465770582524695389146628253722170324053045499717458823135080905909372928020748441922026035901975326817843102619000890791134244774365739179454663379891754579619747208588746072221360424436719667122842185041892417702013556353785169519909229130568869557713148589289613761162555659973660597674127206296443638738640275029376779850827874787028238371648863663806918647022789058689247210273970571154545619678645229381474090188559738579423281108264334460238768006188835872756477291248431735388771981500508223825711077988809612654241831119238828195268397493171472859364633244700396125168422876130488442936638893394340469070974596483467804933934200555993017202765135989751715235651036135066301381802817096383746087761893917958607288120472559184811142133025691537145393372540591480168059442024184685319455683615854459751290314991092265277549476424939270826866930042439144334480339200703414180333593515943052432030363964262628763195176022614551364000824344867381939825584316471878295273642252133010900666679974094412187735775294459706546964862068450038856222028981278167817127735304863844124560808850439967442287954455459708202612673917542808085759852602726718979189219248607603592255556441205428006597531597356237495003384108777557636992048950744769701225179333625063987826249800580678764821293075870701072292757426558075285333717972932466538919257281744871581583211110696561644112311532616138277796968958856112766152958237672606823243383028445397430999585826784667131501500392133752385708644145134380359189769678643471810722539830427581625077135981615925054841390034036086730740327742433403931572749402903573015069392551470812520625100225428390694377052613654428090858202214749199637407678074073127284753694516728458991503186740585610809991770472075278084170857090969554753366749649032362799213230112907237045279038699813001822008189051089677451543607133177453357635372916566145270951094518911622545008666772116614414646051013780826766109066390187559217098069441568667982693715059427766435398795289286723765462352651696306149218531392073217867941908876861679361359539894615394520990601501024221547800248215697988964476493497316193386957319518538216063855205636308253876792638614042431345666322144905037127597387420167100997073409476141706218209755036553105159604742495431387803235013510806738610527248467829991790184496561376481124664065342344589510173024093101839468744722999597118156573069869141034392579949253985276108025183953878918498600682400990445159434293780347974240065800498039247861671263421090164705514383323816334509089437185722272563680514819234947780743306387638251353980591200550748948694329164998552050744268969466312045334879786032335047298620435894806274892425687603857799441247211798668709319794362390552457445203335328263634688126697660804593979850502108389990432635205956621332025098454231205868087890617236277547004294751301150180118444317352648246931606663398943830635837894631094587360260933211805126705907074962040115059361418573811190122399203366608525569259977696307546963054307820588433773888317178224903098209049053911537016368450349201803781676081418485046207632993775600991858109630170559986902551717181779329313024598678470611493400550264857214531746192359720648174806203579342356012730632222859054072053037135490475992815364615836632620125037319809643135087059955474138415692193477592891247783734558085558301895998390754967331147361729185788577391287493671666291381588304102862382073364674467413742403360993012944564100072724846035276726952523700963353998273376220709385925799418722781822693643475047307692350088231345700447793597222086710988227583554172379212277528806276315247919212917603516869096920224081076999058688855731295817872458980502544848025727711666889431124514353800088802537944656896961481771954961532983552176247824537485281766965954303152427683291201385061428111216758107026385703673780006938017895882135442272696285637987370613130675750568983682695973095209554028925492361764358775960729117410663704792796719485960711198114476873506923788894221655069774294015242975571636010077660102081275964916503649882382569711846680482234889624395325847754469510119269419056533528520967752893867796470334302983588355989835943696855949062493098634279794394452370259893266243189995671969797688808483480030348179215643836934651648118570012573406664024931589840131616571602214204378682875339415149735519760137362906909616721652388875220444247757750404631652785416400418908437025484434769688036069609161719561319871040457446447705412665947122367015679407033706286609441391720654827584510261232557973921404260778952164647787999078385782629264161772682739642538185235767830728551933686529329716581356050186050922703769154102196675887695427192285095972018246754119234421992479195297309207483861232219311665880474024613507193658032895452949015300516890928857832825992123326051336269222419371829601949666312077573538955284298136796012002485868082669019516284814761570512146972815171133301538953937609781203888970290587161506340850964364126368311661288826504875642437353161626942603783781770256626880191107813755480921284269719508455064647049498854561968200096746061961805701437988458033496678821712532800941765570329460945073321980669424276253528011513940388177359978167367980065402316439904383088904657536816486158360181114922386272363622542750766013984383040608104294761121249608839491840678936379214645702382484045043339697113423178355555249431612688619845280430398612130350305547215859137087356173319783732218605274135769034007833205004741249845753694051607122479120422211681733553324597033873374671229562110036535273622772898632447421839965241902363617412697322737692018682075268622682473506760312448770521771419556901320904971842394177509655489136789897089845322787371541481097398949073954150124460849919377370459961896971241396038268600102997681369115041945673947173141563602836401624062385564115507796699323698377685272531592727867203051989702706340256288634970606704499522740070103761567460590201290692672103879510671355750389400636410230220555913377359677959021375724390031041167569402314985427086977895658342266474978915663440445196926601578033233628502427544684498610556428250735572531408158136013245772711666583379208796342374493205058917460439751936565368762853907573433975737159408025445394563096340308512355614066011892440893167888012239701530886718766910247371630750838729428069106971934859349830170666410574660034208555502224063529474143981526455570530640367159646084609566078014587575238349906298939107522087171744472360662565536765596478241494104813317938879848250681803134011768327438134839817309370215863012273394487582255850327564707128158264420627965661248344815990731116513668538677804810902329878190638306767021241940837559674591779171600331290176868284957189019891456663326781741171572205260403472788952638001674553741663052695735895602251807716399875947569925210972834151980117970915818607089751103368261237550532106784756323146430189950741404528894094864323175463591527785333808682722640193722400041273625973518806184276528867367601906877872955127548072674873689877385982240348857685739796897814287297465077288893979318236894081137585893346776278155429574648045100145296767083999056244854487997502969969327501176807402312629606148114991035818605782261069335407598484919593593357740307584616752063231055512200234800571044472380821202482253055270919218124723521304375020352262221906354709359114119981953045372018752372873477515829156811623948551140352401222804029977895404005101122591948858851991020127365849245727335339031654743530554555363664496959072153132030564518463443396375086117639538309179504971292012756949764315633320035849529250050320040858020635030716080896007894215118680250203159111256960248109183141199002451755213507506308031900434529580269465173299032498586040392954438596462630440216686393370520642254573869315357202749594294277457475859014799162479816288683557044502209427395672416458297864137955033955773660921307879810036412496489858354256503715925412564740694762379156545742396173456940214319863326857360821305541929603435237240785852347181151115358277836548107004671059806255037863308156115340631169767432961809528591973180826007648999027313200679132815223192006576446312761460873521633370100006532496020756735673619176256247221378593671462521815721831297870190274995413496625310322401761768912468942942622849833091272802075768810432606624848732257738922471481321939123300669460217416099833338602005868450752721138734440796821689891933041434367070184357284680400559430611090551168356985547622760552472064731338613710387495657027247775728823075708888099909672689752835869654460630690833801789813564046561306118447009324791724524733826326016750881674701470347201011334182691436528172599381477299991984392543298873949083554482545435898870745630366403545530018074928668008012957232241636005946179367534266587830737036291588538190969325094423062953773509008614636733327150784661130599891616609329761618370019389840811101654819906666054838372337719300106445354174223913851357175332394251647434696778843330574452481434579677150998210662005769774441099914830964877806068737085124712034302880031555046588838336765680251932214387470824906977938181554595118006705142802300271820961961358092135872883903647584210572218761531459156076225541768338298511553726722577194413579495524379270258079832009951582931351586904526786594868984858361117402912429595337397223441053905724453831682789502418173037097329399744398312567183622831307135711057242719441308175809027302521449229028608222695575483750553173223471209737036346191933325778464749407330786255227976284544140813511791613625688870040791614292982771933824088014239798274292627896431954633629497167131214650895267252545069969148199801321604775134704311029926707944856574114572923890313995954088538732129310781366764991947494689521738469732543856396339897622320885701518952303365926294613437073481364850605181353612422968356828866426201487054759714912009100222180943276754175657388608890709603586878175903512773556603953308842271595316657912911152549642127737706126974852828794716038099040699847216581211181050456013415731916446044120519831418197168440853481009364726488762781481850637529262846511769409375036210767267824411159325286549075351726515941313342652338557860160214307535343821559734564897531957653627018659290410394095170671814742279769426236181810085929887032444552437645089651883345994201646308266329450209994445442714883212642902446505159810788578004439424969921008291701707249763198969966098772164298074774200231921775172494376110387003567937139378905357622530376001092326076701853335288274025531952821400978952652540026713923319043520209556628810594126889202251969513785305104939281416808631263480424095514573385637634096124437262175366423813932047009002527812381740673524734456148932294251856044271268391899983916294005252292118326972696852213796134942565706113034044668050016889104220457800162161915061894467350928143878589872957093418646762549521261124407667446960200710044512969843222658938047109234666440391147948268387876794261154979755765771288673995147848129577175312445538184381178538685838385899373141788581351609886894011230497533408826370856829861009467938472623763656453026099290424779593703020162426861141605262778265097743759417501316646666330330478584640285887384337784251380035266843207314214113853715897947683151657846656926050077329922082094846005757545575899454952566169237426739344043079956659999716865722138796639823738764007859447592532013579640609749881205729327735574456255172872597451415942976279752131193825430177692115576383033642042314330118749139312025570475621381750135739692508666694150737806704082525027146774427601557205818667151602568324765949092053286408661152521282170925392800217827556162197123944413563480773730555563648394467588776483294927423730092736929325617586549955499463707888403455631736653475655986452912113621183277415758284828465627019095396984997945467535124095634744254159865700924164323371492019989071846340536910826741167971769982349693300434457880487277348364269729077310017639593728406480801314790368073682998125913555834957741080192028022362881384181897471034962374762088977368445545869233827965474241186982528094702295055259310719229749094690397156122288285967447673444313473945154290171894773431855750477548878655901223771032211882242798777129137892074952095153763732632387144342508528041191087801747806287508366520204334142312265336905828875617938781142566065729620710895622259223252568792552093308421293382488284497514041693183125912200578552614147066260687650691845508845043083517232129772340069418659483733603837233341806451136251036636883418130997637902771261839751131826352914693742712399983704783357185264077376582144197860463843775243194970249410704438193457637555071516120053965950391123633592687084305614722657727553380586757902995869331289408597445806446504023446314490260610708399935775175180555271184889160606176495232634351858651745242933690537157031635650692265927846939372230024928856074733613717776092127146508706441893431232136818942354381276151554509834516820115194511801415548119374486917157988440606237421746291700825807355543526007403784607931460798253695305687389486117548619037150930762802962449235446552071786492855255326070092973452840432884059342870480613507402704343528074936930859342372011703580761029045387966522877661466372913941296896366445128910559476990259016350321698547111312942452236839911081440212015668967830180430256201907328500319729947619467927600825724792599464794894126177939633445384028143031521082364315633500190152595710245682730977260592981033551184027445277375022483681522190429810254115357129867982962641202753706262042079773744272204864227104067300131995264409275493194966472396728734717338675446362187704946167031080756158321511455472950675048040618309898668661595137568088914601932514433551128103965424670359628022624991825445569317913854773349555832621525597605868118466768742116550077930612143025032474489857571095996917671616280260921599476968424709057384383874205110818456630877944114920072854907433884469472932554200176264032392366136807103580463109458340405258364523538621869512726852555625771130919086090834998787587524544589626571171566207768395234823187357834607434791088328965502237323973220688365703591767806972406619052579712927849957636864531527039028614117354259700584552007000247724909497437675669733744667730008872050071555172469593469356766150705601684925379024849518833490004209688165962332041348598858074615796277251022846066436233934746081540465344076371367660107197581087624749753475916302039798022644434099679080402968259877056560524469711342126852286589850273556796669669698471328213799684475023114773401637205233887953185718974250866515123634604551430747082249514043113330937730180386326801308179815740634259034349450543386418135370949297734804637926379302565681869312461951053108728676349876375851238598854958221949897667247938243386307027527879869873850930684822654114554948385693687059938172146842953574101762081878834033953713715701090469968027125282932151615499273722961027165420351319616525566547216017930253097693104313950218518220300767652789294382990767071275131172031739831294137638721289931553881715138163182626425898037743004477421650876496182560876579932872675882118910431606442196407432933638798849215950779310762969986000882342264138394084894129274175081131265156018131752134624235833761996098662632378441376892136721724657652928707175200866227624380357158410711947130632765419130263755778984027498019760600780054741221835145220872294599700694267944117901773790300989945000308684175681969144651692819269513124084853025731566760376755332324691009380957554677839382998599319621606605381666710365197616226559645882392242910094857476284242961419244920888315308501120816067808019970936706054495391943430649340606138586529449380754305271867053796325705503808265224109026442962397572304497143880551890137271510157623370928799994100013303179081666873158097910339378071823852809676741190313090430239523495472884239041427735528542648776985144021515347614630106593793377151761413753837714159986038709716042362043366654999486669312265576936385643781638931040662629356949695218189518493747687304006293987181490638363334878451632901927224016166669257581406037933038532113531057416093233956536019188334638167311197734591488209220346717847965869716762560889463739653000771275268783139985021370227547894149647482978149693197374659238192282740233394108027722905869424379364709025788251351992167062481779975059068694780470451175219234072185153979633972723671364341473908025903339253813402896506399635934663789819598334856987884293251474810455018722859903385929117961938503174432456766602858694056776309610990324352676056332952619548142231231594801753342469447437760083032033782298516704156596731382599341884940915130794240104687077483572128744600017997257603508733799812575721897031716387560310274531596754270422089207780883721987948492591149898825571402757462773450820052183422618238135084725177211388052915985855489302282667247312010450922148709106384736627497751394955888244452242556261181447724273172152812888300250587147410133766785479300774827510572974848149759091771848908335637723949209665827441747419629214127957240947328868935649823860774384233071857898046964202594694092484332273817819348906575443842750907420479870928530056046580168674923636271775263785143445383632027285486659212893966844493340003959645725563830496322094126955743459500176306687912814366743068055152373051826695591934656678671839061881317880486433418144227329038694271324075276124768545803442910071720239676355399123875672969692057575291025565387632969064769771121284956687421535106935730947796276114550832274976018264346675648516166984176305197227849695067664671176025030969035772813537632940961416292368013426244114868880248541859962104361655277198505854291443284503699753779246381839926498877385369512623241709761126307004181164928599285536714872261848829630814675120762786139422181314348819177405209765623973568094175019555814562039510281789531650195087893176352717319744937263407640225375210699076759518130898453533867535621772854941403982091241410218989480497716276568675958913405965937771502167055891614582909891847748400883359114284862038314964571098750351552653008041511716981588593762490313102129242482202793757071584280934814766203425714745842009470647671432193885648053772578054631016898194229496080740820548709649932295318817451393476959367378577375725482796035244223536044753957381096695290464569545670874619532257325968700749872642187528407446609236458151146462004614356510464380680290267557798556053467102516356373285623860749362060466777278464563413308447335632254250603868369573626558415105517010119188092406148796313215394746493476082323890991622496924555544600331976496499331801455014934226782900693764317622772116056573772305700172786469563785737217940897603656692163958041348024236453605895483782743107813135713235413532232353732521253930948613269216751441618891030393771517603733442073949085926884479207410786602594383290509718188007557979361841425388064498425098101052912616124708105909004131131003511854427808103659390875575433621539375707250514759405414048409592921868711553883952163498892106435173132017057599617643274530247395964945801909896445016817972182224260360569602733518522994931800374356156859296930348112647994634266905807275152525384904859632422760984946582317997667031356777924304540052624237752653203598024807203601145703113439929401275065496234522928945931603506292686374782406611148740497968679041650542881526506379523854356645268156293136563194606880435257331251408424468101752960537502481356156278311147015431244807226582346013190526740997118964851175211600955381126638812859170082153179725679618581348486990360740830109438378947227215945720453426285394629995743035732805391459184226278982114225057147196832380487090721684238559652809464895915969755661990997234378755088315655059531380028064116795986274609274061654300487546004221546308505580922754293866143476757510922925857485336501175926970470494020899727312219622665734349098660884379732662847109638213635413896132207275278758685967256002326157855063427567582098429783741642215091312848193707117757733467562178266162190075543830353967162891446756614216283167256097197338940025067569438116307226560190597522163229752694182964925410838509699429842647761658982505305943133134299380408562431067750314148684827925257399687414668053046294431548474094827162214556578847951535586231912341006001816690252462088218948155009936108880782465364428983522205878027210001952005883002630934951736603611508244984404507099461069769611078926492048844025648959434814720013805312709790762125418985333190756125091164549178083167480531650611955602669726254368467803166608294210079951517469188333907787261557303576701525375710225372987447732714329748306503843363325508657389387782227188718978809127603052197526651668570605345579449145789749972167519992422121031108132002783761639382134894563561192009001892771627814387060360360813421443320483547671925912890498661112116180202892728820505731827328781643840799277359577016381192782235528335442888153283443790518614019816998878519255902688502069247125613867957095479267150909547865237635426761219334208955810227341351310161008606193896806518707168929686196730487458196130152064047233066399635017752430238811297222489963695069301616009925164762604671496288153202401954708806533691893456457240639658117496463284546901839652497720427291698247426419841463156723572821287696938230790092895104835028294651444298818451387472391312344891704011959152473029253722654926214536386988149503856599650298898334089075468065182978799746684414711151689607825662475947694732494079072992428448155050301508565266813499614756346537577680380739080816698146747459043399269692416781727030317870565314928949801759108115228485372023746745474920116869959461885995308725813879868647238797610894580164903761486841007003512760167862386028205383078039123545565625016858235185720367420291230305573899879839312244464026875418341703225860067328715457812039972442065409368426528217128480427405169346527977310978496020997954810745999660365274864987482958553146906884690514335397967577434237358716117098203459789549846946019798953515352904215168316626239980249664525731553289020504332854408247176061859988353841160801545426740428505535929356022508502953877976429407917382145495561104578708529126560487039108734956731647421345160917835473927059656072224509309537281844394935746274737350139001702117661549377946387539476673316759271426615915233177488142301305020529923033820609294038772754450167374125423853992782997999476877087038503980729285277440532032750048323999655739947853421174373691895082143075595693308057396768378478922767581221337829583595079385437838359007681213585159723712402658776660691363590985414275692995492967495363020266096892445124966882607118774986708811674786611403229084081500066413753358509969570903146805770549339089123100575610935125726358319403967594980723249126045938759458036577165660627740578243675942279862214750131402577485068942925620408874227543373982601150650412066196682510732000616056083029473799435488225164080958596738631250858866143448730332679926969601320862667738807968368364778912086596349420207542561161566889569024150999457134341787413131365583808111795534640890255349681537565895783515462302708449651644881371619985678822159888058572876067434611696298150230319643407910345807698188864137354765567813392689966403230056431371549424863145568695128109963975423790019216228767013573069202628398271181426573459544425460369228987184204538033981791396839540482341913380388578770182143949249919252440635811413777070098934728947658510448440182550091388681850638910961744798697286589721980737988769129512286004745690552577977516846338642560569227463734856411170058447072997667847645267082161261528044083314016308841916804142318516684573748320176258267619021434324739108347967221049556813686248894248008927468957524450336035736734299183740407528698086153730357991181319035939428197822819049013174554148629660637511577805429527501658934999544540367124521426879755672372697591203005464259649574903327340165431814031850435624331942781852650426542614406720055182973406069109250538501718189389874097705256054527151029419650747230472880683968025830546523768757913896477152935562092145898055802492121047823401666703846640451068686303462545000664823530668786824575326387109555622154489158184659335126669233472313916576332525446612842074072890493394397580374837535162169719781411338844291942009260261932346363791073572517299186119998054444731300354042838913962309927387800298722516627782720726784031951005432194664634130716489596896450972876898695821325862047460663641774031396551555786385462540747277640246477509241867141323010632135474408536911694114826843131754508353644950668728659472905713425802380682525450056908653579487510853802625730360305255891876923956105411169573163303546265341054065330405613472404609751945419477723316371295963560997304655548331922017321685165811429554369557022349921820705693554670135240712435946107947841202989668618687664004895517544854398732807166912735606477620130997214324772450933366621226230755709828420075697080720401450257345065689183951985894884495887001142774992326611196516287558496906605738082373304630932474343193506291606455718969233180368157117739487811140057059542064793353954969705766051469248011565949595411182101983442559327524340175292551659581371845458928816379706528588197617532264558242427130654144820030449716319959116910951445667128718816921903992729906169330751612633863215676143007621837991403363625139709061305616501757518182215542959114598450711970290304201265668307450271989242600786242956487143405023625792630763551265479508439697936420405409599413392491776502424123159786760345926986722746839607784670184316905159510308628397451109663952071302072935222448647709335340047592915501924364078390193044784819839365817526257751912597544575578726253445986068025211049602107140004540835887502245517739139770391652196877816865460736593960290746629198295916628046643662100753021870471217721868109426260730744407981631069308943342187192804187382237353738350063747643540959867470554607033044831498642889102421169771782293664858676256627254313740406169652244862227803437967484716715113243923116963470757388107809628168708815222756756074919613932140309609933290924145754603287671355573303503107162162708821914005227470174731934121047503630680739986722079837387004820359018738550769058137458829247081906285412043196825081923050327533492969723372621910831612409521674568473783328758232302892657372361699542550316684488857527051673348013608638152814530155586730612538356628030900428171506321469051072369887525367338975441699402697862454705208298175213875728866115182595021166487636094113430119487495237683523542847943999213033139125167394098707341483374508603895375039786874352403762790196214608647099808352896167612240067528179361135411051330844664794058557491470675100506046675465955275650024455063924158519692769267977980433510748146608206460138500857946650649513521373465316292971916861859466349730966447114977484596288689056663739693585603531661644292508154416503752857295032628703309292499711580476754042019855786837165361078614847872833768165765062055915846976697547562583792897305531142226466707248106724848335813271142574754012033645674066654609514236363066073919977576653470710987870519420825918144446023346094148473778276731132331409374004442395218014837881736155868820632061115300601133325619289374999328880202684578519810594754924665979279650516913974657822160253131363755372595330711281777454648438047169572179428624298183704620506251688920027024221230190062317956503180788898688656209560213425484410261572083497381574233741852866724350505405549881370320027293715261949290945840565094308577604762418751437522310160908701389225820596866989668530794414380488793922365251122890321299169779644519069359180113770547044292138357447137944165689532892119961145790540509585380205268820973598611505130879144392821517696854271954535343919048911300771122607346393585668256977960992645377233875993798478556010203996769112078128548804156266413966106781382731948064109307608702475332176532037637383311512667427053561997720529076704705391945148439559496423866321567106636147616087303411257127892147452616378149271278379038203213526485674566275562376582225298844561777770969590964057139055950446244947998482079434272256898258620294644329014833257626824607282141062835900116400859082395567457602391294026353389376988966871225409829509530278264862851453550372954440697735558026559561871885126500272624394217875686933416924552523879953032494313044958145586322071578354633827147913066169274499034100532757868519156210731084038703055363511060966164504176745223117971173189350823096965204580573620413114833561059661756349947952666257981527959995541423635025292239003472314842348531599493189483863005708271993139288310392941772554199387781443986189052101995270807852066340228993276444464391534247861252001757581874051062881002545621193001599331596015681918127229884170866341707031370119636879807381001800520737406447343142821165838302304673488049026131543210536572851095708214791086304852926698478863950558856144478907628799340959080092132615773986967728685784023252011738252574718543668982817701807377703747158912995338803108906047488554485586224111945308095900446779126071338289208132383125091895376033550549504869722588878649658848562998356286870659426675756525043451484107352142251363038549617812907254451774191573251680878245672382080309375249900498714038344140189050999144701344228570391194081267528284099802358761410147185166187496428598964688012676756139306892102734245772733580933663702596380648934437537703607961425402465951408639082261902347244581953600618223595471132033702502255735986872745033116456665074493451890626966347621905872026629215739047881316517245211299883405011481056615340569380087438023175503752662504433066875446762551818773789743233035553408936833606142964490877677183501977105192055419529751636856757782619388855941018317107412630215784138026793991586982968390604226476116708484664287624283171876983078944306242177945136030519848765314754816861087607363667384254142307421991667743634386216438507950854784382858402896727625180794403878002179805377703953496487740745578188800807254378965820812320275879689660366772039668048995504236944341343672313690349895498965856354839958913681142427943334866152364634889925678281263325487453312331599755255301376965744296183584986274451074557129697148355893568310197081919012692850712793017955574638086869646603448810828108511095405185619348610905078105617412972677848181139015048350261481217099224789926022207338498828255565333542653531159691404008509262518013624399453172393940162579757113814595815015130726757238370117733207086219417792626846920737748122520005756119959657919381122790376228216776544862878284861177144756874947001138291474787513381317279284253625719751589877241657964701402946025245812883918660888182798351495243517875799009942353332577742530151717122338710797779118734612587306310892849337184631889125149737754189586047053215698000207542883603599716996806629075997148883729836503059965459449646049107239482806651518647663064732824124448559017824052816291956525426964915929278927815317094150421640550883303873430900249141346841688744945699370386480672165738337879857365219453349514826555422763550860043071828986765543043609154755532944967748743662926663049793697534678496659174915051678192632262865103747857180838897650412287863479398068301912551791139285710741298768127088099584741477053093844997515560314188355761411766973725336006029202871564840465199027688797325645959291687695482075550264051661965568574738763023846222689303768932763712671745140041925333483280740925402627180049539539035335458983955507720165530123256794928496868812886905723873840001307298585068156051473716106941694694817172294524363540294811218865703693190025267977843379274086612374304207124470479144812050123646487094593750418451430922313594140583392317995259973724987253005716714207981152917661264006814359631165742689958930189555691225812563398413516439311174929736646514484530623874354930324278139602618239791080592276027238054278934748903173866293712618419059937030565688470350267192930243623019913986386021902610469365532399632603213535139398628757472467656865408237493853295221246130168281674816610264864374271626287317028032748216690552196690752226658078481363258355056286318570290198841159925517917531417829032035381832980159344809218330971641483351815668116549226507176446601649992787513211965772891024568205006559124714755894014013570420908745331744129106883734089326175220813038133232431676977021229638243315445310787640331224112673620182145986515351652409865413558602794045973799951663915711712289754755542623704442852395417829556548644076682399244744484941641164957780095774293939387354688821560621716976334062205656063676699742767973955486020173129106300264152193581971407769992209510961012320554135651678672577950212372435806628424038707302459379532516308175331078854344492335286134881619352494323823865953709922849031437514144154320527986196166371655698645747308476301944451371478501258629257948680306628383552328873184886774355921402118527274018004088251478375895530912048606268714732694654404489866606310383505107643197319094035726089032991767947820801831395551827436686590191628199961365719973244056896587587555734797359150956443229586284437623143353153844799592238780454884759987328159114559577502748930065200894674828554235411690420601929986505742988992404378553831476731720803625243670878015381233650997764439240284863774743775542356463693821134730591230200311620572121912678295219613565612266086398542360641827627982658115250952057743572182665786293309477022729150702459918071783148381303783954159052574383535572676527620397810920089018106264846005943883334770645645775371206268991596489295255130635368238831572778040940961576979987131887634859752850645036158364618391741755008698088776952764800576884237679588459314646427570698977470470820391911102573385852684148388612696115512064935021886788991274165900938392454834511865464786255613481740580740552649724865338366913937246584397590400368058082804303882468095975977934357667022512912161726901299827087566102269403744075442397834843161485947856660267106836163145248011799587258852784270644444207365357815580619720279313750741155997829358051590117566490159260347693624109335118887737695557043182455166547126401635153717873507138117736702630362154757955024967331347831194516742201675276427796649961882385273100736192946719523809085874793470392370630669194473561279609067556002660335893612655411880947454850218232388908119192022990341199301067790601596668751692863605600590289991945368257765866140824793502650000823705198207527578610152154038032367701643787252282937782216567022870238655761356550865680773155387778504691164025764170583532440894097211841087779252122216041809419739649613529404625205867849427225264663214312359851896677474279996979448954609579350699644725843995246889544449275843917902917766658118266313663475740553799979036185923224248374925921526490652718389264561307098372407235898754299134149290207007698513945188156324257387576408393325247405487682231215494858625331095446009703654359021746704860131026972825796162050925232636246322415576725049247070362997729404381486197736537036611750148609321387029839298997098055996902938724082485793158766601248559497822979051810513083048386387842350592042718773344797173207641661716936514472467813816916202169210107877533444238386964343566423282483962864466342893340782447532641784372926006972026319449623169065984616721939355579006907248202205266492932914157533875910548439206535593456427552119411364057414371226983036398160107413189087874123325900044516188893495073494231400805644561589869661627356094730455902716534018233974259124187192456781669243332698313459270113492389159601986036619502090875043301919164266733771660944848183534544672456100630682580230327830991348204102252452086290682500970753820653655158968395558060670500717501870489200646306213089349749449192923906381695071228186787484428875128919388818888051008022751845601563156584337405893464264117077239912289488579744787118605453574282068638752016704195664620949828861334856884121018967119122552421284370753600873803858691509688728269630542852284731374517717847015982501922698569911975598861746201154874173747714157460793176795632410710108254528776076241272031904132295565475407704906489841378982024939833273866708742315609854036563780116678408707855270261080360495722746400594031746839684111322614146504113834717311561854506257853466331112981697688115279308994192254153301784080731974709751823503149079007529042830536636420197168413242773595488906546771775980799590409155483591705676931621750610122523133978723334588075419794718959787865786456009919893344156786350395265311577187888714119986941738486465833938016767170631373959742052596266985693363664316980921255937956143723961613195389347298204864333117543986179302823380630595368928152538817441730186086567308692484803331278550381237604480663623766745749030233069653652946773334945030059260365375565907180790510717536848729103982161476904779695718080984033304277330761390453287028609258712662105124412577887680071707507408638893948174010995264077506769913208246424013697459285485433877964457773513142865572207401650391423268116543934315895636159402592063969317501267614809863973416908400819992793027258213048135167119903611896121092384135562571997660897234695494582952474274153216157404555327487735811118651760005516309197185870962402702668276330227349022040561567353226980345076710035602110149824339169421942141796778296017072350552163060546937941887193026615628476261323855090637533267125383391545879980850871939759565343770301172672169468764760179933908194251925110420219411359097778532241551847186666656785238557666972674812925361600935365111967726928356405394480723422597206135454679302048905631462102592573952742101153541921747878147732992939797173829753154846687150011679910765164039347830202046776191903748357796689457059247825434204694676321326742833307271836174091251108420056656469998869374126924562636645951449995233698660555439762876928136808831109172960399745658389481013159765899421247594110072560194048452992018791698095314889250437605688870654452038416300478165574464906125745817008413423429081993306924385244342221877762539629247621887433017210233742724148705338531648924829594218607546351267862121130262581039491872383097202599611424147495447199721799771720153055635417106917183945726682755710085529671843433344980324610296803937853537622826197343963061304362772042870699347669063308578877127846174408160660321063045799595411458552263640810499928525993758219773890603978998901234015804212405222809891477088366167331046742761066132390995585948040184942361687594234884437270511610841227879914853475288435383267861107026139980062145734440606344926798694308434474372736906410097259920940420938215745616742609619963089577879619962484163856303360713355864090792726396031131594069896413762048801996046990511728758354119301318196279561063183466914779044568081940869116227438770725919208646009518648498523530232462386264931003701137636198293330514790288276433035218712716938065926140395584058644918920612981037716712894793046100542881125490279321545574047290179119922778502170792559936355998616163361218133413877017241119966948147131530218323480457324846667816495213198691789606100803606432332877101152435489052146991832026257403464037431317262202691570897513970795228835137777468263413682343865524723410045864345185742831779821357945195187062694181289482108836382249340507403401175174888957921428520845433273709646303221346752258978754413583387912090284882803675433314131286987730562708557628783658850599969524808068016702876018026006499618461688366421600082615670275572629775880580001385174655344649648878840441215391741957995855999069166667226515516722110047281977256824491922228744377913426187023940595194631387934912840009655296719836205880234589705318968691392542204100268418485843823231413719233724498707049758707020278107990476646744118518122729888077097926869072556221357856322438493472187197460042594454756559342650298113778043809663680025588165456222296636229457998198716960512709729418742693638560040740311552164891839119171222163947440550209941987987067216838935208072708453211510774014173799120156730652583331885409044011223507865096735816288436044606014985412672517507947169129522893335809497809357797662342834762346448276618646999440960939026939102828978956817001576157171232926598431954615784764564039858857437599437255730531582037425354116793704101811706050641373666170258188843650642715707338347229660942857531182830711350544561755186035108853020069147288220641523910170453911219617072538671004774056497875590071607954175407079489358061773011251716228858100247252087496310206144118674171329319978847604532944664523127069850566936870851326429680626057496170018610410104649899391927252853099218376434863766983836539435825870189343843147881213924815077875899349713432552505866791100274466853099051052155393777590402483792432659280057379585271839203919075645662583312666475860423286821040074567956501697312090553988041058570095576810263331422210923655302297547991801387486297400312197603725776671371685210804519677128859729275729689627192787746418580329843874541168798645299683471873554499397550525746979212330071079439923426003642819473517144397316174976189875885703475309474186411042713320045788207959450069684638177530091378764102699691327906474805366315226112574710659209694216326897140857462961292080324357551699050095969411869011563642830218661566889252263567871253669225591859738673259417832243479760695802035283615232242045042889046707335421727423001750120336793058297174540468442779115920393313012090262597842180034981828453088430599422858107239055224270351172267971825969073385240254364089405015364575210715041917101662698638281868503565640928994410695062818669189253011121824169695766978506174865406152729901491841375310919750237414788744914023587602309639541666951021156798629744072072103435424088938380432044951974897066931872828335173980379780592193187065995782654458697231045060394667473691196472929593821671244631372828790276150602365500774632146954677659255045486894351652962128320253230457929071761696299930097550653231054074066386845567306933907729105249121343061813258790218189108631845344842508478929595549614509443647705741940873293953276820351234101815732694208464441026403140071353393557974919027291374315091957867609878858072873663760545183007765047881771570552835370527790623820554255411677194481396306854015461830382619517395079354761626472325031500176972166388502798187342220624079829073691416663900403428964090626033083140352589980974742064093686085021750637226271410525878168149890754338628098772284363354633516595638156078188974248553556243371665002209354968676179862168117376611286579817399822794909368170963136208757435062599910502904565269344109979653922234899076773407284326218140252861283103922478058998839901037798480557184520234391214135631704635461989554574219111317326116579510560612473880700217570446884981706950047831507960241573304426533511801381713566588111686001100376517962388476106042309796680651798091027068859331849208666912877111837551386113856373949842440599471291529260638872233992587365426716424199540449755967271166496024123722112711237818461521527177812071041666727666709475294075011893880603907780901923060473958953526102241756806307211108852834318810703760093873086690694484693711213305732740102345928647583394525062075764149014383183357797536872424479291276687579455559477726301781126947270949894251706505628996338152605430491670008273949417687643809028198969164960988148728313244653759737846981139650056595293508537080657774416396534227503905024540266855914734308255762358555185662321502847194923684269029302061746005742899956467317841836576652755464389517496508545072355964287088141768851930387504028477499754549063126876535295862946243363864988056699446089240402690655527011798795029075109291441439960159909646086229325050082366157796766897335796789844214393347294683484667419055626138818368945029906232359923207164815489898423376085688469316817741408613376357359637431215815771121474509085429141685391656042844797206675015230652872634112620034875667995697550991710186651080855013876033423020277011393825187683788129906443692328360585563485326214724002606535285606951733548628774081668851890467502900623438917601959506289438901713571830416105456103956077398177725544832631102812139912075129846097312396088923499176870312843630721225015242724169244099170236793879128378812718722622000402742168012789658197053531723868404103116200548649756724962190900054083116241597394281937265405892889658331417984814846688204641519654094511272340694403634936339658594189852138197322674737440648211752173266695261591557637195901870903969512427712752657792207336969968639692317984250458489787048724603674389584322793866997916198072394765818170147114471832847949119407174073126563698228003226243771460847963237223728907470000098919907277492962225816611074466549527517553535579923899328129654446941977554433709812505439684256531819575380553098399743197322048495644203186919732150498168357514653499259575562400323222852361693673764925506101047457083715040357951289737649072845572623774337640215473308542802802371326018275307017968278080910362819200675480538210365820361342588138634185290774542640648720276516762294384231462799473559606321127789679141578861299535447392491086223708318941397523993831191438582047225361945207479133114977813854273353321866458702721625508524674785485738357059743937052408806000179262868805975221708099448426957809420822677787100371152696579295063332732886581939073507561828311565510817276853185497075003067122036927006328490247020174718326646785624697619745191558636145048606920422936753843527526143591021222436397740766725450888772513941528081625919645243542314819541836944851007874286971510768526030688850129420516603684343999663855030072477986014246204899111306189708305826369266417578009453745047721894871479631713917805630182521421163239893945918446198537360823356914112831821890495760123645739910315236390994455572807588204736027025797003758582087555739187230666299258637553412785607130569496554233571351855517769420285544856673105133494020843881394639554490669126495713853830460981292627094750461261553448811623441992615378690901747885272141244677898720100188445855555699626960575827584633308184770290263453344920787837095240752250479698271029813840027640134570468102579901887258200651642658091156169808909978114153357095178397733750634661635658772353176713544345989212262709800087477277388305433703700728469772990490967345615739048252739487781554619065283677669625802583607873980388893623565850957495713977747353858642677298324649518793878994441437610331994204399759991345186745030993771697554094096213524381942141905987886052821847461524837104226404590078942320968250526064259730800692095946706993528268497177420439907040518214404671801056389957360047560346626630960973943935654866732241846529822562071289636948525026391718413512172956115046729463616988231965839757182547643130370453136190640225831930851135675222254040287069449362976062457564318002930483138842279580333735282774631836956007188901139054628790498990586049950179550171758681671050863508750039738368726982808707922261986756021426976121773676564918473541393555231920937221767705459662508392410195660112307485099191473167445367919881244640780856354364129570228396465251840720822872691396422393513425603869730553412059225594065190599058405686694091527772805374499430419644860781832899135355793345584834717078151019284608992371587126679977222574170221645134089486701271787514060645099189146146424285540524435193394903622046895932551724482031813143466224478441516302122855484122705569641134434074449030242504058435127550321804641285704933566412566755008907954130906810422593904575875919028517560001996426181309643477760752054180821240974629980573096577550843700817938290866575976452530978261493874701262872130592741143565392607726111282904480985909988312685718722086455316149162354485268194880910805787534226828206523257193252421128501562870779455494492298559811952717878894366804247491035081909365872005035171390809762697241594808909847863286921381497365211089867478731565609036051205751946070432941681979261516218789626342614000685752544253722123057027283280412349600750242206741040177607276539471954601580415705318213580153265038253082555788925966126725463946399185477207848638557994005501526690805794174748998069198056367452213494254332044192932641059265552673383302136473595707147411964485589314672417071662930140457972035390003557417906987686151326141652330361838745308171846140461815319868866711234824553075847745931520166558517287086827403792491238956907122657165873855749891875643887234448020939115002052429728734588233597791961324556241987063636697698181831850004021610457929099488327024423413671441321754255430541785606326438704940919755345522213187450931323301955808532776974030900088388521370669314137282489570891315520320303949662624531751399531397774231290403678405399871326637149061880826658229262237972300817855685532490322361109630583334913274044930974248926344163429946282388124900216685659508279554641059773361649581294963657960144039589513253092706396371947264662312633594961160369581870909011527853741791848083342045565089953294467643982392888017610061770560437833235204176852087656482590906641924284639384844265736915360658382059767128279723281691547645340723667799817910614437889077784793230244623986756725850203788946091470128610077051731734945705391163188394229629344404953574569548414603105314278308968841996039607551587401547629723690467745956589401284506588012404417505105766579402974170265647229417700670728973426989429357615864495599698569064307339547759728782245551104060338849309537899438300495032060568201307765045697123306870023166567727471578655398512755168739265403744730127184027840076685665382441388330209707931281551988371673651533794876649390611671725424394840642460117158220291550014083897965602526765355323011222921467964856054193263337715416534797026374107743653257986029666278476738976057452185997142079803503718558355242739416599876498413981406611717953012993402995781399059070975563068673414389352245170933390387097597765415488150924176282454799686316563862666918328996246516477148638187335995187774858387862242665595010498936192503023607424863917296686020482769011245051497321203830803928806156354797687729106390522228491446132073548776994605094984560078213967429696868767055411741309028748436351280396586397910567599820371061667805710669671531594935407532925504894220407050003005564976357093887385132167725915619611476692638220870456594170988238737808919006647684735733963437052235305732005970083891088461831758071560388695281121362446249880649831602084198498471940220559230146973031276212055701205737166913701309041565347273418677450279271771598795772239584762881616337336357232516356159705362327569570870282004768961129396794938824815809862318612297020476789151425921391824400448697729280818326618009758162493546748479637934397324513002576751338861991980704260203930989827892819573505761536359270536467052132014612123995247975415679970764030684902593434508077169645108273911357670955680659469158035116786791815137533701401720963396607798586065893058664818406315492609523506781957930168998357197184443830794817527628109552321083294294690168452019491421792065386229035222242198720492257506696840530447134011637851317775478160838578317513880703092928047811520006556392723319453502262814027166337143472792465092824877579755315623842475310496838031838789619947861024186528686627199046819178017075378148408138051970061862700128901682047697370184004840091913649309583840666575736577964546952597194329618294575252467925799270411888697065237411386161441560452038493386565583908188844485260524251879070205340803188693943220094735881401460912688633611091636371325589859093949582947548961181441226834534551066804853129464297376814221032636284990020461846208636853205768159201650145295990128963354318487165664695580527076149105073767941936807711817223868456134288832925401559878897397788941630455990210813755226070716495870362783399203703952224604055705943497224307582794211998272053859893223813672812070743660314034651702593896485264260642659947609093354592532617746792121441117602630359872325391124764324481361521780754181948954834443146167139951264129489320227152219780116136642534510961034068432806066360666297722794028859258112016590447576574039488596159986809441846930929345963180430318364876557765857027499603141436485364940889335412089190637140214051167935624774365119517941233378410827448597995864740473878476274711331258849766362834170152057253854754610362235957778408092224448502856155721664809600369516529122095584227726073032913149320298321751468681807875645589531770626530355210781756113270029435010964801965442331455143491768009082246040659102225774440103661231932276835770584230738684034371237215687191781906686385156860562346867458043337399897463228065303990914665989350525039553193715833564449960326054682963230595053638773652150473762523669280976724962606063639847301097946699950281517989066795393542125701335856187679258776361229769054046413728668558839178588253643447286153212786976404706303723854936188565624705015738869148188402952243505383776334655437923216333437043969705826270311703866816880599154127223341573062468166875464208690248727171414805348722813915764136370117834343260493259426754079134910185085282997140335435352052383949534133503052946990657018871952584149614649655735623656087814652820024915942567460633595392899044744905994148514037579680689576237008692128131839413390762674743781870849356411622957517656865601442753176775448112631784808864863597891380865287413293060543026002206996151530640533274763994870689650286461241264399837268814226422598970482533555439036946736701234923364330443666900406428610499640286861758903041438343779157461267638809414458238881639171458236760635544722755951420537641236717906536670801503355853971278500388177315763486825784501527661188216953496188840587730069184145797575225449556196013069257026647108794343766222961184136742461630425530640476335364581193011543183939617610626672093198931653960578944127957365160152868260871126066906961063469342169874198517098697787623826809685125526524125719105455270853096247211263212377507011701319183669985783167935027449908063537898418680634401401539606687991878120000522048932340723212050951127800304768706465483728993782476141533999815283877287593556908291241641551530045523772069278693635165092740627400615492059345855373630596362203057183022274391913446632162931035126634521760530576673502386775999279350579603934914592138930747625636737729230649429111502214028489597895202426502160591462415254264489927424715645893595225293188148358277477456512641684071165985027709850395520596408734367634639720317853525693850960960998696482670139490655622332733586796923918686328480081545316174201883277319547830411960391277670145467645928070103479295881208166953300085604853215039819561028067068500753950834884190981445878115870737083663658789512663801285843650087711108170446698404064647377050132251711218833956832168764709295432319538643986642939606451356378337434073453098004956191436180656509986208576221891908643971114570359005735363666160525152847077604242075621678881887323881115312009849645574095854150112497933810101115582530826991614766851137500034493490233155351176104044015816977698668662454176190015466735860230739318225221609435343298568514284080276781088430228819077485183041852876574486097660027785471601200727522504765729951665821735231213196508699168137934585883726048158304440163086036533690554163153111483595062783476464896179849847921917817333064815284957202928863207658354816320704167387145307918317645204086669453532819927358971642818708176716339651668568215877219722013385743697459434632619771530624831207397531214996334918235737752160038515112564634538477756777141577465689857309108163833186582557668027745650484672940295854385007161581589239036852096007475897669042604340834639539839802820743180275555151400155429766317131534938282610214024434785042858801566515828262936076185255245261893330395412463155168920635022751318224922755075827982994444589912728094195585170907540962243605623159304572674521344296933256437102140456745625811153558953097787234022572793383721776066991993410039733036700549663455192279111253804431491662461430247896211758363312200529902941288671175488174748721052461700578987405994814535585281579751041316502122723424304111942776773432984525639804804973087833919444669381028260775949000067800182041010657405052515311607772701744762961519605658495193985217046940397862243602381303030175014579319795062553026483481190290563938003845510466851450006894075253479335649039665532480570054704467473957838597255966316828482441356291256303772453043394722091945971900193959719137065268671341798179575195600467792108133529548763405338755083734416676316957002167559948410172745677630414256079180260089624247773751797049119005566877635924357539114883769382405377652430475708706606183480391830571783610554467300182358469120280079961361074647809978265330700103320791588354896481889182898129588811176224779341539989422605487597491372457503571307450528854372702798389098744685972287974179811337904019296408295402167508301422093865867482585711497539884013999774294559893582401673043186034097431593075297707847488277815201421771774527197474443531766534502437011889291223580359370516234114586224900414298775193598859894281701114351848831591552487485447247015723113354519326802119507825597544832833606078908574022991458287595862405781762736451640035615902577451310207630266769901224710716732755910078773498949586642787384177009479824922530311831001715640157521317481839988500841587820906364008362675579033393699562945875818696704227821616955293082522226338093324202219102839222800595271419612366772531734898016278299419092719377721168496726359265502914509304380223373279584656491477386212637216787552705099543479279214102815724982089115101701522643780007491775038334221933585926399278972185355323956008212135143715784609586657866083353376635850416340324900413623845038596563963246064540462720701402573257363265704252022034053242006806979608934728104497871036343022582497918532159477741264394081111894933468987581346560364214112369846644962045808087010244400427293399333869374717031160024063676579457733374187160200288466702151444168076933011950837686715860701964393391839333468738548544539360876424183520026396963227019916473400208571592865345643142242637735111896391930348258920689055590798497836660030565075512899119924476938537594165261542457348424378437818741082233320792702667514185523052465269182447542242913452699585351340692934909433572313117655191977189942067232968613882836571554715646905806127355259976484070247577212349145513295532487111559417894483828216048615965639760547774428764834161127694282927188326175350044794669566649103364026859033361404319432671136388939798701458025371837406093063963490793310888595666799661784516409751408041419140711801880039751733703384497501085656835477866940713043119884106202047828370230783069925490404504166889360465201283356106931114241714236996988166040652116320790344367365901370292245293593683851225224562030322562941775935860365122738626547529982921235151012546391055723319240785611265577925837783512117237069871682665148378477587463399715051648060409372404035232084836452917281484703593208538345404993690008921259177325436079021291966433348235113926158839453568605272063039739767020064918192144440459102608209388038570875258780749614552614651685561236217238712384420786714658383442614385128806805288028462829020399731851399060777786279127639347945472033881830138091131370140933770106818526311995670886505272525799949959471370247089208886758115031553575941404470168782750177960589077516247021734046121349029964361205024739375213523467406812047591596480870793856979473920140011846517031595737139821168207074170201248320693821054614950418290388700901459185091384040968347579171618363538939215534186506079034708096270115780565251367093970790451198791815141964305402184176383019971227021796422684649137861573878430238306360595254660482114967615370505813845828255270287644028173746575039999714524057878170280074803111786300535927130353931668115705822597894229269002276701430666512455604720174188288675157014931398505485423895249016626698031075580152059542602446824894528228504180802874257618721618107093515696351561207332573839517442954860549180495469727970765586937601345047442176761861342147510094455594796861732359451717811659953566154020165636647528277369506467391452939372598080415520790222063352107973034710651936098549301067877807403761777105962816955691700287387647243545735308477839319129246117389824272940363312499814583983447772970595645289111955970998219083627065603324971738843627360864844855650052896202199597211365577799853404272591319512224480194709384362610786357516714652233531741292770770366783832825515206375753067731131980706727124925543742280401210252593268107932855209401610931135261595903721404888515654307519649409320599582668659057376539022435026986602583018832324572105764089463996156192671228269409820333152461692427324123575524213021937592497800970982661211053748073928057217549538360945288887131884731961797049525511167950491494819709572018793150145225807255277116439734745039100362191793003771792796145518322916368896001937745731546664649998142008194257097421781657627461679622048638993847516120981627404366071233160553239104685268530096135281616282278917424663521236088347131521785990543408187302930277121851728884225748631001718337175807910512467191990402050416475521718322558485753156825200609458594109572043432826092788764609575132513679139946063352961385040980838012835265669185861074125093560507626488584272273511193909835196327004861048377540295605656387972093643053481073621355092719669057975398490120937857807399388524169346261861121952574789628127263636201649354431764838389578411918063926519882596042018774813447193085334029629710359698056136863502502467303479583173475925835459157397887721689522140731142026040313090208121985546259170748862963189968480440011696865506978819939504920695495587943853211568469764319869199961388948333977280518986584224433381416775291215538018334242707731612732783799302694070969501376170915537844312979078211903691835887428866302297398357163954105044082016342718073905394721860199722408480049584456573326839712214398285125939532440499706052265012062204780889965519996786890306575406293156012985534907265794819661539239019529563260988926913191873508975571905823372033560921854991329546705145890626976658558463495354961075878196752786940654187086726526971468103754225409493017583758143574740881847799235679405876822550242128433678810968935147402065785617730079113165335097718615248616771374661109930920145719028851039964548155700239091051646425516657984268114754872669696177703224120903720179919708214993954317059978225802885590032047065665920102520298893769816861880407459804396047280932885580270547124475093786812766450416516325024321594566972035680618899766236551264647196597367233312100077680043853747989165796680867509833638943090577650696260420003076245017525880959463939678714071927784070759927266694366223575567832814076339348537785808878995875668924902216747074958391533174591896457151298307805263347317404721111310865620317154606152184516274765867056740631470846739948610207390755595633480076598210842808331952652331931055522623622578901767726337398951643474311986945482761100484302578075839136381070289891481962940337985757464662066391809179220902452587390622013481333846729328064796647163230854559911966104127375157755377706666665584909822062503188142991619965690903023439424712684654736981861362266093299894141904863328354080655484295202573379381306139098146406187939998215902491416623409152155324436486155978898808087859715622480433195257338217991883785767340815626682334495274142882078956496501610860768355915518820789903743550994265420711934143879892896070334519949001573589065699251925191603924626480096654575620570445499391236740748541639576502900146865780307895314927830615529192665241047646200101537693351909844749446964168692434076920519082193095102697365164544713183715141682695708064329763850541034052337745410783402082381806219252426823306207202111065942683355599121161874096435846392233441120817376837310080797332741669804998053308266597338519275925140817040335259154864564798732943226249269762886669157559932549733315416824910608087931712024439901932801471297031017609221135165249866627827951395972080323053994770715742250230546504161134376617234161935071042905806928213924233096823624320800865293740201927735476544379322340003328335751066049136376404132259316600217765925067739168191081261811673638062751010269362425917105279095275857883469229311146206462611126221502651896623001421092983380504877743176881278262928796492131641859708444539857034971544162276514024093989356500536840254205523837029401698178601131221275010463254241252399467119872598129114238363267238342022624414047358094931787942440152669866995879673328893261054336053415061087515838577883215271064128763915222364359620416398155139576884754520952018029589661046381027363466333664516460268298648086808591466152937273106072806390734991373038043004069086507937348563366344134140214824597651901725849135218342346679411762675860401439923336784640233205082603438905872768686461908979497198413299418934534235698373450472712945502414449317059700174093858764028826607688398983966304167644328060488853629080987824990566949525901675104967039809719356676713858808370095829294280881471000833814053789231305751654025816159121152647068770862827640641747151781819653354042961257237247094686044558471596066943236990329788440717191336196441350567960616901635279157423587073936621425446795121348950125288317053649787703036598227802348498554341131261878743536272766947010721172782998568266004989230999289698885226844758763537013415323857244458325271522974887545393458083466274790738990920075256347432876770588597970463714499976442158614614144305220266423375133259945833626308100236226410705966696579761345199802473630594507135990233958724960656223620457727895564908889632602131298396090556877649683052402346030754120699979361292072815955484735971966668002783794563049850253555606482769190956408088450672065716173874710868291347575148764406178888740640142596410165388369185407750112932931978871297248215337408359653979291253893054913689081113615050903997200231961345970601966497219901164180096845272648132486026947596886672704046112918404798440409859530354571629855245780121127324004093990404411084107468829502700221097690134006503167230071000983889662619264082006264789397905105223239209023879762553459932304500386313969410438142934326375617957614984715773282880900459110167898967264196144800591683086294760366652914404155192889051500025827703602473730902164835813635937358087490466969491640727937834299615378256537686731822851291757944002498103922203146613379438442671631049110054768073884060669405744572802483293186852387311245125546678005504227931250213268816724158085000639781782010895016775108782636478122720149877606607809692821628498340192366415949618561585649802472936428099657941420585699358413884205650618343311337128314302994143745333478435126145268384998293108663546221076606438725939035158555992260930890549981878165591287362985531358717335034426860821123640966312148005900782823929577710781601228954333247176944717210839034473158365763612884407669521090746051800453750829097965538771281421049553608836114701220016738376695919099983596344375315840963040526773948214340770247362117353916310663121519059121256211434707309206665993975020938985935643310599621861275381913028523848427854472372277336051294936868287273967094448808834971344008251205741862151391264045031896252302655494672632075076734102755931672938050021742316360116789415462225015553763362900854061900595398859932743724436957281771751526391182229954930010382741592901268308525238710163717854312741798660798529471760105281988807412007943026378360576076112169990677064400635434938449074147390405040950282338140940433237884414600848736819334455866273853113842193447404475452953306724887781637692050962979566044274641013276713713062379252121707845157584806750556742319525646594420805386319100694763432875497541529733485132389514398514596270458264649235428113384560995103806846932229108113517374761321864151669010410836060833353021435609321072237805572997034483843709724355266547433288841675212280426984445296366939207232342361053043344798566305781488073126124980322062564641594033342382669387637000203174710482217638824845854845358306218365976312991606968782326038759150929899318788928740054818486906164961889195992775124581422079136277777726779478932864658922299651665603377908302786555301065866376850200973216559742873837009401105519559710504156660524394109282613678248414940573518562409693126444619201577092712613687530345306284444608539343855730382126360729851494559113746938901458961782841967767817517300095845105086632927600452086765214902534164905394509340501386477891245630527559622645680970389319711268648169958377230567945935321635274674257188517044369532150779308449703229387111546893176783131207869151469626536987056810045332608505684982054960657344856916742548508600096935830763532774939330401316208114598107859273270730706644772019742395837831335600973977540465894801467099159329772255471714733728725045631793372680607522063554251802095090882135969027069019146049177457388286221232779808722778404050042049865877175879416143979757119996337301927436107042790545110920293304700362325567487028667359407232911620659535278549233083813859619163132511565808716233356689154156172105548838001208094247114900024183830969934656070680371793142632866769876788522154980161102541037172505724540252860071219584765378333174458207447243375727476361077409421474179674718948358697038057786913669536991544970195646443939752226058575460213300701013290887080602542253092293917092602933017584344448587066485225440027902356461069499500606674160983510169223415357443105391902105094482765169684255005849083358361598134666457307641845745030148074536712962899848487448763040692506123288673399276722972091519980387297004405046699555337312579979722535261476102346416404169217652292744799030142814433193623901474072114743590622397146079026044442442512980840524441735668764432659510188054859371754287860029727648805329588619851947300100959755016457429438878551908980512029412671598691505812100051174367707316110036654080481058765203841774526620030719423445200971651237812005491901727496125369139118928987782690943102615676852348693964962664105326430755929653590802291688258021282231530387921961969148206681111605089751930239401302813396717003083380605389390764393415300160120680448947425236880645635369181361989602781685610227627249144451151338357694780629811810001988498037503394969359474397184511343492983370893846645954108625782223040364235061726645779256659109509054711117028660428669791485069092241146074727582897648451014803103813514528034115018165755677290214105715488591508297469445694836697315826568277376839627972902407001000944254270073527289034383502268760527818072356863319701726230737121927078560571071380548297402755602230130202526443127948268029684550477999226071161918835538216426575581624134302782269189108397268246355126687943491545529811100241494024529683225451121068842297253658737960099535652118303562274992105586959114228820162842139077738042576762642101036804435660622658716241242124426868743082404912028998488772267002412620257648584560809192489029309205737579617772933225697234955414662580986700433226942308892926595767824915639739739383409391633872502553880393927921440670611699569719440635544483707969221596906566108387378146005162489245214195950762930225702175378989279101691855621507003407349298002082196014990389885938444442599264842976392898011314190262778132580701238454093777180824309822905578924873479418060505216451598108089252684000116653140645702418014537581473690222356277956054694493075615784763230027225824044288678416307971512467693582578959140862721288449835848365686866755616167380093319633065977656870365371915405967280619114392604982069920382554608100923601098642816551545256518405896323021347753593224432227266996252350108178534657100419703812665914147183600573664694237757714863972525353003929345258557918448662526918586820197290331709400723514326853378369636578043496070340682139976388378076627714504733882212502177255479541518889522820074792414269128619399610413408324451411658865788411719217866676645195781091894492233656841437170646539893514318445116234923340810477784777263005343560880038503212465726772700481434845534777596716726996409690051307857946358919622301162126073606756803949520518597546152953766173217169297853982295113436814466794279686171897364018085397450037760020131410258644882436639784349306328717965988019797814702711618333543681030448771837141361441619027907174246738280855564454365924016393038384884668691051628461893047175557239081989015126750758706474067098120327864749455467377774344959224700891442410354343943175459051215880057747408763136263611783643886676826201287750191696653808651569176960030281309671951137975493041454708795133033265063980049845072491703058071903685346768411271902885122149229899739137826039553162013407259068488481753072717794378692417110836867533150724074588357898886856397074652182090166952177941920282885351370043822185058709667697728302263835977369193667489997662529928091743197070975756383849182645487518495628539872642549292900863956812001452277913062902782505122035433656185420913894590510268859605623534048032534711698942170661222681870921047209398142615073190611230086499052713490279728933631485261574802505249018539244256018087775741171329198568606001655183117352303863808729265798272336931221236207423843113208338407003351001556749178290050977398498389030091324462921073936153175256012915193689503148012336254580683664527652348812503768109992885215040248372399221946896053313657985988893341317408850904513312716659514298854449897641849237847002280855854107648682345918395021114456857060691005675743524715888250521663684912158025101222256882200371635097824575224067458872263936529142678271279193311130319950633774897804991342013254723971966543096782821449696881002884927299266674098942221200340707031658250769654001177168765004222406711492555239043430940503116785171545329630007089309996626861897921997126680238762841597572910560868488128466174552033913643248905945533350944732354944893015543409227634588522186978995930116186077553662423969911559806904495228280382040137853076617747129183531768401272823529954178891870017847092826812435700625224769678718673306513860571302169455726459723509230092588956829807432216624573632805963763554268989004122611608599016852028469868229301610260673598051515993885654685660988522657703785429092758457327177783395932276386020756669680718812189545294238198418717308768178181905848693192727686680526861475083173965993685789669863543001733103603095743699147666534550358483537470424319320860158879708998579106298922390919199804028998602561123447195870912535183626449176073182593185070030944195777586328050673381142362280514352891206065761080168333310438492363600189036025396205459848867014399318156992125556045202287995071556877340767346065236075398505233412108655651813053017263898797383862879068939715610212593980881086346754580727953463508614132620633164164922995244628318384694453239651649288748137954195091805189526127364090362766567030150434661541677918508108200258066531424224173494447598786711625278317150772424170042464261051632518838839765650148497574160756110198228284124865323952036514209499987444860240692927805039550147094774371389597521018077301487021819886130171440366408581634907114054383533312777976440290646263217475014837615428404080237972524631592273832573037994163067854559631009409847548820495799901056298691396566439775747211597706630871184973064226345264204140643212033461315062679079815968959940120387782913205336592072145655431247896990114729066178577931539979299652360685820705241583983440215170295203871546456854865074582601149944838416621861198292837128874458841335858817078841471735084128862913579851183322368042767282469537901280749425566381087567023052666366980814362482243327734132180074311819208716164652139598067044760318097359169478518837128500636639849351484984122668949620492576423093216765924669292542055292016994219757887593049590275358622355197787588825794711857280611369704542286273892434642267559286424483745785727112158739071103128898360130244658947403193831808493478166768850410628237472302303342548007751198833719275896465379312158727192937349535201348486021897974398781128016774263511792318915996209270118359521874734533873445633240490924594179302991373463572275805238037575051460818516898243650164353454604348010595885240327900494806288514151740079321028417552410114567834626724842902599478364432438219242189318271968453665447067159795278187673065531432647891324948562081677055835049042358046987849569999038239138759258581488908046507654439198568226517331545745847719565664420639997430344727524034589334340862848953274099002033039429345210828434829673442596787540795623331111679653678817134172082900311211882184307454800193431816808714973617284870407954253817765570497629209299772355877578747772979259425701273534138609015484336829263804650966988602781744577518761324424710819233065088495808744897201912859837736576881594789940863594545946257867168151636525050667363577172386358074379709540435307681294690680455941692234180471772396235934131440417526983532938444621522464042724896015895122856838015771147134910730638306861634001808245315545874979613989288767332116370519210682907832458208147784274286429146669358843242150256118901354670726026439642313618990653439833279623423271775656357036165939891850563814281511582275232179725847206345860162638309297069712946535205067879280329137804951769501793147290163136718648184940525881407518458028904098968999106485554499020198698305449935042801771560407059239389810944649933457964910950986441535123254731318555275858321369509385262628005619924599748482975785199404972951073913813618114056779115560388381443298833146270467288477471246345923193653795948708455290127723332067801461518260681199648142210084938832333549448917365179382952384242203423779013134051532843563039134412456407630324434611130282181768125594406503573381594788456404188528179433910980153973497077662955360357677719724167604953522979226739568761548399409362979846601739651874391719204321355775507557614746796814107101299686241336602855212894318559914088361988753908371096491331247086610534609779667769799317322733580151904742728877927077548463411280745493869676232755161656829021159883855361801109255639627364274889255914531419503681964897737501090690085860955921379977519916430182665987495262654410422276978680262997517180162301755007517767002602074932023083130349239324339977585918994245781231979244697768193672193409761885862905863740504950795715058265191977891688534737983021625110751583465632922469062435710032448259920267918494885505926252032574600650266332984221100947445879660256472341116377554379781837248971970882090685654087393172208971475815999826029551869926372836815927192571729644309243842115760857175993074467272879739507057449201184020514860235965568192462522669216627267431000458570370270527735042936476075499583034186268818574622044103746998738444662247662672036444252949517140410540394259767954332294625343532328863352132667206984897123782535654946327557005231743213214705095186592103358328521059791528560200267636675585369264673346239614806884706058244850582988903764623752030495844822337137417581914775736442368695167691600181563383880153344976269566514570420432336339886867396882464365026556654898910087296946273395938474073851527850016276478233225002881201714513863254738503979681519308997257686619831134711563475383439290418083313122074821295630772428816687077789080454345820621800138878671930264034509489183886119333572479397506977936657353499661605902603605107171185289734810610750796217367214674459554573238269004508991520408941253975217127485213577433538131581403929783011477037101908790881891120073757426744670302147060993221642138180054194707313730078724521895384527568488837598050762113782528155563208697709029139089271411976265004723267894114107396057781564043354224741647470875492844093148142530471397243221796327097413024433578384171036657307228172641656826059937210521984095334456950630886451518715399581209376028906087427377746029708018976013952561410084950136818788157575254249808286280067789720962923387001836125071241165844593348119579336470204144426894312136555133891736925373319344408045302618685176435438162054459501106454841454982374483136252982087846793233323247802897248270058056681387415201629729030184043948518459598944195809071468249443425779530853624316823501630681708902923158621666797886167956385472315100285889060619821312261033163812733799568709807266927562831044420288894671774382708915437171693857611460088604250135448377393052364750186801575404845200272351735399768788283344168790813329948462965896045150259681058526901363560948211811610066164084381660808357298696836680585587378365882947554589218804655219954164116900211374282511047676997717381099142954803541825942313980146982510902899579868440488408505240050138050857048746983064813187363950820182465489933357159811787818971976800884155469840400001171114029845588811001206819980787922381153518753479827421774142782485539018845934703326954627161186301284976072705952897655928394482145331938666730657876090733274225835088651462510102606410623690468909754322313651924085898914100200733779044523055066870681446648129158984703464887279734666456751428899600805717720755051516621708429841879297770839200301766608495016289358595039743290908597190892360073625557818695957570533942001255482205640375173898103384251373472307838167007582827736092533117543097733899794712517365209273157780423547563284734394630228156037327207706027576509327868603078627368456527422805822802457165405938339788498129567947686731725397173462937563626183442306054489421646736267818364873801495445128496383033341751459375612569266762876176043690816488080360733066691356547910413473931307010556485206500402598239180433829075988586992676809681547674799357016789351068885186720616744181438624531310199507092373709435078668861857659111012263587887571776880393693043902493089922818906294584126019894265977955728243615278305511987612644610932307169830299662565221483141758548383026085354208372283302785152611298424086671768907734445683784343651836928482801789311163486203111863785438765681288091230848264614539976933438574409004034216245486093389721283384604173195678170270102205412124370994427320934937557501918638021552394627740494245362252133509190533448053106464368114212073220703842233506709789173139763598690569802575542099701708206756250679275336044441425459214520927309894273066088290112891039915677858231849390079239232247729534341984712296840416266887440416536179461604623475302512389419409456597024366373053541353564167596177789449206517189381172942628760221005173642951993524420163049247933161470212902738826858513328965347898199062698464676508233457610590959412272134175883196779157275255897792761313886418175070250712421416843431203867650853012182031092122621735790968582004770081144702290438219298828597361885905705268530294646355419335954608451328486342012708128860593014238217221038019988148229458487405949653669599428255605262046412387825961306762092655188000138580761895222821046844306277159328860046740117530223010076544577432880905318927403478503629677124860929360937798833055332697454253007487311750967419500173568383769933522785048765107961788400326511231175390249453551495862923145824250974378871350941759585071042157990185535970041553460504495291616255072131951448516066513506219621281353399800261917035308629105923665568959934409289726722955348425323257234087921309140829980382892498740026063435904400509850118322140170947282264866261388942732795218567247279265905066619080025401417656307681599787918587233643777172906324029471101108382372057206275919770088908012136522138493362621780811414197962550956414310184612131609719684651143054727851442862204576739205397390918752386782583948627081438708510975490474433861150232763128729245159548388402134160807375519291570738773714984488044169371174658956433358768457574753199005019098900736021651858014160042035856855426724617970537669410214210740851469148068675740614647373520587854128134525726334515783205429183233737786761469044055358981380170713454617079678160213986194711126221074993380092900107734961455337398652019810736533588662333867247373432792918317345469671380904712787830079721915858191066137122437129482280500564338879927206811906107564171085716812276209887352277905393849531435064211795228108701083639455198794807825506802585577334043756710527873598622684415047756134657943927440194128037290109214878538188367796215514860313998861626082791726676774098185692871265505563350374205414565243131588387306600200620024669643170779410492783831574937570512144363952287263759300482056283581742550146088419789208178072290524995703362163110080138623261999633875209594036569446632621054980022899068951727309738504515737262142609589060325728957834056390660954049054743872404918037318707720111255275214704781041108804911011496844461087270189006200360927974947347394214630466556850805589882989091097706172338029182507092139511217425341940603717491610009071063206456600201098021911857699901988484342226705634530961372538628527495762856147144390571226936780827537962563345592447169250481448151175800275201160727334259692799209332132650110430642330677282085257240287578628002394333346045355033282966151538709921935958337970473703308907753764559657236622784744777802724363121410205061654188645010975771936735662327200482272419544731932633425834018093343464735107895293215286778906843932896406460996384500673655228960155410890095810232081497563770049203149906473747480792408075082324111975445277598228144778223116544056217313678142467562400904780377721138420779333685539730365554678164801082085204662006351519982304434466445091495666023197533986317219216156639446990544186337892262980540524468426729213264257638626435703924736525546578043735531967901430375691745235664750142964584445918161555545107046382729238750259589764127673464335590463083695831962515864881273663201290898455082067921596334852607640369548102101816866996636073278974664493306971117803908070972064710824654918757692736828954484028906412201711915733936210087633792601052964503550625143989914415325808984582773756247631697478352486659427994221171398880457646334696469452473185056494813888413470117159412375000190838789993243071573877491926176349612217666356053908901528396754855369427932128495748158840061190685940043706487008973522688395939133784347087947287383959849387574401974309844519793586020088678313588414589775769066944742910118760673984020225985301387780210300824068637826315060585871166798258818973604842272458075402381044636261154880534054375578986608173008980577032730059030887471869544473048223066284896893253495034932331397689485239167140645012114784123783793654898490477321624629010096726862629257197972841225391477130083845373736820865196114890639603663993991863462035851083120861185886119956150046775564530024222686398535330802249091400450743625271555618185151008679318822158528893275342989483089895245455032551425142409289255141544090491678084977810486854057555166177520634125716622850085177235466033046124007004656628511422634455034646371915606691326152482393629467081881410929173006772590632713689146907769357935267223588771123901291220438263014097218604118642714727866876994422424323267388364797005304606739343260335036803399527881981720549917390587712924577569724934937252175786921436859267336400818617594613702379722409964063449928107958830706550723752622279630402875141537271961467412010346846625605957163623599105431058908987299296764172730108447816247277077283942645671717039520886556705842483178192620161805777547106753744454774767798982778364080862713914876630899691668580998538258573313643952473802419499655222877021030011782550742871521374209079014692864846267056642447358509086434251222234744034248095185620271974348632537282443134890070261744658173689601121502413226818895795882121017145113066345214539277425687938705837733672199555160799657711640082045880763087131765996951204094129968395545297573680377392630220853896617485992635896306062572374973051191814620454306738724793932350180207373211122781725366227503150956341361816090018913430950130179594071506496434461300360367159663574372777774156417235902212428459286133977294535457700402219434202036414423950013982399453688139819308826372743221233307068775032540111356119359433526310221087104156020805254113611185226570272516101968241966430793853571215695571395618035377434477229544435916707954603604107274786529831161216389528873541614244307788829083963295075859238596319005827611428480309423318521784738329702435377028822899421972466453764383958474902200860232843273733716092467572934085464681148180791649550468589551615276376283882171069681575776972012161970698550063258704416373753189136383411274301121725734951554840238584595923313621260185954399091315773850020491099794381455593114437160724507374005322454238322615674297110404172210301588930728870846441353893460127774406290483014039817332601668896038644653318786065833960934689930908893545348005905578878563114678175295473008575633593035774372063389725665615716556629933405832293225627542344246056563538626453992787902610014145595103683731436320018295943077691073420448451742583167718763549773745846872668702166389178749716769752735866986851824406093686548618759687128863565720253601059346085187064822442784924802255547741444986659500142311329568460287771031059684227156729494254163086266591311040737755759399813707818808667410193483482600641156480627344028799133463452226596960716862957940488252988263089252877974334321371533411269673079540500978787496844821347070956618678514405532243453138620588276520536499540653191569028495858420340465899772334323561032491980050749920007568955208661967944584392916486485691915212576609445826568302741745872124585350361511894475577539493866890214905435875726655242412958053587497542722969223248960334129539804435530199545342586797592904479287178775389428097197264474050962768250797723050576572085404829904016524455833134252873049272218173122343276017641817002931556136582543674612388053450316688150661602823930637257582079306834237321120085103486202226128970075900709164773431792416451237458618255598986512522068314724548927901279339919293667168517148055953965232756004538130878991797750348616899050357361518729688700878134579587475126234921690270806891968298596001120122004173127712994759088355137845205562703019165436047394805345055832917523626911871895463809324449411409414180619724016723510929598318444405493957241167136742810727542501677627915312546265806649406613693080239646402799497759608846378600089084551082796418233421451963953417202974596290471639212871938991601592569096738973792083564473307371839749790858261110766750490175862203898883522066211221909980227177068832627731977335608166123268990112365801132617819120087121617007703514185357347391582863307372532981617010113635111323405260832088284908320495064722073238351776044873980655008704958153573773986686560625521281115371690685796312464418481672442333220335875510945169374950791658530830790258816624898970354202126102532093317395979737893803203412452314855763300187942297463640030897657914152879611429483958354172432349381581935998977694515494494788452182634266241831554623538136372736494599063278229457531391189697622624112379174509771726460442721036241383022396149703518062819125745244413499774428386576692759844459885353898224946562028604662600626854983695629686799109030074647362226692031793423454747417806040723246259754454721969132844015607306064994131582442844484408876236833027399403392181430945981206071480470086940763275585014869112474511168391814556175842500063282998272523520237834456354831606612454752288572714322138546820074230862533131577948925670178369465798004796326111211612107159074767881386045421818509213697120061978037153277474472885281537788824859067540133217996740211621471502657006931607410574162379745024249830503514149492712441140138825809857215924812553371366132043302766518751467546982920369723016905026149276405927705383430519542929383132690706518590740196400024482695635403302418608602218174095233280266143534978624862030532393173617970923379732251378375954078375463540451054650486896077531511366893054647077092391564080042747011180821888189289232155018463639915442992421769597592739904842815171672186029053018351967957207894467617743483548058032074582940300861435776927946715302232476353323864828599825162965625358321521375394839363595292296974693248270221006863803534765831597142454349966134294207653415526403254899599226679390837616733140573627568018077656000830472744519404585075648879281963689980478503359644085028457725020041854367703722241062789716366839172658670579745310589620085547620924470389304512778816074076970639782874717132592971611332951776223027514497970809905600505777149597957085591460165059388227954094265274276945602825187546884214235219016445391462319418579901713989598749452107753755482922414177583989307987378557070248631383795154153774246122103203800972502106184816691695662387999339820871263990777259423947910561706076577975012328302282169238658492168381764971911283672535678302229681527876481817596731449475325781315667908058741618625995554200760129707597723739652545288179197268226085336722378046636842377960149568280100339965752058883573861411161551362907609369966144213024580690483668220075963284125423584630688685899504945053977300968195641006509732780153153867424677668688226906917952816045729474213376562196468288333888812692546870203426660167545297463505744459190494509699411904740250422516632317367620048824718573043576706007922686588849337286154800358396851309900702037753085971750608684036536603666216109244111254426829636475560382929982635227300200455658847501086691022781563859832461401046383765323879968295114361803196292990405703149062144296736422834541028445744795896600032925095287705160211011057506176790164159414212767386055639475776519524747440018810600292010341998389079294960375896876001765871571722520206865781435362424275020620273185560036482651688052751014696266056598168368545425712752942308315081929912492876477673515996795923720698651020699113384058286122643708892491311349551885991117566088912189339299953840344567180858278014211105006114516623974624886306571617899795471078432380671373999139529144220273706718052951337089344237332541746700512438159280809477837604858436163937493361082552947218297959885874873560149903374581821990455811897466698186237431183053960024652794615614170357713888667336215608679198975844615182075419410686670533479160164567145658901631599574973492913151782131252871759675293001151158830861710923126553599344038194360124224847754297405456681716498683634530010868068422239316030068156507536805189578659790064088384180391386985304044914889052420603642591419189114907220339796772784965519847564691950445337914160925738938011190097888299280862011327434244669448578623130871978017742992396639221111679531365220820333239729795204290155535191873525091933520480130512716417064219127001558923590833420497527090477722792689878673863026842792179539038589653042600000873269396446813161430048384997558399631993223139846343880421853740085536626494635002005222567634828805908468833732106710423622703618076214853196236600616030846065845875202860620112811513653069678162817254725963125864100956219250320151238306642269995856315133151346148968758618031536850210200117604209530459517999103327438037311081985576123527836326922139791316626675275711590886985940441615042161627463267166147445756060889517352183746352719858896407633558391906163141549547400758258317086564910082892375877776981907342331155980135275225442646949697545623212531404726321774338648007460142769543050804824609969758639819778766230424983380832750411645312130006578665695021112122969368286947829976252536714627693569585405746585487124711839348468987053292255463819366592359981520345169742759881239669001506574480277948109386080094920530200397395700492996539353444326716766278429562565654664971319628150710428968430914775407227210632955407484757061789403002938391724785971725491616266681697656895147636587695947461309158573793566637401128456803420223913737291807130903990974189764521818909102841940190047508162865685135116889433281193111690656664860288281670931720757117829031735714029155697126764452106485890460597704633441730962317767805644103556550701451570121712314112843505981416414952459815351594894095101163589366610360848470929423747227904045960061035071011199445788332435500055906201148420907810749119231628286297563531979704395759348675721075079907159675826248370625309323502021779874521133298788894070697985953981136794997703649928418838881116283664549201232707680661111784286483983727080321409178695782764066248133280053277362215264809859395698765295960411124113353227902808583030471363293916622147403857950004579378884916676730268299266102775202355018133900148459035215462588622428296734581118806209571024323202812403745358420568466552277284113249544036676165443742383693273088424515890766865724495023138942963836907845735779376745528698994357809529782254215902607359442679661902362500111909927737248767933479140439873560868572522031603290845665586367717877170477093847346048767424020266998565513438471731134000095937305641450960534891575416171120485348188155055238738100651377023884160534818199294282959106977921610233096361617980584147749157880132755232661530920138185555762239893189852420561119987493401214681710195218556398866114922955493688993334638782926959565480354493571079288835503603427513528778025297274524201335174569300108191908540006906648012734569241069010954003830866492132710769480399566361839315426249927241942780361815644862114126769769315633747600873695697878920818926087132198293531813526014086839574609021860403778079966311759271629560503833597395268021447671721797607319288743718789363907046416314415122134337973532983410229834241340407996125402824535772211947682413997628278469686173479120491276477528967908290238918683019422311120723886403288179861662347179794347219245033224467568942155147642898917164951478365931024674589079992697928725501490325634884985122478704353358980638495871960674321817086051531271421151591216182328777871799715694789224166180635298258814622731110977697394240606278111305441920524028094351158810282760978641788951081410481575756788899599493404387026692089717055164131107772575148480291219055418800735095587927272572267792604087033158453508417825672573959986287381332525511642897818644823269202841624535649545233816471261239506178808425382314066147699196634630097302285190476522990501039980582386983412598442855043316269333019103853518739327423309465685200892077277746288573508055554323078009504216458380666262444976751090694999944394433924005101595637793693816177283004584804604605226049227983586459060706579773636198935240492498518541300843364615279832894936891872487920915554577875448597755376513883843511122711670383705249692796936381273542123190948067493140144953530566632649345613873002134527513644008171391867055190075926770650917567400109252148580324536002160857399908518991893807802490878717549060344155208466060885597557180353793339944272209712130824464835882717003051127156870705860009362104619868422587591021443670599505731968154227153926218766669726600406225568935837879868269899189167334439457385366256357088139826254007203233306983174856495944852095295545671865170458377802994204484419141520758804795086024079183553180004169885727672370536156012553321231786884218871827292425651640132365847869585066322501786931885145812429966021886822221974293645026185542355187976081946400735289742916546954902161078775100552624553387670691613749440391077128102644565736049728042324527834804574416456064835350149414006306564091227691196346948837388821813558269582843587608977738453827576766628433460181080654193732384975722939742516081195041691409365365211581837612289833223389719295874077453732708880739746921648956433772590058178806476478053979099075301058733435124797863283043293866668164736217951105840050771233229493940893241996545193461532865717342538040342382426432775608596919095653081959143843060856881785437407032085235545077692895051379677169297569773668441315859915165383774618657139911488732404520032712704740226952777937998339863832822797551595930996882781735297252931631908444451498816327319843295704818968951763722011220480115375267994046751312956671949449853675206747416105568627488851355330297053386646704564049733700544558057928242483961677053718839021713663161717454866070037522273489373166020181579407227045669133787117435526265097504647998066227661965083660933180763246888497461675273570874828277943175261695797544978485985520283191667930748022282718927351454401242561182467865215617367991415812347131381084706767924796652081412867749619519985703439711252824088191832084419297603342807923583732687699386054556539038134711506055011306725101616159842620944946428563362299004330975572780008801555643163527598167960986901433417324921929965225867638085253438067404972177967729220383138799692190898082667455080057577047086368421834740693872071029022485793427186360524113193093306006262170948604625506669998923527944101054521286491908744853571369258358799653149325853125408922019498818891393784565365152711464444997304116598266520092789487523423503235527318916302003861997254354945984710317918104630943953022838626001860105204098810156024934663859421524518864094255653186465719770402037341631531910292345886224527956521476153832736621769965698562084601589523156085035198539375592652900702279146831025648538028401768808250355387445024476178853166468054523936469908201514902725896171552614804743214591035675574005532923389805151357427969046017125884133201408242429703339510444411929608519353656358574234239706913895154329611711536429833256221025237526418947067426912408713655329689921035467573161342350287455264783314332812680881173844703426975310007898477849687445569004125453952281260909762666660080201113523852340680077834055159758745265054372998578894856569433594152732908027657378046796134183956772851036392396089065803739580459342824048615494875907446026516297707962014449803111757231093134796664776822702389025140503144097078079484764343777351423090873535687096082083296072719196499722025311807664770203986245157592934691199756420573870926318404796243921210117392721403654288515763874918277420385197428130753773177023807528733469363374101558826734963839444772888435516665582698566638455762110864422815379629663118860200014636560393883532984859678157684950650492484846480411919200194947333313734212306817888033029149552580072395870653358687631881051461028145107025052441421015740248105126595341535801711862439982959948593108671335577282300412599940269528609968778961144923779188016522833004402317103415856346693698857430662392897233074916568529241917334556689148220004327923021513331413717383223462396349655429072505343649387879541886210904409923330404921398539233565754392288859273353136570061160595616751920134257435819511669301653966197175949942675216692958386200565968664919456500519945467910433578301783255593284978029540869588712290576820644918408204251258564174762395200974395713439785033558210225306042827588752991884375248347726706224908455686404711439019230963066574010343925748608952560261123343715093101208170243342223105416650434560856591125502630797069112212999041706333294148695542537065454082363782311033289041783479863617252818051933158524917592924264326171745474160485949938224505181600071600504265098593347717362977113566296479986657243673707504208655719781315036187577258997552767358829598955650288192247126060439962040054119910670227706475899813996156592290097574170455058528862985318074183015219083982542093582155402715923684322564495943953940869566946913886484628368174844602025085977581379493926337540525818099229080068530576706001463237446140507395016865746647352826202085880053471884649781560385399157204147145600208033539186616643188278310728153638739122525866561144437116346670992664457730365213347283492240296046178032868151730611625011947209967881768251450397975385168258075456180368329085947171451831013070709692362839041064846739364892184515995215065505724717690074121898581525180599869840993140347723021916333945860055635424743747098205461614908690021051738669332020030509553808958148972120183300088855882477037387510147326062489428348056167747186007054736389629310027267715668928435391289502688811168804722073609951372687487761481803659411344014528184247346248214567365556535372945311808762083983343371529840968631713505478690082309312025310444144194754561274262769943636090953266510855961205053900657004468524370812333130790075969982755997773285390525768450657446152617878977886500556806560113908090373002886915094875152899589154528583204595378510000671864972601261314417555225501170096593880475006248941361591076430509246022515432272878191872223441419540200850659056674808453230092922908398874538639412124173706464100962828327361396495053626262791812083686371778009057283606904003595966235156019216196827118959694144483122500096393500840208344540669841758149206684447361502277824429005255952699771967250429064669476019784906760370451412785665210624858283015488277330136134600827487654865582549481679180525240184697900785224213964250610033581126487863552380716477258239174399442802494585928413538351438629207787510937642953993340238353684688572003198257488001158184856533515048381423847843730222917947331222713557474585173592386465674674076492874957383097513012875430206441380058239218251295220924574156141870452706666194300318464280720478227437295940194572695223178216164755404668887029355002235796670736055965844217052595061665880867213575622264071442053834023303758236273559228150008080669452764763140238025323626327904435034446099884955808817682714365625520150766404060972538871950953471306929393495020459769898536445203567716719951157908789096876987738354820209025681914246086439154364456182034390653066326890701075004152277957187965045643618315835801803620813137622657963684892393178547495905745820813818267276597573385234089193307881065067300950938759835615954337846550636741444744083013087186326297978002454508155444294476446230837542905783067598579144380386743421130022185138572126525883748851206103847560298367047890480731255053552236751779050135640641364692928781024049046535344362331953026188836900326615251212178911655763293581894168778168782123727196000229549816106463768116328779028139430866381416413776040410067529184751151246411850441873833131044506588196868451643251098904322326518395933507508369363914508758688916928571650794433738442414122846546958749434835683277381913005647388954112693319168827924735222686041974111704678866873449835885052303499656892859646462358808819074578237768741130756844311845546717085382030882930157138595206089688468532182862575797904562477404887333591097481024944772858506094008232101981952433518209710581847827790480653264481094331436602413219472934021941909868830155726255509838755705720106145168916084094452505145702188201683539061110709812185124226087579192943647770385099587111935217259977490375952895602717646724299118827531671523984893381513318418009933240987257533975465045291116025124580370174778417424798525803722562743992333157520191997159273203151403951312505249317152549068884214837481804019301130078096443249507738483529350040784381010376213135380020508816165730655346243320975502075781867197849096716285777831725983083241569898867872013256702567771938235798768178095170218217250353869178922062506356214894514208858247644470284554394097490582830125047567993007312268221068855275295405506329594347435126983735761104213388648861631204193236856311417942167888780203014814379995750980860003152150146453866800733136044867904182731868876268398374414858442674870843670638353859133132637104969418246874925832371510116605782082871531164224334356527920694826345620183152882646178759364881945886756311991162280414559017093963711614776053669193228695229732135975372739031086068051109995097744750325331174720338710482495787433166808022380299592749233230838361661405873972320640438349626440331957915304014506225831885353485313183384845742266013532368617085508176124808634644164005840129298115834805780117670202677694690347503851632188417309215402618578802824323088719511551896636490843192581446770177241465141487823453062034322096995807560259930283358434108476293105335636260180140284101834399501536260372431949442218132243415388997699475783347551131064887791012763628565230886076974221442557373817003078269729173436996398642482176146722182816277511431494802689289510000188287237721053403826482065334141594538627920482721324383753288296551329981144424851257591128123988029341512699904694201546418999299656031118161607855146973643212419281290572696835054366607348552160706592941539734039510446619742041918653484260899552575209184667197910897752985684926342602102364549392696384860534114209164540048195691763413364590159891766553501488396216729000318171273040665781703368031679050743888203575565123605764178524363926808264442491900497361358608225447393635761488669826788276212388113203955839328071266788730544440858285636763143895997435202776572995346359752041237514016834771296704890076948663719524679224031605131662303871508936105347680165028918702172426340508626326193846575537447070717148818200336961661504810911938621311993985827847997477560715013174257907774533169526206127826791597302619273923047867993071926903395685368472025485252111361375506783935821966522228745624740584875955330611119947383577801967553921347693770478728553990687591329785951579413452674032641669174682594643375294235075124996064039919281429789572348755000263895281135643341167115016956577053165510784426841849090035963750905620136245661456792523154028034797603464291077843398639852157574857815954598241576909250933493731591589892041365450860485592141274772553874800144005791958350303140065424735725633605885721365404775950967757740417699413188903331122895017733683642983990223138807762271574036604746983494725902935709076049146170880747796683326334839331404643840650756759118161660978402521942211175304542635945545897629184891182739278034207081757196366883505536485150239904869300836471845045730132210917196253128328709348118810342321692912593232359457003518561804108652400853035434322029284993725536271071110899097773239239636886483606175981209372996834844865172301465479604806457662635026623596670581706305567567059567734545499012075459076735564590147490799079264680497119917995493686922904250151301281617130962326789727582422051393748921531817992696637459664532171963636371023456179889157620555337217442072993548319051953105910269008206874051301417747146681968556424514813181307493905544459185687536553706623551334046918848416648447960282824256116833044348873278699220986145305148582686278202034258686915915608186567842050395912929625044192519274543042062792134318355165934383246813979996506963837563673867421533096824205872198284846035099270519849514276574515689412250699285051829087318536013519052196162031642411386003229440728124225131154814293438074257111032804239954849020642065760091245586717300949542139895407271795443192626723887178312914053038579888709181926565603161487318009449626787184333248541990611036711414423688334955206684590319633231755866547604738225716595025388962000843001836795492193212586375509653785967555457795633893241003258806148849217987777316491588010237195396620082955295932940375458445021043682026335215432794026072808621435651963596001980744152443376064672626843389179408916484264542238447865787763981955385566773917206377844525119465769749378857397762682080141078723660477058650515733784320433963918335304381228629364296703095736293999716467688717770635755798528215223686903640403280144659847838179536714303152495591928359164897610461408251346307276055462331988190424824445910800804951191924792412731394163267944851808335482779275398595399977267096961925012550701720044535475346319052257845908083288571721656452049801887524553912630691064273227158005599591957650306005864618004990378892949238478151778217291450911541086549548375839652107144890960160176823590457509591832929235284664366412968979367968297616135888756027913518954492573862951372143738596994030684434366263652157829911862004830837343620832464373281302368878312050356463711624396147300060767892958193499142376307198493184006932102796896985876418695957404537835361001997340144187362172827333678919793692115865520649392800090548852351635161308968707638822170097728516981509310603787282601658808315050780503637958680753727858688344053906471708275527523144001507546048068811784649201798763862470090748512669109104444776815192118060916103924850890013610825127741662917365531981114344115916339912175822782704284728017299849821097140686222640115568177311320306583303407778557755453558417622007403960639896407147179526453428931719464702229516502310434498189200671086813508883330611288045165206553651151997496455183365950577483992613231675836136651135093893823323630272436695156333413537159573223578385195490666946242433711191648201284621947913487199829208992682425746548487382933658985595792290343612762537959014836391144304053272939335380084163206415272776495521337860942751586458496424276592822916352260289524917461551896203403647710041654074251286960297258982679158668361765738850812203568188397240277062502895118806822710752235248899755601924124616666898927874446188800378789768881939538526517603684700290686082118776798082188161148141972994954940006467338597354662269713909636292856239606548877632267791375018852325709306018621696323592396969825101077365907720796434980573777150017887321893920990897831640165957198235370550254295958126928163355222205374886976015719425468738283842363039491554823235384727276361916239701071693339537689899567616551908380918783992230926507779709466321692210632898052340620480842250647534789953937441353335457177136780906146102533376383700174519916616577907012976163482275945778020299270804500558943249255663564472636048372744639735739407513986142416791867459744163260009013741465905154201847610023221491500977230793303076013968910352397250921939906039442140551341351257189538138955047325317440382056961700100658945976913153265580832517061953586626662427743214062148392343800388623273595491655706669805837911360568830507274667971058641642512280739776479086240389253561989867297365396091208636117457943044671170919684617158228316324138982704719627212415564479247138242411977599954194416957050164489946166434515484709315724034741812442081697252372324262226964157532199201797193440313276303114007963705997447394564852748510669577152544932395656695313808068534113119289940645162654781224817386191835103623042874342850357625790684836071075435135693275290508923986706573725689186038817157287913468239760462256417468986626898337550270224558613163893358819619106856024674083189969585468065994037945294059506308334944808712246020927722868680463204232150366402502691151995048353291518406863039784720194435337411516366483730094819095795705975793246380747997121281731045753681047411737158821549204398548016023067400306615317418795153643687034841634882452033850115606473553143910941161513891955339436355929783765645321862755890188302331934280282919082929475654260078357140364482325914891885364869063121529516876890584464397460555553534115723427507265418116994695358636136310091956170633108744925887548349623777873179788033466316659942659523628635196153764347193871665798365641814933180113109641598734944031225260752591984216612479261999840273766630991138938384376316278395222994746907683980730979235335938359872253420234221183273227712290655787986775437742648501652708646343853477975338224902324069998629152224442389556684253351784435437210227760065518266732824822075000327325923507783671095060603478583676063723149396365335177813031295736145506026965655599197767771396307175334789587992676339344105312756420429646628142551363069778578194503995645247167092370447738320456430279602866193776843555900569828123375297063794246636027610776639535600201177287724800304832298782697715070501980466338883953814441396141029141873151233343220299314194610436260569409608654731009138239065481486075870472149310453857953598281322728052528234259600525846160822679231630877916450158343359843672361103030047717929470374746080028676643571435859733374740837765009539360655055844767868341457555272072982523782463329361759591924324158955851543088151752904083318925345494150636141691215696606434897421882446291060508725649685146922917117104236383489880180973775600170960558366228601808995702401861265287125860728433386967814374763555069212145439942929925209635664354990844888543093615187755697920172413172803843669903172817417734158173039714858605325473853368028884094060276154451111481770146294425008456830818517555324096238003430912581146062821250924948695307621434274750385700439969265603921256250931418623261762736623362323215519557332906532408714690185765389521254928691627417677279193762221611305156437095563338587187764680295194815524399877059795350971391325305896689453041947716162574031617305872067504045747907203976557727406767342961273551083838365836261972541329816166573710916571218370363961385815712430159284103634625012919755906240021834602830656020059633184957940123471887367836240276368813800867670494146466887200077605761698009986990458419495487036072648939616824707148400849162954441901983645390287348101637893928711692871857552875910685098255506881220855916339518594161208579508121492753463169779911410639454978830732952663518042766463506264987600560292434545481890513126988966862886042548142032645765238571406061761056565105060595703643543511167756529560017514458399358967124952097507881637690660979161242412185713940800960995941058482764292651969669449512183226170105629578230731723323819638132585417533886103496760689159241697850509688123227524297725081081237131711484648585332856412429448615278363451973696914310705480907344730949730358497563021760961222200438138861234859608287787357660245075908667117365596094384651774629726096136831740696459864133570370259763596515098168633528407600402400083641262843371729360502462281199386730120604507689994465899373736465057809319015491636671694644865690778690622370225809340393099647937318773431626519302538284238309034582529657064486130507022056852629662540014405833935499126461625949349156280534302957560031910760383864068729729307342157932828274687576562560151670302955229939341560660758709760575008115917461850899915823042389472214316834360802846376637103129547528901208238887279571881401123519851968506635307430504762342444490052475862064938123444360184744098042151129898846435036535269960980300709290762944882488453670076954742862649946148966578298984990013290244107737894202133819295010377689984231769764043292198703509426568613108810717767658056492669933160046774030677766213890602997219299374733556479666361262350035182604666068212646849582460505329577791279223566097619050047983933342673549693914720299014142993391768947858120386217593005890080498294314847805147616028253376890598499230967590557219880610034052368965684775339299364519330264970334147657923168553260742820624153427419284704020496479711994188371715786786630229035843134063065348972010298633464229035059365333561334158708977882236672410663346168400474634490414523621758020316981736696826383686018395680265939353738228181573119732679590170908317316613311075308144060359684707521897592327074794375564284538433035464696899384955090894978272041825316166073635590482809217442713743515974836467093436470071283903439356091610431364230927106205781299827246905443755756762553859947298700010110427892639733672276915213349177025320974860643895291721136612575654069635580285208653066958484792945897683077647390181511166230955923544461850297746916822229359542429163891475903951956058974028895850061151281175470721039979332565143129264800111763602547930889316735679166273069103618101144370940325703943373799667508501588629125410259334174342309508528496116418430044053874972096772435607270868439309161292376065653457378574322629098683124124833183568395055377311488676863091723291170491435904860962780531953297721452722105619355468112870838439782216857278813325112202853662452864680409110928207316464484452931978293450401068339287969195260422827009585719590983944512907623115195606004153040238784247382219394295320620978944642765782524790479157371415813788332065598497340686634123910675459682553752051008871241926636748286939093933923783471524317178434918376154613044501598236809319401811769547203591503473850044945338695318281635492315859921288301773265572759614014607975204192303704429379029019719399577316947938604657377449301371236793279080184837202786366411164478304395740015800245115215883751407924755484121752255125466937782986410633989685128590088351036539499031174886680737546894153666460161838884976858593441652143589063787353950208032076353964571643247714053377663826544194347782298407135700170539951918146398635468433039091938659513209135933498708011696740839121873585908620484732856148465706723355521370779192473005527400928469858929941703483686645285552939916063701831399652094604157556994263974175898261634745710780035632507297381096499964301838208108756796882272730487112382518257862309621964195927983063339474321689172080533204792274286665114808927136136743729246264268838939908822574882371941082677378254435054862599859915339011653899620618492721058084660255735721462560214206680522355577296116701062906625531005263515473181694249679740927647411009078965352466656354767374458186386482659897458233316188375433983332539969659547652174205306566232704170722898318869129314372918754950333158928725069922681136366584459221225648290350915028374637524993250220421338061741934726503846009178051433954816039395243063691850642201977564998516424049916314730603332506862428159701790637749827720393383945153112430028610070362931812447413295619978764240224834388865485608082638161413159426562340842790676403569255427749153785454301386981257097203104612278602267801892309089516833911728366772075595315414572040001865060336281322381708315616766158087901917521461691362396419600341307144077595882459263114348854683950455026277089483480542743575977336866519824195426817311638201927784030723761801598802872717709272900876699815603933227269947569502206276632241567372175030825243148308396476997018674459967610718706661401631932860961227366149567764312124995113467947796947418169335810464100878325749409040860241116993630651933266780492081888116761084282574397527488131382821401929479236691284611162662138681094462900736763611012567223367324424354436802011819998065522246313337550093482192348241711311545069863772011927953657110886420090108680237262130615811210042746956503927080264660681728827289853368412589194692517512345229324821063450364144238166849862116685722859208029122518620643080943511601429060229880068660107555971738450688095256779538309546645277134937886377324872790454457456209217560493263728499891453166386454229074757631206789933061753496355539734654338464813254704422011947833875035948004306981429679983887387290612156533024127072805886720051663672374536150064175197237833619847197197692798075723249453826690864213356324896545662338948616728780815424210302077053950332279907455886937699136945405271569148050136459360702810108028083125721341049630385993958197203704552768964416546374318151596285289925133153778857145278897455266745900134605265550521317670201438594986591678460452258649159336922578830648390251393320691050109354716651796461902972826163322148740920696314567355111415054388495166511758327180170819559356938866812408286321811320714594517982323807724801919677235859809850278843657222023311571420753296458971399935125255412786537471793651485990453949582958239697243382598328768474877295399148319073970541322086774412794820096314957691976574980860292580878949890175208143988499354970444651171128304420205610049883783424301676372632409710558389959017792208225102283702798484987607658148659813417881605332181563628231178458792458693660828347581953964907465659178684300711456034835908928667238901089492190438745973658080284769238436899328629546527970394401622679278316736858353818055604808919108761988090324838015243283243858138919420609682848042203155769229731869158350626802712649896910018160739919777826685950530103831348498271241629972693041767199329816439590623909485743703046948650968200964156068781354808398627521451092984893855023665953900475065650092487899465359513246295114567366755501143172398649927019477888481780751015967982166755303200055888508700116691614018638562166350202075661453838663623910684481706768997090598101435625073754967298652724965863081180576243626904202099849074914207737939795868280744999137758922039498433491058345260700008546752187601131757700214852825219547381114723939608460157982125051280189429276113232095795392372092521189251756232105022439011858108381184258206885222895320045555155168402114312166682816804168923191013997935129929660303676875842519004107363023140985904373981129792916559019525044534392429134755187040091755554142124620085054493044570468662927879983784638909583709576557191617531831763957158619159720802188652997948669322732484262163767820088914003547997363136820318233041945475497201465428137382505567274615946685610043058742569866588104809685222639778107145821457176195390937312825017234139296432029950598292277748979465431937593980750991238602354974185193312167223891547840412784032123551119022378264111481246665296319001780496799846460057949275404947675910717246425216428871575651315991015030892380924009444873784715636213579810201529491419262682428092066276240683317140498147054116152370821208759978279587324478736726181658901655633924126513040776434020509572718171236655377070481408582959156127527420401103041456545922197050294503761365356980078355051244140123919422512365427656562643728604634772237176452504144403682594579136856948305598630195271620976599589177976735039911806908288860006108416098162650756674156982257852288007759556667957309748303058983643749764334710816910320363035178453192314584951105106196115899790467672242399761634081225304596539608580012197966592657810132273873360343797595379853130764315559520377971176924013805378826220539666740195390458994315187108606909653489132462590200172594323859568178574530660865726899892314526277836673699806540449208918780155723208078831555301836019508980767965574551157034972149497427609221070701319432460370626204639980436832599655239550267815011827329812715535059211676865755235281568495048283105811515797234286603361067067494912619606636248702044635060296567235058927719003599039714966229663748178722037377662172327491057378675429482115964139643294203452386340819354177971300454496586426217439271625396588102941189281153722346830826629572480061019073640981154833588900468953725642933806789989180270466764066404012449007036081504230857934628333492910292226460751166331302195752822890875344310265920111125781796410724450043178272411445184984317233135727977267270460982581731240391490283942677897277931205453309109205924383047753570418811440130586414345945553973395856424925242196005337381375479158154354184201406464926003316370144644195185766847477731536581155071482493757042484578058560163963571456429479969919771376277057272283752841722516788813420927635470381723675547481606519842849673261269638335059760753759046471039701175658536686405763730336447629066515464101835181056524497797014142310145600727088069419351665597133272606509076087955580044927904993368010517080410935814831155540538294900261196860016059299882467924567051372372299094330297715174128312528678604468299956817352825699094565512214264753893146131610322823270351509774881478811171622667847381748729445969590737370418252426591413732362237077514308729499970077052609027707282805332719639387902114339086982019960015956158639490018881688513878268474414049148383214921371280826948243360382445646775861372136544264508595065769385270037523874342093163959976797478114047473878942349943741810785174100495582424294276306131119362432470511816920168236695831288645409672033571745636433820957221143911804964257286224902954967762710320142741309779063942885722995988344819479157142298962390724134304321052386182121057935449561721215030856321011905518490955785684293359050922962520968491755141564336143107586627439778310462556392392556786385606769526502173067397672052631744648945279071974310296415593092524825296458673063657337813039610330086810889725811290402291064236050245742543027795135477610395898343010070774219708886994686629326014566274512196073959225523260805476749948863174097734191536942683581026596899754211425382644498693049268832560430958368340125949981565031727496214195886462557643812958442730257863007305345440608508081155145373031645414261874227698113871264872153282938107707097265598230088158681344807057312282367606538666264182654420815540145631255282673278046899450275687592224596269647993677005522074554826199839540546011699558031114362445794563806813657750358046397108459420486873039651676820677292229274148460354279562429796976777944387253112250538677042637521366558372884229310783996143635889052350161140799613020855762372718187120176696323928800115149217609702750953231036779535444927089519393305121842847272982552159755928242655359128982343490020860020526106662101191600548277679946744154732967956333582536306297508410912704469727120680266020584291834651248844520690125699751651587101986881637356416109834671794724350547838503013072362159857152893938377200772939194441611151169649878780723099743656041127646924177785182616585231309456665268365478297866203545608683119854836252438685522839471846474591196787916975133656618607465892452780026155650517374722774605009997754810851745072689224273972502153600188865020285544523419105750510458330829534446625723631934206962475446016192240556341972690725818677279944505790743319748228457791913452102155057399383723116070260116359866045077959105483749895647157171845275710421348676995839938127196045350648003303442677260920466665638055201313407347511081850535017836614820987448314057942906171326324448295739357754134758054398125691368065842353521086029263846750372612334224518777046758061571906731878492794025643921352030953121436769278846108225720243714951951335319318462232348538138538457459420969277261690329495535294406300904559715093938819154860023541103889861934435866401240196265769912287814384917302964521713740593499749441878485907841160983182137568788722645056228341685624568020766697744595159993336430478275519456831053816368580745655520096300248142312978586549056987103587498768269966586173878281431364638652611950375886392344655370674105501569547207321123584861799011551658704349254690202273136356504003610292736005760724290890864740814790927520636925632300582329535513718860306716545771932505203787256924238710906721161660590636834713425130023733369222050452724475714493492043755967444998157724677767708839038521497062040676650222426969121243174839444801947997611773818336520694561550960791563414174001920901795762262230889764259009082550873033721524381705811594145108124829956500533807424810521206816861950080589107783123444684835806802870470927614339358402905347080794023667054176525790018685369578427619362584748600815192985974343778358130620640260101760361353293027775825588496929318150660272504921349508981857746965833813393281212477216506193620852778166765509546920227503527652906671341540470201445204237227798802177160131919809454936268021495637955391283463235504069916772039387802292520679667166951666940806899874167321777251806084857474521728525007859714374528762497611511266306552709265937455458200884794894472526845318231431879645504070215600621270928536197679567216383851830501367579582522652565267806626746214604924566610172271123632663815744237912776852766318154914325696487811483841305365356747227994471709543069654886328051977373496409047481385221255870807844878038102773405822588207605600279779745065737995010563332743630725446856255864499107106579394971204675925762762761639207660332942644386787368794237793004078399759869245066076461876767351339985339739253075629163512256927221559664843397521196324865902426675167606415011420326181088547038449830095503981254228559456931780176135250928584370906412017858126701943692631902664537307141779410899047854514179137053146344384398811978486878136403623375855199278063546643064102208525556213456256807426079467070982561172656092670947444318397775913391302580387312232639774107409866929255200156510592241425514018678096741683587641717609197024118652985130933364682984595055308181997105942550370057939271357270574288884940115226783600947225015794555016096307613531276434567904702589476726960017667584533119982311096175606588465896743691183629448442004261854576609580351268903256077304127684905770558916245883080620152822491313015809467845599351232825949154610860945468811371542896613631013394459159608503677523353610538512017616598964448570410426742180022628736082001311489881886447870398418843872953441186810402176830681749834543387499144571453203060009584847967395411097667964873753100623338855411701472239105789426303333576077761286701660260817844593675199026064144582467846401941945615172059061082812954350565445225914843885357863917408245677779335212250434352740061134620050222227189444586169025177678050896504216129972181417918266872373911541651783700489583833635321162302615548762007433798921540748572349838037543245169600796435787092671949428391124532150922174946194651245037691995214978587081233126090380716295871317436806886820698516026390972856313033770288881479739445037512964429323559600066979703969831816262888287011894400080473882162538085722991607632409522563613727143079285829434008774550478127839399013219175273013079471962901290534450513671694771263177432577249075020463727382088048205555968273194376915237248791525160393230121430265496735738199778363788770474710301181095279208905106726540294276007196850512022969227466275165970321582999110079736550451805516921498832755139062882435493108700863464157699350601738466283167966250910814272266908028820105421167235591823490499199664882446737411776418806207868988270213356533331733683744905153059914218506914822249752692112592882873183571679895502248105180052721950274528542169307300661656072555953640101942214325418045210325517858322830306125745941754105508153600755474119080648054370642316186122934688121810407915700561880019540211233074026902190866993932474639473919697798053484138802289418815366219677589455998729620377668899562035554351190464660244022734311186528545957054736346005140777941277703073881181056792082385516564344059208587513467166684541784023676839796433532996272387755312794980213979838889428437122222721695323096845367491464436507775205178846736949840170472428819711772645707983661043482704198249869791689011821768889609230501930133028216144028612940597943063796023957161669431668531077153623893337520328489335656074289344548047418416422181540778816477061924872065925987445342995357791145289989041848758262097101105679330059143229092367302957160288797918547138662999739344674185590091422337085063212667405038681899923201973404985066067798913094003759911221009299330796202859181151951809605255800049969955848596008700818532604930798036053790888580079596556908608942803713224745159073253811170498513684697676788714816469855118780741793346597316908551024072881460673736199289697804330177639834444692523765939616841682416378257243955893821994018549469681742335432886692694191624802184304113832957091429005709996517867961312515371583411425027934060771820708623709445090117640763237368039073570700871585116488857746007885637869621038541006372680138472324407133753066333128967734778117330554408784137639609879122934711744587236088995105626720122953871411956141834054809773621615961584785484444518147695435515846176011451231963225382199597540484748860827800611714199729258710747110801650865124301296474360316199534456088431209826846637434533839131509294779111446502768144557166575486760513646253426147659568819123840866794792220626188862312626660606365035404312951382522091836043604854578491288978410138918651644855704589090862029407466516955233214965629521419880949279646516998388158955438744806750515653955036176580364914739778183304961528627860787828078615825843289542027686025597430474207059554474588552677973244801641925617536814559886811864341621126246822934234974170289954064958731318667751197145062416937567643830221116694366364337038696377086875629926668766359608983423943005714361905169350992588900952574177842500005326892988879459697110674726414009484199729472971754120424512093787007968124425562301163363385901282585331257739391836865328735533857720183849153192658421535049138810804551647402098169934011275733972098144978936358076279127837389160637544048206927703365608965580371955723370150975442085203883551555229352387752556962123948778755069150754223659848524447029880876478895087898241032296630897254018810145879418330831437862555550512133761100621967362261462253323480938305245051706774481154782477822426640343352840821090208241589652990835502444313469601558731283382739906205622683424527246081759413802290332179387817809259262798743800174264237540666451584054424184334128585888470933555444723719614339980481730323622912463634960057264755559739619385531373217599766448288901063715449715304105970365311895932423541274163474604967059252627196920684894481567959903388845849256774012516309066368286175048967315197019792693351480646010314114001404476008839785757435320377415725205162023113627270938746694457375957435263718471363328183731999149850549539524792221299160698277110011915963860132589873462166462082267635191026018241412200718771345777667244926468264490141994605973420085342447130413077726691465346068972709931941530936631620056118273653448784478910454311369999929987309817165148304306266432811836317626228943528183904150002959860775719719273463020458400806704683644167953534020614733363017747052584927320697544577370091800615428253980421106758642387777819724236337342879124529529904147229513484797402722832504074563776420897370385360204519412800298118994699294975359765474442678696820156674160316408442523440292231239452300243782269247502296917955899037511534964855491712862815689640754708940058780795000900260630581466776929387223889867957008099821279789437606231056291299935275371940220169798885804140440099438950630842764899170706782737765027670592364493628067287179088437720849051480250385854737128459680608676168490201038889459066104690256811608362419476485844099750227896467161391845053929106515479334185702232313386081112520510474309132410131830368364136183579356364339939674787633573346688219950689617609515916198794344109057653477941045081655615773457480326744210808740241753122075357000028187983415877219471159073582926770131494004276248380228559416602313032123502722598501890846671235113840166754583017521871779451424557118175117105758594581028327584717654690833823627113524781289961211568237049193998087257515308099854066813507064196167467470461380526424522750037538467448325902910947272663704338895803047996168683288128523750821514984992017786668803875007323830189242459151230941373939918870881015423525796519977245851023921295023492247710321421593645433250789195818300551342201057462130965736277234742307508440744184423378961422492204710864404792744162007647799614344452017532652052920755418783089174080621737580283677229200421522910874626561565623042956209701354930623645351200639320399601967388933465914238832065773119529992550992934511328051902446065828327745755220751072695414059142526375660292103293033366864322951472613683936831105726572853084586946405989611404808225274485698347136459346166538022179857931027571018764896112060643946478102663079978409216995369537293283486268855518437343522025232306389267592745160332277343191161861806898329018214601277884735648745055792743062939390020498541733808497231983814631660204987428849834103637230801914890160809813465215368688397605631523895060880645655317060344462929566368942631604429021530525610988392125397176931476362179547987528962782296960700204154182082583209726672968830177335134483814446801649631061005298541814355278706112519432510488544904567198091812772437610692071982392885636656992037862538340624696472408383900626641725747942982577572807875553317719255283821080189632951992820742599733741414656022444169176958449010378866403350959829352108525957541357531491102338280339819859379307267317588623419698979634105558666199452551085816379915268575506851492272845503705963864795096156622479647732264946505871899461456937037244165135878730880460568448679910637085165121865960824627032965303163484980821077315771836947320994310486097828125336494469883637829457255731704055821383246049267912908408209093554245406051384943988918344254008022176021297790975184154785596522632384154813251942988319941038642156865127579442688612162119611229485306144723166832179627249516985657529458040112257413617894948707441315101562881143109222372729515708674866503325730888394959484930300560164775057495317482905175343459981637407004375374568787325633244759093095959269894617421139073936511811151951861650719950808495435707866580578755095217670602979221181926820139238812947639018531005125428112687223490655902830396332006397690546112573191203959119432174881495470023710750782856020065424177308139229846627689919674341027827097140852334380640152772526627317401218338887817006990690801806257124705229337663942696647348495201476467717062593020241054845260237545016546813398968109602598823050245640710711221313890701817327064758782039129686716047693564662490434969843107955314206849072502397676212646703129627794549516863816203537181997680510306929764668101557038358581883377127332114649533364025375216440709988788682506050375386746755384274906036659503902089232391511234674719785444886005172559596535527031546836513361190983795139983795002739600921498309299053137366338773410480226694553135060264057241749976455823101310283820971157659798733406630720051387719873015353025212146883342046292696773409959907026610293637760968744927569458799390854849880043532905414931198138818395543334544462035537429897505838846891617995999469069280357389228376021141614624678501206028672131524589980777826775122376098974541924879818538348764587924170624884796445274583695620516429410872160819760402787837787161069323643815203522165342999016571771039164737053059551901430184346057138495284349954909636860515217569667892431636675667697018938439351996265687763239210993103768202429976401923941016363757319344053711962419672528081125941482531765016597134782659286649334775307344930365764985424518419389256448786590679987920674265740133798946749633297705371326133101260056563132358738760247172531864851317225996094576529964809528235418928056487878928882930172151439925016418914664007060729062054273071761243323009816984264635170201908547567674375753338524355809841553118791353281461696310219915867148613129058251902812292268386168936069453472101098107882697921997821171485024903070553699524222010690442364431903629766383903202555167784774552285150527786850132286960836850748097184963121640101671549506616093549300894450673391961757075569072014795371216780856135479108623608420076125963278525500794502006432534524149295565943955120687989749249936740528376339499136302306735110834216567813149166829862968591551776560360846489579577657657497460976904239705895803581049108240194320504402579077007559081200714734397744951308042264605883474800522099638640133059561624207562174204974970991721904042237975603218987176957221923185721713303496800648084755270475003022671714216112843525874758555446562302830966267141123104101672148943831100273173900351864875754321648143197105527922688423524698089350522958485582997251086633498251059751586647754336682165985247588434133548897340171827638648571461339347389515789999520474925607527723291630500185238908526872572565185940653589966543568889255347864248521786462107846888828688612209075677103474910213760496327450938280745681231861678272741811547047806966851920942343979744406408168964436566989646433524909887055478314449126780486140186589274759533973789953142422715356883458400580192375088061068736840879335500267365947766723870906856572010489689437073904115739651848122054172210290879445693026229104297588849174599484534221582493814465213239537039069733933998195322898189508170291164136167485148779604454817772847323356799091967883765148514118707356206242295823914934808933022373419597479170812114225060179597230671347835739686685976388370717272663477869588136474992448053181804496596333437280642054732845914984585084712535125420664071950374918655231957724148150412394254757396352304498893956641370951989608182682220092377622045615741845323983427064944355082265306845039732851679160849847736817618314231353362391029111531065280559402167435089437173440179388202127134135810229068943160703811113753704728730816769361443793043768938853544113739707119856037847253751049229428401805754558702829622956332776841464426307962248376607146257066982495795985900752397769645817134439551752959846824061834104925435085066079715503211863054132651082903712580216982767663064453457852322911568647526796374649942703596110518351813093620960150181121992038842520789049599858094058396851691748421423571608207496005433873662849756433708467148110768160300073762704274339788230093765739938482099377381238417975612751347861333313511227635207050869394856733380950073572218069844949870513975575197115634852639124506375997619753926487894133943830121491295374859641811252737272511543285416020307539653595930576043339074511972885275962177247411335396231602887920345905721836355679722670685677823791863411406408879155370725742216847104900491232457068655037379254357641162589217333929864905966905218650417903147895404411710572943944229310714603113100038931800324285620290470591701955814379067596721155762432410850789946265512027803046671434834688151767651299606432540920104164542074969059066677428975878150078590686752281413510252749011947201440244193229771336184896440226149994540609879044459420927258477507173481181383145719673800771077687962113959396283678549110541738614729077933657084552487311805806730405968880281008319899367290554350655339272309137534888108325855499405330599017967166539643864904650347555589466560669905173316314597502670334739972841916155989646017998558412048858401875735371800612865989432563564881823703832162517553629111635689204134703541027924451964306422269776814026538769173497600196233293876442251023062200344977849868871474234333052091761540361368705307285182254944928162217365730948140906002755695585683966565038550032301285568082984368816738053689316900855993372630997649965966929426094362720244527702254240407133644560487321188553161202901032552962550249538485142778916559126393544409061840509500359499463513264149404324881089140907562494662505116571171127614476269819148808185874399842310596798877540735213857579740496502766192338183544734814671500097390168160353991314647728060380296177668430610480208143383615097162218645153523891163232725994722065859146769130369072684841442785391971075819691231527679923846538210644112404313641829778153304165650487577283412665005446815508762481630511577927419184166414457919257177100317179308800071775531626762446671313801906665140479176595747611214483577257034335063171574279345077602640870824991448717745493192172178387749537547227361881622265689748711679067022342113114661536093807187334229700479472409782109383554924036802475945876630003822691915581684490474879977648717269500635958734700765845340582582204119647882006652509037207152586494235162466636172996770026044432368825173536662583959003797886852387968101195113401764644191084168514842364791201531574143100150824414100770235408652185751419378563460846464531367740489553283770814420049345919600521033038539667784931811757076901506817953509599517309598167101087246759859591427995851656417683956858947072825251817558518874673646051396821938482087272053495670878777489463744323648889717750333992905387246917771641306778821307770886018861192576240865790341185602621188982882338452998245212645266784353511014512620801275712620890586286945514875320661022744774096063615212255884035013628893087962222206138140604275647127294663738819614158729760470223446945502463030582143495353426814375193915502379286925188342734539145734760075314865321028975092182690627073844787376667816639844153746950150873010091954361448559920589396883553518723809464713943031195017676301016199518281743149900992603995660663200963920243779781917565304570083680707034950858567142210265097684632500270851925195978763718115582309841973829605853883635161649288015481815032970240571914000005401782394514605917816873176624469605796883109442076593976468322304795676422145459546969757376077313687411695289829505758206516738701748062381695798149620876642320062144008935243850095427095507796406085330342371489316385211003628529646072809437018746106090968240920981207867937037628190028744603845215808024078617699934662781116341299145780170995057894848191476712555560525568633739434891596348236589050159018098809985644616429361220016666655211825424536508401204481583888267363544368165505843904250159967958967125264354329506129554206363899634445406265686702372646407546613258182237886660288438746162268976887265314658800572178971096208489965355577078825072721873001542730137169081578456323270886522173087917463349692465312017583855926900861462207904654759953093974114123514576855676617168204702608856904485254422873769425363793043715954718991011494688011337940397427102213133550326841054595891926386698652131336660760119851645387002966472216928006545678611830922436892812835322359746495749890571108986325708246954512180636619138017360006890015513324880936879530525601833456807412314160861080574241569990282768586265093046094524814129340819573259346619817657413347777607679895210649088147605086337168617626231683331518510160679585916573180928638938887346429447887299252036203962834582297404096244616511940320614498570048929787957633515868344386742286545681162155880098051309298908038906031627182703030220197579316394031226051363633445727797053133583948501442261196170975598283245479131867114289116408390617324666854161023018095108855727910100417190453099091364610323602539696434727590976852594764522715511550079189780873216650465349413427515737212662642980097536987062732859674687733362708403410358294519515471154360581252450651165823024600290785235917731555322209303733719208722720811880625382535235321103595252165570411265217158753598381536374617632931427595439940391452237857282375549753811586120561865722947066711974270874682258083116343723246622013711310832776858376776432741124700877513112418307553895418466701784318181810091708808838284028983701783894546748541388527427362366453716815824197815396935721038831663447819318355367137911568775822110657814969728577965358287646697649453683912744879070485609848580523312187083842026904577928090611075632411459008165879636586034792122393754085765207733674839086474683210779681831982407724911593840984373861197691228837418852707981300313952797436947424074107325582961862410081939534813938341203239618068079242143837664422930412013834855437740058599658694326735955365394423902830271915730177050241146895132875970518835838288806846681960229603056450850824618889897471999669657284697631148327489298252609824403790222453682424312431273200658606695030076120673749242038286864270846302573394876655758699581091348834944543095201369453304162689442840274958875472704224133062599149442940238927445956130535105726672735578175489762576886663442394781105090762925530419942831435679390240715427430473164993309098582663899602545907264487624860027911026704207667121608620474610086822232267273538898966052155321506397801477661070701068199305120219563707638901943239208546999865392028068159952038129505140672726020271727996344283694864827663772507405304215505803922693490220354117856180461598398822365116233719366596808024941729749472063086565472497873778272326720813541211167527286956985552012338944503905140782746437293480921873256072897796391144757326569249472518916711456155458891472304442278614829624115891254157171045882140765986119623429210517087510204804094506417078556592315202049663132447508914137626295485770669540852763120322755968478242180644635359658992928345530140698513558012039064324692780225537905172068713016563352168563848369672873758194211335806643815140992643617570506410654523749973421956010011602199390661660883258648198885026075544470446936666862902188237386860606963467339517615286193145562294108870371593940663868863514382075286752503188983618564142999374042699602028762079991018485467978300158857480567577276793912408690761311439899296982461017513818077570199057327616877307455789796893299793846052825975311693438665119275899780357132378534804647062656993163813338311769682355450321482358545030339934785101400962779742025610828932637509267609887578384111876030749937689331003873115180621318162930789771574773842873588978170954350562758590942689190948713895913913823997077391188874460258243807475170574818345095842025616824118694320809015159050669079291110899131967851899444404658830065129876107691714891930949858491956782846346735431394176303458678160829442189524216947182055472137538458389670974908034118153181437894150853171195675606018288540930168138578667322710964354555831937709835236947121312281737404414346173037266317271618639194896084010704414292023493136902379433801118763081672773636646280249750458534602074772033561682254308682106166492067855337508505552636254278577511045321364344931899154118657243934037799546351216506668572884638856603527334702048352708546997039119617469450377006475552887499174937478650686636386194586473703957051877668633478101564158289525010547623472532616690424639530235982808292892856389678962866027965549727354250509418599323269670750667523095559267115667681218852239752712630072764623279786118944664390907716602112398535321586538694973779236400200135810898426290905869557131124872569672754874451722129492699730416176943312671972439575802199054902185831287329613973445727214187394230003523352310507423683536790945453612010120993218179924147289566732965599102600302663400950800805504320584534388787786414783835698149008513971001057958369678517347372903287541557160920906043756573532891172506275581277825707860542899425005901348623919061493806269277418979515516571950812794189078814133142210392149636227769054579059444778516529385057453895863974302998351435806382918613276742338582932965468315191048829959182938665523760464110200262752714826844106665469251826339963830801561528728219780343826978022120586800108216067434536386561972022323643153453954027094137982466359619563087547673401384311432829413294830220129840989660356828900840583413693511964583068889506102724517817667086577301329922701345282753319576041686418957873014497304886817835652849582831976005135019611344469701201492878429084584299957620562945072036755433110310646480540831699024255195639616846509088900046573783579391451757860581883363512880033209459257035368756795962641328786481182990733316141393935883160887630434302702244259577506947455666822517482592536891960243609752266738694343258368223247517287717163436052636614634020279508349992591555722516020145052257079136585197579794760019436340308309521322455169263949814266626235925472181717697419203478056726476335940900683446859802457566068489777657063640071762699150467790083453946759511853346685533068287891896491383839937531980864055980544347271102493035471603804706589810924456851994774557895958684661430608865489479622491216249390539642764581416043860058825464782282375165552948274441730621559906978985661736267083841120770240859997619123192846827611524034374961952812130446305342286916617094078754759523805796448113601396190395677776271111477044960614344290074320419470686269930751963737675306402750955214075255193677700357394030532123483059000883708786986857610204021827853943537091038689063817540141924786810846353065789105717696689893938724863512324823829000190892269653108716411320115300869406964366486537013958448230050375705869459396470374974282978410009170848421369785273549237481522621847341440171929908891610310346360677278156528932669745652962795434994859333742156180942571346821287227890371991306164795664229696897368872453225960618792067985932306592863465534712916732187112671510079905011282803955956415826853689396803137670437044519954416368514638968529847790179876840568300499273977301506408928817360542948827234113064738344220144275169460049375604375420741095477480668514573239286713553380536460001552619928247155073971700660453882687448745605807007167560651860049085012253408080713416888435810387750596765193677585441564204548160283682810265316356538900808319293729352313578356241190982889778141540299661649169314346732208792719373003580384230988146395651190511870590387602853421415283205043738375181519756341301501837625994446958983511615444532490988581232500242915215227727556987981704956796108239353223207194676399543214778221926675963958449612220746707690706706140370731475589927709436866937591577274175457740711102064882008147611662361207166728895933375825406272999742202377366669863790413361153881637445830610191717568608496764032864405946308433320419839941711513512411750144663484589678607312910697437382482193203681550856422460843763738834563314767387065453487730229805076413958820803757988297901032206298930763979980739370426911391256978025711230902978356525307687973206530551899220835696320346042917100511017496945914316123613058395622099858373298767951030771884676124360442276218570882806473085560466419111793476533739663549985789572844952514223972267531208224549885992564897562864931461874366962970894941722464354155364586139938585949113430576854717665359071959362559102300975435634721211552331484469395937577029392062044531691738228307115215944102646855979005840194822065207477501339959691994936590864132602844798303042297724663513405509759801631566685419173120796828537816377064932054049243538245419527813699598932668898149935280920826577569496614640897696936286503362558329515076534309297878190056527002796117538574222789947131586559208768157031597943448866305684279350428708055230027913507182793665501830219100597782563366111286300746091936858347250080585492703385851098368719464956186507896880847459829419866707247765623451761630933280576828594999092294740987334740251305308798438815807315944650023532669470788441548991670110850216473477055022559179600841283318528225911907775440839901285752156172270507440587490122805933293465118863997146501301943773663461679026017541659015812860777323030295962124551877109311272897438480729677610424546052938830935038370242498115859813367875014556989305074009867932988436384064367031531708576952569776552528080187841053574449707804382389972792140263303240940148128077137969043053929988748382891774616563949967788948834925531911663118350653803636325015440390066133517002727477041145913470136157456881912090467172242566064083362343577134991671678589941030868232288213751306552190092790899330848713419180110766193957833062400567237675887970310859300826536022334660908530081946788205637620276031955355045802660905492122738799776059950932819991677957888400332434690263188544606182554832239416522034603578391209103273754414909484066958662723715505422789513822951449510247699257283251230430436958921161837382584248363397755818748575761031484059468824650180576006314846424014967067930938187238606232860479285451902395076852660519993472771548384059917904051952769415008189894841006814966515562943891022305538232118693279610489452067905762673957177263328558767222096654572921910642178822547577571155805208068854863574777422438746539904916095900457412264468252808644457043761691398039501532798739052414798131080308674948257527650597849851893283979684717579080073062654334435761344023203974691750078767258373861334897988631836035147956809629373978314812625278841262745810076188406551101700730174057348306080630224604250903216130119294695550402787454731690339225473875867963382682621012943888511721908817782743750686442409681310401243828482788865816034020849721671490885729199217437699315222938350569396356730011846946321816480647535339805948543306304413883824424083979098808549863605188407423308697637956153831609662040725633912831942471367130258380679083792952136679642450241067788997048532643898217080661569810819979742474942047332706654191530237797175229781888073096112600043646480632565797716805032339592614040163067203438790399636615487784551958230242873903110676653317261282496196931702904407385749417201624874487205867844771164886802473123075685463695725940095952421640674054120953241581517552681102585997216714488717312400217110643809028504564883695274107636486942743303159533551615003846732180415710193912636112973917425765779089003979254135242394979683100952279775701278782649400034249060803508768570821965074970183726283253160307687543731336462360538781864850132736332825223613253039533299579381568536526379131809448482160220982052217508726120378715373657994062526718848987679753721668780260497494902279980266576959966120188639122734682365576764670594782217375934808555115241909148126516317555448630474157575274065807510801534725468337258153635920002382094022365203377814238036506378830650096340981955099225492284759062578180670752978243365256056683730770404467525582039116723958152540839393114887466123312291458973575008975265201166782965106529120378941242602922349802373905059888675470996034791968440970574870196082562592590378835064946697116169010280430617183210904164835913088072339636039515675181580102811584399638835883177337547568930013770771810583626388024637972406570716601524594493931756943773004494584982028911469275994515906205366435641227827908533654131781965949307715709055754102087221969117206574651240563484715666968366816757548949069436563053312235916830151414003481660714414608795082315373761394602464364805172839827304228528461125317501223650475268153514673084494041125256915290946682896678141991347760323138507002900455688837092495368846368913450779070380811015575011317553278238647912297706453522665418018989126488416228343550537292309872022449762076633001096793694731511851657422146144299022060608221907495275466126932741054494497416321542807102173071620668491769413263194867870132489316753236642875148632777024017420367118975960611007207970396182408605154532977454993860610469241155396376656208687723495293288391480341883559562218427869872561037355850717838815005975117044958541676919881472888922071506400387519124000940660714162120476242892589415604686315718100101431034716411516580831492708110945618775725403552822304433579155851659905872202781141562209037262331554612969717217994024202491065713338290552478626189160152991953881688520874510587454244520856190424491162029038018929205769702580369950901740697097439798381401747934648856226668342679202531841506124719661087839029172561038846171266491956407449017770447030814814757194401655760658430374813266294710937299319236634246247015571636609447200239700149695102214420046956346201889528698436213412362132268318087770639549163073268041178617543532396756845607072456012016173331817807228779009790254907073977018290146791539233321088635469688421970026713661064668323389498490402487400015410437725851071731530685519901731370868293533553759294089884750631850329384537744947098145665145949214094683348640609723113065125391873555500983700036754760501215242039395963550313962972297111519836583861072794826020197578545185503199945364758187011110386728610893071109001973850096591377058856375836406886579728197101259019291168441477365546212716713023722945440880258230438399765590631007686811660699392823946520918104054892030688977096768302178490191791358075548975560089275265143929237661526588875611401481048974900576206179916330449060296827438787945517854287150162237686119443516225784828058762990411924147786500519083352835232865927222962518848774643922113946680893249928572867134394158157096286735752168987075112751686899120473566806999203193047471084895771936674982187085108408425540025200627774389148211819914670188797013695865947237666946360256261818219836885045134082665510440892665657019247938225629067635009245390814839609488146991605175852137537447976466345275997511470616829889857560893429165877915336347451494236883449092046470737966028210681327293585457429183395624657134977570949810766693050144428762955131482924042285629367056660199199738444140740094199517836075279111661534319538380642980610626239167969233759750410627154637954826699270582341604847639082852684256869096818930809337730281367697037711850919084628197772035198458932719570207792429752400995181541789572126922726105356313755063922255120758250300396547342831943270626821293825795256264436577478739681571077217993792477533313347198327628936259611328130719924172182386545029201442213658961486033396820062093226286757894832834449553695985667557934236596612746434870745747521854243168395025802003299995135855539260292480507184087071366314148783169737046057761013348553064962960415283504280806475724215766845147153469656969127437267287511931961505108757140578186473878377006418080394113983258238327662499001239210989648507203700326250322155852373791843051653102962055746037802381176535735649659784424145122690621958440596427852298948782437814291271149632857863855572881100278296966798670565085103964599501192149092790210539922724717552440456665338198127527077459568830384876484744538810297127540806218332205789173757430366542003307508132037576594014729942652670196918874526248195752326446999917644464342144192087183126930245467126287435186802462404574145824829772801978108312497177690153151722716467605285001796106427279978060043276415621283195021609119117601865470293986000456653739753852813820353324617120396856648225435916986585739340312364261937719432254240290426096882536398417926314948791503501305337810614759515454066187008840796513592519519279925806338077111348335775082248324458141094826041854047453436832802362636164327071812884805689622697208019607249882688316176331717802051657943941865466475175829174259326016207058935329706720006582214754599558998887098308535344379961743427464890933051601852702383017716260220447825792768484489542559255929869483615164839464770309978114917530765146123708160021603508476738019413315086301804538055308695027861329567491007899327020515692826032208141530111123099881325135094163901212740783561307728788429628417074646949690610585633902525313722477850045524950188558624180136444277097858443465984632758829652781074533252177014349186007412930548711157507210243245397241039601597435291764964361907754565709215393475178842430049503293998768650774467455416491151669882298961830947458121483545669887701765833504105628424870659401689171642919042989862190394134234501293750242883940510423791480106104834127294166716211752012300522089239391988977096936909419502877119269903731722968746567810378093777223732704593337907810725406867528530768482342606580149663606988267830341358092661965551435915318243043912587176266274780075587160813129258918308670113435509760828077294364289352494442889815172151173084482209319803432150040339059172606479543014448803459267600841780592556074331311323313638218805930072925784475453130587379402249744430944967547043765603068126406346439304071677873516148107596752056262983726468400299628614127163660518256436930001784183988699156894488936420559095896220120666510009802136199700852636590189075367551796283350486697541665631525642944619203321446550682927268583475583939331430234262668483182624928447477215495158155014316139653449341203588341438938042460257939502181079465496077730720200883031943344666711124496444969315487825121078802739650827562887059472271817819202679056251715499786843316388533418946919176847072275136937900034187922148804628798827881846801634662734623655802955243804523444146027109424374697756761604250243237234558272468877348703310055887070953851439767425510763123543547483692658466955278469067621541746497867687200437855928761946902186591004749554418927028584377003750339866924987818047585985440045021887035092610001198029378630998976807254508850740487165497893707712509419010159236619304665011640826066679601019847424390817878282255799860167051100281583291328319229245760689008258932425164776373758180125416347901964062410802015004765850610875008115614428719489587037768734359267875524920639874494806858289074384596789315135663203902010296101003645084251140486743353240942276134630439112677634283064981186425653044281462178563849281012885039253371942225454675623466189789157456689675711771114232547660661871829202600714745186613885020066048848541846430591425918863195017098206180513425255776928899408796830561260733568904295715969447086780510169694289380776258811397583781881552287946282121943654811156894227006929244201013359677399350495499402722909799589825688011088998799471893804694397668270300991066434633386553598951945687670337657733568739280390208952994190470854631562098626058524708572146059847256684119290225782354561796447887919229646175311713203855746316298701567770884088011402482955439525728535507079471209978111216115981806628909921582933369954262410924448454552852370023138177283590198648719434887346454494526655343644472521069586002470078905925415298303321550599877102388602379856999364025503612910092669188540782475502943165481515221530438263915479983483774006684784174583538659327084588754292732155041855246403998904005244026714164121145354350692781115359441229243897663287482328097236157732355474054005826299833041497621995157094048745732705036779407307457650616440977220416983649863574602841508721905770808125392247144168453129346350702652018569933161297885853674634174309102556025761710286389090578646424966548964475844099218034591125895284505040558292649597968738880370921426729501949829532351938003620687005722106289234360883978968449236128657213971319474030742935486751899813557957803054775312880623006651756294607472691344132332692779563096089268284884290653670342439982768231313859347383026785748738363922542981015969840947155464294334588109201865738430719019138069871791785386462120251775160057183933999652156379983127073280559234307727808605089633725281476735681323522045387911974930165194513320142967314106121973968025906826128572635960717050186228769610639087072773870453632678999363855954253636766050780299199708960206172212330202640899737924697902376210564704830578604831433650655747226966608332352537979527469700825307820107046699408282985797322077431964377005303589194063645169779843459745440558018357453777976723241373192622532906621846139157967255489989142015762624391932810858509847751185990637371942803897596761968631168382993317229007185029378182679424145483217550909068884207317012696486579624315943125487578202427022084506310344635042388862435429865459449704091003563474925130413672954436335800069031303618386665679925309562144324989585264243615846771000217915340045511142237363221554078070800631875387669258594961581120779761609540193708670615098132179824088770416108395043081733844783711666836276706225876036437953353834887253649683697703729268911045963936259571404866015858669541338993712383718344729575346688429908763763659704814546971823022710846856860433979036607255189722374319703844500382249084213320566834065661546135160136380387362134567896144304633109713845491090827123781607934614555844485740201657700939993593087800694882198736739300318386529475185787412873526349919007488044422611459938002133548788721537799290543725787462161447977284673343530021677141654780435521830805084627212568100703859187777407548736024195428369520740201078139431091941350819944242002929676777470485764344974208752787657885076149712127316998498296338963615120585050303574861654126145089499606879628564656514647314880371832072368616537099205943826526564476805448966040263838764274425802006016614470928299574842449266255850657292304417815918068688040918949506839427166158318334066854494628641159134805914515330812133121690035600203415072465888505841762850853067167196210817121558501023042108022182296831067085607655260597418956565273580717964583187507718275824246962740203532656456988399794985364589870266126068406727514031505827135384889322604261459911566806540514452592469269739737135631242253426678482662326460103907193731858835968113372863385356607375973767025113290939299136711959280308554354860627633368363155435206768429341276338262106056898675335037009210014532630412435071986222860105402505082399694901839007215248681202520975234438119588481555483738259265284597957844029431901305247647122725132549989738608675390264693217468103294120246592678819467522164734776353861951025317388826546311111515349190780478557090540725531368968083273261491269606123522994943279989266565001529370151591461659828739059163461326098996397976398980531589752584285602390615673470449755757286720750362998692848299415712605665549733010673284505718661556225155532003230688311130173250336459155307488658320418624890647235582375237993774208427685524119868208449775529057458169641262262064640545737741120673691212678317196622244438538517717604345833936990850323746453595203364863187820002567064242038723699346170239627208247204005605264387886542380661455829097161070511114409263568640707386772995360724231913976363338990417117849656807559143169407900793231861174352619087651125335204185100070749157760934572458693678748585097021731648525677428676450048807426622303429237876279413540061395589374382347229619550915114121518201757190649442169560215079210581680439651283405337027649712799527507145619137163317851075287105691820267335407711242246515465225809846428452232680534189761742138357435962045764880127585904471277561210844932359431087172798741783465807995944587668828725721603690550492265596845017813992136673489463683733651977594451996103853664560172776808092587260092706035805627587199472689883013202662136723244034520243122095051588890646750733756949703516779904035084639513705199021241048229816215518470326866159962650069678221283973069451830165532988188277056170820418076538753048561238316371310090312201038285542914174352875141737983464201936976840223988123485535738961686116923690510734047361253641853300466395924481519726620470567064780054072012790673199860118430478948729552058497395939807113907245688120106645127747862717732218129361126869997655356430469336610522074934538946367824156431087361952921536421890291185783598866779003992955437766916286151147367709501692142989752792396442299490702943463845172016602937773666961922987644192786637507562822385240891115556185694514107212953699892697480753613774688403632347231634307494329061720227286907293046000543251142562661296175582877884232392169594832760786890016715306172278372662699946186701719816241234057997523191487382477536164258317037944772552594596054740471367478376735056320104585636510534685830627841602604471797450661463112548589804726131195592836322794775936366785126524752020029248113647004448279701671025646279873186025539899702207609961771413865019943572295353276721295621433145629590691929730835393389375007998179978047954495690073403742506536112107984512522556398607425901624214575738820546980005118134443100417783534000009723081729174985250459050503839841860562984467740672107422539616574926650521501556671441424916603672102980827991222682669128551930412292998645934208895375949281490997857743803522424638216171693010366776052430255477335350021299930745440011927048788479009976114823967931019533595295153568198990764708595962515888224950711265201317477574817424885253665109530549527714291083090228871375578219351196544108017491197220526756684394304188007620028473233539273698203064063926028109047234095527829615774630575332263463723542364417666645170735080425460142571106475564004520236865353215544584479117861542970223874293000504381503589030508499366311751233678643234302337453810532538218804037470602764312710313819240431462791085357629927593940206524709699891434899164769086715948014639669088465928069227844852937505305299929340146345995263375841354064003596354195310783113282243502609088886880736555158644551957222846559531845290213879090787762765020516695774519705661608856308271332463653965296451096283882110900967516414278351461088264928828638676280141913447245552972526637345932553623065101578507333222757042734912365395273380242820932762020304625016086172992076849076855358216854063210613549216240387094276459211299656927122799146700022379457070256067353603496177564109740222732558330597246009255773149040986445808614860902329046812928461795476247881849139613571204538957148648901954846995943318200841341758236912306103670001519574193824378456359328014378313868156885087537018014999283907667860533163463544910987586398010841112459416913301779800546408214783700329197594639334320371520541929113405512513960426477251995997356726511277490507193805807753588870458900451434559970189126003779345651249108924394511409606157935072320219381663580505559766938793316957598717858069607111483958189571489426725494588877270040678543075721754195736172369900005171095425522046093096608823269073277089843444616496916394931117540906350462479646025129016551343966419501891062527207865447935882739951681363239852739745161102052258448226527032617273531004755230854048060021082534028105059621102309112153482943201834479622666666880590162899685245759211255761170253218126896447336979891140738781512183504015491794875557643541657363059455913595348197625828736707793174877151513307112884847733149857914147827658486320304289309198666647380940195377108240168059951519936150655996437878088866419304077423664000243677931259933684131931634452314392091210868025255583177938489299742540190029469135734897423603530629317475117730325631264179420187370639192517793009327745644644286245000884737699879476414625149017396745361945713826131281392790047278991000887608649377235795502457000763769292797840045447001968281323876743315363402693539645521930385030302682869770939614530666814159607927192424884477823894920022022478988378008187722686510397989641995616302751531501284734631953160102246001990893981245705547872923716996953886173715647557982970092643365414148489717025643406795788510657873239918280096777015151640865011719595332919177544468828839688629141628996718088274841222423500915735759707084171611451556026952700573107454218787680131189472395127015239911009232935567158811990968702207268515628902685748705850454963272336271459979686717174945693905062010926135193042151803447403798129530274178343963943758544501100443295896825451600660614508877846041289083471952310507383084148839824904565949121122384006253946677985244683788040984263039959933368759474386762075945905290665198504673256156832862664845246410470675971366290740899461028580256418020995877872577084359431796802729182253265799939851454414572725125840205342978244439211116468467053343548986498457469975025137607504720635861852639748882715150380377841013800671300705514554804989769185412863434452000612977701192981236826994774153672903698537452273271417772505130821036965488261702181245832352396209490888336968672802116334526185499038141350413966412100346523049023301077411866666841195584488040837252973240084591483318247690997648371287822229749870598483671297468731025064231222326119771123794097339112947853195528150759411919131362560115799619104871629601121203558387366996628381907636244415759348012858537372687322349695822581877992534986672275736782449551647042662396231480351600396417691585062094322839266819362759082181839059954083953650181755783463952833101920194919219947467216340117585456888771535664517304029194775121206033907351456423437363416904615041337409658897936521128922740877559495634731001908804765489480544276840564347387465596993372568731373010497711283735401490566673283581455129145768484471790475390616453033719893305967973473913148049519722164314801223254012374980335010054400095974843804773663691692441404749950679775043781169393149171933081648151619953932242982681987988429144087609563275475208448312972677573809558354680337089715306990614041623543414011304454606781961484533292329977285625264208384125846524945250924090014515058084996883447640089332689969946102948397618826873648129534942280600203612281936557527472121475474641302958333260460587015370619074478529331218923289602501281056404055895936677979277492917016922400857837917755417295872174044937224923765590677119326100954094465447360043798868963582536985871038624485942752499148826174510429037794607572371235963652683525964913758728213812648809958913865402141826013207427819168365579010842202107929217236065977105008430907894948751540606532735287431785357756957510043444362302671194515690044190090270875393767343060316812075293546438741992125190744185572559028229002263923068939825216180465661056621597450493513387269632953173772415988283605016738749511315465715158125092859586496169943022838732401938125784028268702684261829117704746607569786172047199505910054589527186962837683953962600089847754640921177674567670049215641301801642090175699919774196495872747096004300522208836644849475822731906914376360941868436243645176153126321500335476460363617893430989254648125499968322272449952710698483409479683078449155164482688939546681367388534940766759553934703671455422462143621646856206525178015566329068269122230273862660138417304721583748154399433125438360456015367407593364782145790763964027739388027680388851571975616397576733904194800488060051735187806476643710068240109691882015346155556352658985669576394012481695974736514966792688769698440680076214326333633847830326483317659552300894198277647997509858081662284625197885958877215895261671000740772925174163923100732747182409469457550680587355435935213115720499049774068485452850653863295734628224328702736105301636935191643139386082211178026492989267023563046553080861668212305137938844652633749059284290763062284017960118969973104712609492918649530069848774846200867352412512048460122367313294140052512163454836640018146411547863839759585012897613864780284443948794574275362684097043108501932226206022831503132966763070610493361286037479237139919706375220091363328547530062314285678649171060369572053511523658810136310706862502636536943612646255277600917086703742620643213435703943857251410887651916752718112779792531518525081278364356407541816998317245683778190204234636100611502603153495074635827434518471773192624782165996882137992533050959754431757894367953537085746727630232568006031812651546028783314846936773347645981041091756311358813014569274339453476374044963386401367154316091225693686541173860151506290980460951071485754058884314042549975078925541125502997250180899968396772508483271037685974468665363816129053311889910508814989231859604291593717292075095953932977101306385445184234581889657381631947963571342686591884880771828734843338930560521085368290257319432104431815456257218728211874860617309974622782328483153201424375777429041271855574767071786928903229683266391947905166373735008873863914484185012082940438134262288123700322769745204344550167644115585184861622130471043411888296867867643934733478006454253801393768334790933382314273379599715793576699587819930882028121242124629620922568039157494556168282282100070467572383985274118806467637434397070336963177497601271261647052770304857548068751844272339525345166517118760436696258745635430549009404889710613210615006909364751535670183246886604564393857834399593994805154209998086103042495973929110333832849388140136164752710972043342771644282528429477963213004540105168696902885477338287878019470132997689892541189006754710520549546309516817195274595421597087665272959004789061154396634602640897944596308388751761849584713552143350469399165408046221968771575781223798224921089846527415718806263829410956325655062709432063851839799311667829450781984751188567200201762080936415243443919628819287468609728569240641407784610735069986773563358881089513634186925407641991346959863639226062018233766944653931643742063692579759803310491369841421073516479756816618778820685722997716147476777228349027284272634921200417657376555635328678171506600559689996688206197642048938012026900706151049769399352139185330530109037654474979240166052551821845401640482937398435807434502941649900686652184224098834961011436023687859764537897905900298281400780101707938063395695670827805074395633922564313772007167422944179944245773783198913548200107014531822787433234230996335454195392654636846205140582564795904687291267005414410590768563796290653333834867722028019610031504423551626709171736997510784351700932713864555105783702309270420478288635260770380721897388660750525542012136351866973912389809677381773672627806640555057164569463707145118161145343313259875546634029932265571995949154682933669475845564023598821978564348382061176792604639788287122324424378366738946880889065849943719282428805820795319897456558470272012003327603577989195742466276168017287551901478125440947965918739956728671446625614850202613059691451201775335786290816720928943119335599040933572568190432075074427128639093280325918002917299843640510303623109508795430834601015045353542356062141966465033067067962456426906343570210454785619301479035896253577149716176965839878176706581055518981771977639790287854730176435143783653366371698615413553704441484651493921356763187016266649270170269245139018196674860584461634260919342501130824653166833493849425859862522067206764305909179955521711227336628892593846936880280690904268806777924976611631523669713245425284583463026626135908712793531494725250586724802801389229432903674634281582112363890075897051565395659172942884131328451018794639773760918143853038234799565423679822044890408655431435343380653755203826079618108042227078739673711442725214828900654204620865861908969085442416133978912690406190501070236188952953629425350518838259178632041238152492309531454451085036187688141152873278539492512371915128299195762260735903289134562508918031888138038342269407207847605407597501970771203637813662918828424093056173800249717407162934753451407623094751842785797811852487216589494977791164198293216274437752164098586459914010214704814695803275716568526451313402852238086790842851121355822279987023513514377426401410533969889861858467467782949148431159679290252388278100670329152157760370538072042838773244584611148073709040588971656275104038229507439844001642173405753532586477631187672706483054622735702881100524326026616731897751456133279239146128576575822972515415786105920237479145683829584998524538575105923946227939751508205235582294711193658601009202818466111952551394875941133252392075578935457160713393629715556857965626396278120516754761193467253627053190047332317313933076328774602540965658592088666257539449250327944712512308107112233613388979822771975786947857759878306895286990531832012783444643607208629485529932290446159200142480430452985178318919020161898720604907610262158132604680193360012734543657412788796875984405280076794677448569821837784512692246673565064272845992039990527115019438861336283929989752347914049466695939180203613564473789022966201802115284140288075414117808480468525682664580399581139193784022138083549932284885010871589597792311448651292662792230734083287514311993248224654922783585170029358165584851646793670323723090076279075714306630419632813341280897346300583423204484743136971773313496496063459572644856598831299536496554571141988180778541759835104576429757480845213261974140793358356034142127759539400074816033986383833291125879312117872675224754389919312180726879839245030002678105655410039112633332538303899786096651466714379125476991782098591443068344979767091181909803120588836304640277284065956143818799446008902815063427909259156849583771850365991993233384671587506580592604905479661343013680365302553095917460323995436064525179949964135789386422166353059921875569946066368162560340924634257022212671695512467073493143678695213863602213072302087366541998601998112739500315207407723292786493960755490704574398726569332114922051620444408973465950373151700489567046255750007048516145846308327288607017203419467246621858934888826367612146657172529561841851735632918876378251066211872536638368769946739405392893446931138157376900970375299128776700942850250265228297535145442410688682153849688590746689535500889433082811348748983557193318803980753586478179430902221796464942195983413583122938048732320825567176010991686424250694980146743478986280183140114911659376645007726706358192149410898375216325160604549307700877756750467097004348519029193044923618890012499151781566246072110146790717977832778262549482243592588708799939127879385314354166229672560039518643999803589888407028008617635460404272093647671194748160068888345208508521391716229674586323725029890541296926908880102810805590842962309578294121408973510403813174856031663378871327552559016558682916591999871610295089086301954130167925563789746936065084588082906093829754314207183177975332948045394087905008213146060318467564659658505204222415320053863427470639141636071554672869336477155834407725103343575641242997934795944742270813775021914894661704816497423217609503675649429804605219770869955443294920267371266909936575487719708650258479063267846933357256406271088750722575412765127521538754198539040244411342932585475797006121850895169955083881546756983632412323268737500723214226426161061969580265581244491680943892358642347571176501128540116867989212975166628026058722633545028399589574798241692165951520904025628100174597532434312768422722148513779480379760208673952489590828926453275738912187648483085334010503713335566575866093684722711563322115157439592428327550642036845017687830849788292220988905529786622311333126626570609209259572118559654734010348750633062975580106938495358787175198836412713489124955347580613138687761238809926974273568842751647428182735697830816440453819170480492547223320947394048682557039361067954746676295084492589141715060881161076569196833439532745093123926021097346890412309941835649500827973687737965298278368367994948370402785092953555468800004364442162550321248830948211199873822479118098733743733204510076976222526784118283274378608517877280286117133586576949706024880102784169488848167341912897893773358289169512275278009855908991119397666033087554289204639277186143129376697299713597992537944513193613336487653208405506662684022751437217939163916787471711214064086020513057675172491446486034141452707020759224161830597669651919778745415912256914324878895897676067389905037969652195125200911294283447869491311997365400306834687463713092032677067699315238883640093608985018190081833218723595565682685296802658488174194981572525867936522363964426279812563343964669973622554799597942698724034895495864567950021804915716698247825582156544811511398971850479132445718719952981320610622733312259495681433428250842210129001849727444862987392036827107185906664631468525015990011362727722305122458176496551636305566722568152541292886825927016105463335871160974429131054480166507839501573625761284707699108745958642182209164985284769157070191119296552172324020764076239754926908096308428234581171865058536816890193757815988399978673669279390282860662253714581688271129794938109056491723448160953743654683462274178807902625776131469685904995428845953358776678390009004406162191025368866119168719864695186725708796749233047237308939744308916477105469293430768502092240185633636991631113070212293910031949947071853288350166675756005666454948130026678464972942117207187485652178464842232587201487915626565160563332501358240891615377145401752950941436988377502811416618919437336710772871991686418599041713611699147844502124567256913125676964410043832330047139481353882834106774277933478364142213202439349792914710145197503060105791547302398708907860246031904836626428186398582640846612661859157067951844227529436233800963253731321582552566074463598101062376460752808107356372026092651709751103248668491082672641737274493213658534555206693195528240453327244179718203494971989842729804582462495784509650159786684394457381117138861786421440467249663789500444247524101395060695657103032193450391426771894993769061225070206159043014889464952986134478646361620766657402051689438007222240942685950469927055126212415106470997775749755012194681077497495201727342897950036302093506385098416391471801685425433392055183734278586999751786131978825351864968619454383756995702862711212899256822626059676660365773617714688388741994266873363581524081817307550677569595374343749241193805873062407290605310444457292719695290829034311728749888101675295851452680015647151263859759688467305857179740747661616095746591243816161164647183342475658304992101507780218153844896686486050887921502330358946788974624199241447966432126659159845424966586208265813332441732561030551685295718795938369124159687890888834126486866788176567649411063207505778612894976236835262396751595754057966868195324301863901568247204734469903622090936123586109802895455893003220658394529244221443211305048137670742779551898249500767496915374024167718530553473349256643409808787433005779792049756427975326878351717482285419553695173846936660600253576648576758281467897746536329545208321592286921025948774304416713052934042477917996285734457718711379565720281290906491225608194735030479401968887607837636701809109237953669300933581886457433325935340733941815782947770051451027130560516833850046674133923392574085444706024773493695963349905738112270045931577365230093931281906206384816629884331326569654478333342148908912589981038314678006257872169535161804966996301106795694905498448345548858975019654967565118803741103308663423107950914880897228642869832354665120160469216594918646049392733334935539638733965158588745900200850298803258857249828054694328090512611972962859181120642403795007914219973115601048810137625863567519185020030092941026258438389137602873168917932768890902110348856132028477626650003665016453384824721398796307492822915534681219267143343965295357602715104797331892214009905687625353184647806316026340058462369713122015153551291550139836735650316958716500163646780118267055367032175674003416728739379522212786405247633526835172055282861027632388353556514352619867901304825506966418291737108828886792382859114184060540518846589502719513830948039102831170399656474527109018987075406612133728994786412348543147975775151947854695748369906597749750866145114556427303285234187690266805168204907156144735800693100591515234994495095339092592311339597814807220995689942709397721958375884345224304718892355563010580070158015011402844559105902281178642571388322262484724680777116072849873507398840714121592400366985566940885743026979861382921628207502166820531408796392590169439814124937758183697124860875894190544844167564850639195217274216360493183815820542083801627040179476970067643857814880362859115120702393243423329876466770377543945600560923619451391511082235397844466704335704465389610054752070730527327616915179504746581348493781220478032649526158466208393639275141404028517646131195322209439765452866111631302565379283112629204610648619986136406036168320797155247291872371182667447037889514968275333621265399475855646010596643791451517086295694837502765838118556170849799953589288254017585462711475514258053063836685223041360723113770821006816142193537665631757242933527489779990947277037693265692862048309823653722563221284707624324325865914083984173357502179143165076364959647045453794619153947071295514561812028538370102676284200870647834901454262310855140092840801324299829616145788829726774419111288443961455232664973989274287438505846741843921737206487127007421867817122404554215591572266498263258514335652281744720728080024731443536678072054120810748046306202572551651318402830317447982983655759274451718605994948589449930370126694042500150073944221870705249132850725086363221096173098427088082614533745464594628429082103543430156707655637552286239519863839366512868643884862801676607569074160824303170768223991452620009794067818870949008303839387431979889326074088148810969044097483985006472432338976061625399467105862880900995863157025686134831794527354931630973367191184666936034090100168699708355759202407957302652027143671708464566356205660150072428321705993913280851056606755538366184072192503635037397326254766689394001183155262025218666657879701219423309973007297914720180811482564468486874152735521199592713071584605680507376877455301004462516199528461428931546553714178595099163158309210731830969874137390034868246147021860206678994779312314068333914599971601660214839912538545004561746133695023241964396591401956842973839567176584103684862724545630449550125114439848207333028808044071522703947030407639195668211846618771905304293985092602179035912001099856960216645309833686398962125019003579886839515631679660074024427260968157278885164259682241302964395572565112896934612667493424555983450507943659598178294507395332515610013284872389717395653382325301197651335931945523218934352440631826122627058450755173239187159812736730196105618613648508377301243847717073399805464727325745348085216223481158245258444544615203922545208927478140154685180461980795786540061208737448903048433695383878421023556939254108779014117152471624825047951520022642034671157845657714409173913168586780332673152877329172264919371024581849988989207153911325920546670239835364959216742326186512227334938923178761175163515921995939896454640232069740516421618565732604862412103323113207289539441139923696129135466384335609683710666628190611119613737738822281491848862418973348248456593496635740699362617665171888233312709368102422802321236119798329567485626936145526685894659344738774246374083332471314614448915745761159917949434243066505270112409909554314209187155540682256647431702322658950366511212240167661148643759554306004218933273941049424565705520203508014940481374822630336681693724205843025412036548000021017623953089859270596173142714961951803321059506466919212897091773991675035664641375202833871876888212428941432447601082778143423557853061951791573001429320085362860779680014669559290259442774112296314426503600303504248037792670927300453533841734967854907763944958434154397063624454169184536983743323600084401291776903592439116209418638037846424058409585521913237226141476731103081177641874249525048101413333748735157718768832356730560992700430839943046265332380890087709269434956700889981772629041019222606824760578111684353936898699864321417978308761218143499981587335760489202868124314591308891969368833853763955868400284912382353767519437401039509061123461917610160649810761795209400629423672805655616364554337828224139036362676431323738185238938524226988663869680113989805609895286004603744442067537347498641173795524622577858229934185825211851920422400981426844215039366899295366692817960753360885650443213143764404710512254376875276677872725460038587996873020894948906496360688417556292098090389998774739208388969605457034335453689576030193969604013785474566024269533218905623125386649141043900910291683125014263185891229927767476551339986255751159629371852560394169068304872713564552134438544744452073505462229112326416422392020684303641986509167887926398337780987663632633682610683543394252887761764025750944657676841186864139868257277638190646081828095684236557337259720438432110616019980299763064421609749578178688943709885636883773343189935155433503075027861080900865029149054503836711087802747739483951257040145058764165301171871772208293987256565168386039500617528984984178360522727905979984593717438200007202341042964713206118606544718228731824070051830960209672177712135747065954704646369727609923043022628241714111295792475529529234166253868988286809904233441653684444753681301769061410945643621458064454914579373002528634465384438876141892998977155611084530237929478721308203374236003675569208232413838687857402920580625229468483618701591924583136881541543976344136607638341573457988202458248053141589185103224675516519801088390295782510196043925826983855343972003066564876943979570154102494810266255785389595850860203448343366395344479852321537101967977020196878550285964419369781417856191980095059956385154178941272020779891779149366035446624240824063176366020997747270531257255210113943346057408340699507910205032045719851015259611838060901013015919824107349168573076981569989630745995324335585063624935819312053045141309531713563017741628320313055630020027678933752706438222885151698216002667278856603758255672900488620586811224246336598987193224627126162943671432085289062164318030374561508858305848585720681273821221667100965140142038397210365698625896923396083976739024101913805012521819488385530505816306567912177354744425634669779936833637927723698087008597411286060372963661963168346401901419990297707355769786243990615253859211170773537964591777855317953961711781497494830621961389225453138642473338707317976650884081039316313521925429247037013668015575859260995227360788210290207951672920810980630514147059551209797216046309325494177248141747403904703799989080990629781412243967519019744255337221983830187163640996970765177910885766379668036235436948040640297286325685649611393261442379823129165545236388422675128304273594388816503161426856581454791226927632640436240726250886208946197426100372128915217223785040432648057619582687757370989725893437157395931143929093939846775755872100290544297356689951628708502661435522760023884126648992965497876723313165379781579393772633339938429327962037156050870439934805201687350917922547019486193938418182056798160537184945646169488536098896702450991170788036285468002540284486581686170943614916349587913240974598539042324195760995676033812672733566138344840041102503670018121016087416082855823246914063126941907096051457986354665588259319933981942537481149435969281372916025360345717559954608023625735456562193068675709302817784936737560239591720452894225654215785059672141651717735982486915727779517751879830923011478220585755205113028997555677663145193189037201360659128316458307567448495247041535082845913483113330308266500083390078403644186931863451558426774230549841537842351400535996067846023601250598177123046999655171413932475680793412443431720488164126592611257178155189003017987257535474782002351960962631478882741685408996963432524932052086598463767072594992452796462949011355329743286289059796979144547490160671581612473160406698922090912019004890500375244684882190027114960951500945415446255633640557856133281407132699602467010571305661698753292352263623687590809600981863271049302985753868848299730106988223726680135663111084336897325935729488705425163622324190308498372637384736430366239582138802979316455643828251476387913548510850458014380886305467864965058858572622722866599555119383551814173047526153400186587684871519398275673734961897639431483418090203302381893481899698033892919568314191070337733835434893833751686608431825919756493213129662709612053645953757438198848046443073002009624424808808145877524729713533242981263455576628196673771729880231321823957387390448780979816556259759274053728277692634783447024269692124675591720335632439946777316514352129408295179267536703365559983476440872176248030619695683864064876489438804283967972324428459536784621781368247057700891300392534967327364600700236741379098821216174582390147711063333528862886045272577380455764973112833625378296086809987915542106711310148404539272614189140455336009251476343633360519306940298077974447593836605874856673426137574405266580644992008572186907891149043616886566921840345892405311334374396058528926240734114690723995411314576081776871498682554234290201732266185269529251105544084098414006879827377117697830955682388435910247072845967916819402390573975276082600423673206866873477316733636987490460469474437951362898197748809400792486018770003592718972975311363925255795108084360148971189358717686085830702759356944122663693703953074398615726638479882154183680744982087356184586827820744170270263186530232962041826975021644933035426495627975007008362328325812210475227048724057062598197808051529426164050985134360863038384897285203165729840504384502709009250485449921278318854923980748988159432748630770089964555970871321389735218795490602071561105221919254525822164414375844947448039475866962742901438483387901990333757068020617565433118517451376204772235525647326565719931795227600153879032969018234959548723936927084912056079262663478054619735780390440620230838410892157219210268090594591247494621343026419978692711325562552501497552617431029734531652421321752901007974169991345110540383690562936943710949981464439527700258486110701766977540219276173880310172221626273947340234071381567406332259270623536919210052252512932081802690469264679816974648954293608037829578238198447846678529118898803446649504294683379912638534478316045315955039451319328260359363088339780877494940603007674529945944776812954249420541450216479664379420693785444870811552928306374075815097212009067006256656252667720649070741802230783993439402443736576048089304003717578413259990591195484958969603357537880207244946331872780198793985336433958961666839793376450756056970166599149604128263836610692659383882139366902858930129719990137718604864368416615159409802709369825003480864488064602551601754196100949484873675525360783881425564614889119002286952600634914425130884814817752479480718301195335608198301106992819420848652760186832283594127303293607993406764910255443825966100278023627492695093259547537918798234641457968709186712290463483333980471631409166333825687276037141674864213091508421880399396220201943720351119077621388035141418992328156433437315537409577349281621792201706576322459880742311475001453476879216609054313599572526043320038634178640830198737791352554026310801160489351948405969259264357220823736289985907898895827553275084163796374943684281577492916358558493990060178774802012044956797492082960081137958119845357590144137311536200619059619041971892182500665623147844824496466358668163339102023935538972879214547286086077061070382001829313965840624333719106724839557495074520211053231814288119746990759262552029382134463802173120615639042010273936248988106934928586628597950502528654265471124974331145751340167507185806172158248784665633248754964166105764530439933303065812562258015882282910044221560967612726254747800474980454022361625354313700911534845772393688456437385490195503570861877338050189672020815272202073013562229121188572658734487614229709603294911535562790791756890400504790127901930475390384588413892562758508187006408377451782378227651022864910858372060861144253281580068855109570720771361095235118204787210637079667749360086504426928649011457758569791685270882922963583640245766311891460854023356886920215017835616794137004762480511964099519144566144601471628779731437461725975487669606524058193533886053097226943789258407063167770671396695228350452350201931976394238980418728293703574726772215192188448491209555560308498521387017064098194216533513256077975395950321748898462902547439349458446975197351550860250289587955212312919134554982305137027804957383469134610460736915629762536836813430697455883732514997614414870197084816479025038833993091872175808942903677715283853952618548152511906738086492320418811367865120679931465975318713905496197779227561783520194385058373421532191999570928450348312853953790358752939605363471805809267203763826885351758663702653969395359505680854540574507321744149162674080074279901804096797967514396292733978344231078532230135269144811831969624488930605545979051087391221610332786916993886689046381263490679779652704208165214314644017639521805088113318648747568067513100374469758980834872493186941087977239238409930453006188942713572446697387370161520540755199085390071961986076777817045825322104568368574827936821287960773391311772965339283303736345993358097161647631899998449893212986585714817018246308539201094955007431943313523268057943861447470579107544206784782512167509425344847345256038778081564884817110346193810383128513773548698728071133834612685112798924686859932074362855400947631123930080740793802882864127524742989359733769642054621137081797014078395949683136814594943967734219955973422579513755785548574836923599404716608878322740615412882363089632587129166992672689201049389718255310734479197427910756630927827777878771411320873538089272921454237133930789856026344217986973169667879139712518493159471711966657312940924355789586969924452526006007461536481036274132240464424392641650521865261393119800695998065393376009144240452790399462507254866627351999938001701760880578337724016275906530122034562504742321280003064879274927995394728236411044203412654391688685073572403468191278704395248280596034277103962615462498325066124565512131161207748551492090592141168055660671305274934522895036641766259081441151590857485826478425450303394950324904019325516518778632796612376311372909163639744053603291584793608013201399582169309672756255163270414658165715512212537042000472636322071432414083118211579844498928507918696742280795998300944851837220120066743608987710632825450749241743630673969053807720991566986829523016421894060153901438727308176730145191234768175831176835666589984557739469662772558845380334310523525134798100521036170819460662340953030825848636092172496922043628256506540327808117842857587979072878378085866958545018090882542323134764554473196687440020123680800160949366570688237660742187682273412146152000187020012989266164837760810302909009653581146650906521982547577325970169042848202011523475702436404552366335568349812813461458148655864976508748463131351868649160682116606125966220258963552517664542838523381420912856137477738523609058284663329002737299023468212009024695109672040376387237165123626419142756296087036295925855217679181614643142895742563374815987121574121099610419816905633280788850970719933943149867172257002575596566530598396926019830723565365942012265628266150490958662745509153767704777788522211609688728528163635100494549189120659039436098431563182390095792723287636839355548438647250721646555248209012430742792185780924928882229021652772418409754135735462419690014468559014747332218421239686421974909876376247980615573872823405992726375018872276665401909823877825796941726960270262565786293628631882504730751341763719611127016850811904268626623001298799507190068819152566271599414138012461341307939999271859475619809447175717346879056468499912166916496082957447577828272679184737223847819981984090000102401172196457999941116797210159878186937932258660833631909132334565764020038468444556016872759766969291767082656031451216516585803760095016803388033819413556448858044803485281284774965891644344840584199196231634694270863837311929259627828395880182098137797012608263201845285491756506451074244303415283821516484240351822341876393522105753949435961582077081517476948781055947621302010698795070510705437744916879537953627494700419732029272572220877284499110397976527669031437186508858576676722944886956399679197731952848839230687508897605785491502043613382863669863460202261005051095694302172398354085073583368301289915783835865172442225768909218395574571633341184987081207495467487491549730333026078577333295352099230915713147702370100836773254903866201759387419072211295575008957779306419590231377459372475576723517325860299310111432471621515252150010242151861433003361021624423740906008685749287943854352326892246162181822249406288015791977119969052011493936948254950534594917424525819966967682576601653349959360718951292531994579396829700257045888002152964978601408791839694648540217111387041486377539894995076159347844230971749925005247332680507074504428989730296769200603903294789209291696788347266310690042984120690638496066531040736248963115299791135404181507762839675299555516548246755813972049705975525694462982964398640158293395868154360604060872093089030463630512563734830363764183015332513524525347314340594404904187719315533452716423389446544974144778430724768130194188731289288282291246461797188739653814846584316814084763632487049146418360997043635451138559306451209159041867943164846203306950171977575967867612918276116206404154084395687869410429932915428007798776414394292021498694606805932839959286561503756202020647759132516854011504463913081553232906070783072361795748773952137779590478640238712685813428979994514873877051543878018612633519324989674305316592599221918739545113817267602212549881718482513924986877791551186266397507504789187763242290897551151166230781890648979775960055355260909295576330314726759212278083927733442156622290214290637146694422419981697753596212211793416365736499722118488450724323511337988020223728873093193898334305986422217265844379511334119414304529313916653767175475014655063427219182141495218502456830091806996584634741625637356838628800259587609686008288268186560646687046062446492928973745693457168984833513956932021882355453620089431638515144737138500505126560771046632265716268429326891427647872320764693129286138318877498822886751212845246602887093952421619744122595966350797032670742365932335339745432437714525257076547529392209728201359825861234057073362040113315710439247979735203521174857392837629136222962654721811298005801836395087021144392694939357735781745956300763357721078539405237476758611826822101498391610426851323100148689544816203701415455804741512773667988734911561867172018564708911190079282107723833860283672379601496024006342923560843351847637019182694834543001963756467300712156627897099881651959360904653210563446411812435441791938837532998948034650653451226733616452166736860194099063800882196458009324752937825010045599400564587789711556137622909007539336926972063224673334745205844878932377717701858559715744503603202683207952137612708198111680009751409241836138173706055074478965341300229804312526570094905965620918643470464969857912225225924018634643811596133921460885708765655847846193637972559532332429837802082383217912137666668351536864638290000816934748236063240685754257722173787708269265050599331881544980891593976380492713928279090570286569391999575482767343522049605302105497230930732492796852279258996615141424937139862367558482804817836702328656529471523635167351471101190889935069225198778664340030897052050684795117340806428685425374604138457635017159928466469250037763613596579051831756253431795566371913904661040406581158064014256037864467538542810690869869523614044526398979563997967776924641978288691549324147317760030218419463526757791535773705271073821144562920766430974935022670600589780416485278121230519185124212531092961853643065575643478188207832673988637214428853736653115629929832198693164008628919749051972176916339662682938581335425404131523393814900471356197204785856875533680644782280535344259290922979062336158112956881753935105690930650483502385719709473025659781342162529978225951293070021879712911515741197609926121929025452231587245416214969219181373723904983265302837343115955929937331882053053961405438953812002034314430468418395057994092883019177524375196417369238850904547389969960693200567672178062686370708371698115488252067923498518514411580832005506819519534917476366710355880251820543727662828214092036934757818822241358314360467970351623151766245852294609207681452058012487577779082383338048555833600297742732036051840644305830950139238893890636906487474952112418730210227235992093304471515163594840171974483671871445495350940299569875426894956142973359491202894657327231203458756536219718866780170121641452918940078463838455090921999253695600044291339060208951148825182646565779882666259473427094893917373045845036359123617810193096733373837647619856579578523063587403650021200361843545741235883411319002019779559068348568552456575238343816867133036022199100268093662729864106970346799027521220575122517323271006358714792821625731064508867107856853054479540728683320912617673355483738532494122556404521211881586841726805851792980637914901864537243000370697038693720560626447178424455598450201398508729272379440512814324823317223375736087507902593079140856583743613576589822007015395768434484742822348188515445946843019497573506704321647557471006434484057287661408648258353702561232151137603529926105529854945345713100102134277087749437410813703578019530639506779134203892082101163518567137042520878888005393872614735767573234778011149797014406182033148928203078553901129476498251269443767598981662404378933236420567760349679837913238710135418682491564632324451479654269010396437905232593564369868756367096281581398885793610021432468853095831804752557176233610893966581113415022420985261836812228266918090525423955000296302664380656895163277509307231619794772195996136242709222765583086700864460137873305042114100980350164836406825989165486823320376322333817451613592076409137484850645391933046583291252961054245032299883805512568109693631798178012599320908096239553727798912266053017958130765423388635195490879434112389512707126750613923890858202456924030440963576196611202261989068231869585928397970720640238411014224128885354131977370746874998423217769791053686205339774922603255546448320141193433466666874304157297440610655977020384864389096867029809092857567597757506492290296148256422600679065192357805171462822623659108993994249886063118316770922018512860295146926947961663130457115065296095108648715009336401724943410320753944995315628399156102030745890168669517629246662618922894462340343184272944040401180763069115360018381818536669555924272164641606190387263745683843923471361145354920652774982867250543102442791414632308411949110391216308565359107154039405731169845121988812840066095194083129010981326104698803156346531976031186545008643358801478744838860365721761869124366121050238349680853421914462201509734996205515019900305710188824393037202277251346167858233457270082492520124605856520639938799217301906344900307482162109070799906176384677681684572919333586405759931470646976128393370855485074557434163790887430594305435279252810484612377937631926761382491441545513944627678047141631330302460865356472998177661264084224731155257802779623330271062802511325543590382038140555127374744937034971392579162492198792433297011823139475522018202928545253555722372236879788021658982366738982199521142000891071935019311991466374677523242092451094424874532151072653443153693724055996705528538297677723400873609524484233436549716079018288906911137603796362181523341015789516819476587307166341470387312976167498032260723350256120332605963060850099423727286771843361642923715703446157782681881409173657001529844839015584350880103874259713988335316714902488150346062685631121087573900139454522339221773900320261255999955240851519800264644997382870357615519129157585110941359843759097971849318550087263138294916079154742362798207818621230657159961199953783383428278908604670952070575862633508786908457868396317669308944346863277143768117195071524699818705614232652949937993525888118296560616087498923217815786050736510786876551901172478311916136886257855126990669403322667200959134500122852601889093412816470778558922811289692064926257168668906778797057698590520407844933727864548317259990198780317553251374469420956778708259317898893779834551519687371439968756073133789471052284485329183110704278563510953732216625517653193923069406940892299278351073279412438565088046994993036421438477137627145314886683325746686501566881181558460356952660708609002526396664957686679893813045441496634931731414911262489911283707398152960611045420714335669318159689569728001210008112661935251493452218681528999611056803070604106295195815275489978827570214915197539467864381586266079934220875888012864606847822041927321677951270601710602295228424393123694415787765462554201419230434694292487758311763484840746880717106642070735837929943863959218824611998581654339204750502572190331563069797473021592301204242919654184163078441489669632538000220375620934913293359738044268127591438926890340265148478813632591014422073108678572143052120742443544749916776568182349216049310369112946202334926896591829359051476504683409633839206666989537321007912531090137684620581016440421820427886707804013193433929955135285802306963192416510797902463738474831076089954644996734211344161099468294160279074863072407169889385765439456220715759082185858635201151821927228067527355687809813278948242865845716247321476145878442346764279594110154608025802801009398626407388934835156379627053565305437759444075596823862190641906398524108110811508318898674851328646865649772033969173306202869509295848424955741857346946577135219738981703298879299905928096257366510027878815619583900596179545538625716799270309035095174582467411395814448123121289971641973058395220371650725997184111438662776222666297084881578667307010524908250744564235837617479900882839759082135212483428109721633137071565686039453730173833728791564102398147198386285455198254951784783715865793853428673135062220555535739985398413217138287144619753768203292398367143613997265127709004308417315890916430501825042508437917142704405187679717455238206515599322366046499356066132745386396168990247335059003641898587779258242582932198978996700352177282049696267953355420154100588034851458836031550289159090093866563498936705385004877106578581460808769264267482417281597400151797331996985542535434484299434491121099561233697763726579243629991961669712989251503001972648470225309144122383950082099192104322349535513393855860847137511433654343452109451634840404191631395079188718862505392503455556822212728825451451738300329265196802362671437448108601676654889736961998498633185085768891262929502168809697635051242275274230191795589847026970361999601161672334354463072327663704941498971428894268307592842048715617695634530558078305293335242644756524240384751796626734324051488094455659421018997447958818565850622417864702007614719292299429991182062567505945607457403487719596481922092246823505283009768426408385486570218759527466492647041639514990166527121004303352994867197027174572101268426344681662539061256707559449390283791187831924281796919327304491706353256395160477958341938004461702117193698323878276100959513105150169902136799332018301373126739584951846916723377168377751535070318313332791134031709095097334383177307094024710846360717492760603507821852450917036199155291952526309784225659603040108072358941117828703475215731785851377677349344793473861099374389929669061905847990422501395803858246652581079751453058384842112119804514132300628302858273138129098338861449179829111679410901264798677521922151772098249008340152381770533528239481890387034209397123199207479372225550890247529255509242143700763968998400809583413771342964591734127118763191533800094431711184191882479303668433448643198863031514849572596760919666622411403668758753310036309847448423345258344546640780558077635980236064094587836033350400857174238536188794790282827030981755622380564231257822980774491950561084378343809008706492305419319872580631314087987165375643049028033442416739997226900733548700944677865787876882644650442587745920519278045463855997369321607672983944148614669760744846091132963806914178952426517745114768816832690183133539705996684537836945470244339843178286445424386477330506301040913997731590883200035269082356535385733155639187423838743746333944081852309491865845674415179648834748375027518987205609136700578471234537567643417892143240334125298842438502772244413179803957867754289655741047076731368243502877645767506007977648494560066913509250118827122179530028918759852261705263776750130400524236164030928050720930464445750745418678395168746096202074455312666326647707832068865586288605087589956378185489177419962735038147525345073782894127912103351498008269058510292097547042319859120018652840095313875608724763138637413499651556975540947987992019161973627606098342876836537656980730646557940332687054523290255151561430859494603328190895086161201921251979718576363796440426399272647133628455104439044490652255128047189893317414766852842150114823586862326452365898976122341704216216592264261112877062825078571124247088953282243975357180422152867478401336468449441587712146842982919034285677601837779242833170541759848135324268358475758976181856014384664318093956290373043405140486139083493961192945429903861795452211452164428958623550187262654180083748699555008445508180500376242388991932352634564638787373346751805353693112474072659033446590949253019409585864073601640572316788107724716197333880939471649690820259401556167909908242082043813530819487747540432561922140443184677687667084338238753507587852980024642775957712887195660808439794175761504380861853102682427072163837055042920987385659374179368656599887634098964127704484964443106265884551179543531806862719861945129338865652098081157590105867504521255871261286943973413602753948122910134174527022695033774348512211374778588628898287393366483375072018945136160056888882556666269807176876500750871389169175720579887390196015258719923636971543980767147624955615579873813775280856848029732612718865516499272635493549458911845194768905073236462930057143974053366767779163870607964533700996549437131725654452553782651670529723483818843010777578394057609835755487392133445956973657490265907821626106588047641925897774030752776121491347364645454875962278040602972220351574475240462596228725147033031256847672087820883185176963141934073507098146690815696886163373962335190923762160909812157839039362731448840874145331798004874262026155181294436498853771248665511940087184489699836685710629886479157953989213624781015328756541584226691315826067012234975715740611981760189730884795941827458220847469016094724828031897143061270657059189167077633133110707845521948951970131161403299816811861769604265345151765091364661539629509453634721162464137450863425494220173720655184626241599643403217605501446296089912744052890646290899730129527276905658174510688073609192176446354096114756860825647121621899116159877380218589080814341007888130773102280015077616738448625083747981726590182128340508658037225333718182297770144966597040636535120105964938500251322995145434092024928991387678894041142229086889398396154228027555273552690112042641941054968123836186916851394078665804784691517745759211419915058599069658115231328332615463221344348053871704617334776253437877746234731565148322991170846800995111147689718115309425373427272158182434293646893513403322152531925404254382834215787360136028596624674894666676786975719468701618239112610893516541024250790022897018874183590303922116721885195449949309430626427978283754825051500361808800662252178871642907520495677969000993149329191043698432878009742557027904028660028590558883209035271035243580154731339414701346240297560688962373552742465538638761149174714362298932386166197046230427938399277016354532314084796729074514578701578023107821648038673004385783304897539686367986687797320555542353598763584120053678112832987708348059812560225652790542468549590203881677344867027459487707518953905690219936586631979990562779408533800814088289189314807268000504430588878843766410797249809757420873148196291618496869643317820419559197077027788754718305344815264425506557751949496468085957610789175280104922241060036528298797375278375939484109816786520370779260943309619012754353370791155231584534372321226180788690637056545048401359876985928441007109244590012472906680809055575484843154072840368234350924201426486371174583624413832402001814921557369007542211160344267974967119213851258892703098238577848636800139190395545479815313593109713425731076659190788389922527759290073465173147640567677310587219133260469982644663256840686378348172066138927092681791838625523321984982200706695185323873094109777375195196239283694047894901865547122306107649009153163192290263747940542620433181872259537135976044835598395513643877816247482647218248698219536555982455688869837282579483854266041340449909431699811030284873012107895827999327429773721271055647492876100989938418641503420504759409176460729838669186982936918525671236080982579516539657070482874789238398196489707171743845335779946685526456442820275594045203267230838158613068982301177689527386365960335769500804868306926734948528305682478059314239692676987065567799193761131480861938999809877588456416447805709231159054282853061992531013819471968409416377786895485557508021801150460430414676447826802067409643487214441356039002263550663631101083449703743149098051582177514485463229057437634479019216946328989461693193834364743705680646296960434199476172529489271870892888413384581807881311886011671619847607894161327366383747908571522552132939098408811700245966474819531475165885191848042473423015261997682874210913308067485328666289929699035118408465772755783041835038424010182527891693923519792943239381029835473617223862440302139908394345955453663613124154457429063537859201621161514978004429124167653875647519490737574717660456672299518803663183553100681578330604989412873919244328790301869868414094804622391660679794773161979605158558432850812632652807559443462581551494764591273134634443029455496000538040622689391479759970441467823238307564835189047751720238800790099709824513963373860878705840077413749142836450891174998872616105492881526653973043669819921747025292825184112331441287090980420732140808166729550851955819824742066123456445590760384600885093529787499482660385549283041233954971591275451268780529659598441272911851199558295172067077563779251488597045157985825055576736282070511085227759637927876485048888462018884674461608161780668771890944962720685839497063600924126999034246484283793327545233799564077910370776012558060546740671756688897469388498383587114758686568660556962801539249934339684818289872500854783271722350962836778597353631715475922612716979247410638860666371918578515885503515208494273367545603144950147090692618369355534652200057608430539326210856086524322240205785727948745346926722986472347151280983899956622815186095797407361779282258388762752719550983780581975650359910332944713262984693249621511745952424520341648713448855727756560235566031067120655002084692163980258267634368466132251038641399034059255855693628637344260737067236184879173286079638099309852556306635080172924765869328070549742875282849221401745168593402002021142722035837499635137707706608715641503952416988339462984747283256892909842899396018661568446996703339552347554832515436193159219214372007402283389544334227522533134481237150847699963130304020851923138322508660199682959120074332974828860224236178704922581942786851759269323083743864479985375835641992804829857917439177600748156403731635782694819839620191598206913698750913331112215552949936901008217255187921445656498671747222040821569818169591397396580086171337457303716295697506612677434722848736215818932393262446164089755572138488918425347254913475117622286250165798437962175542480048007957925624316030138590609681510714438178090125418907066459983791369423689969873595147059822561106093234329922291732033376448436451798152983213749157920259975906782597719815481377058960006795371793888081870477303941917739735757690770804027990006163634052286312127199039699495625154166282607046688480766623213714988444092719775514927719412945719027679497688155644442949712880709784164338966473754546478404089926507136494660370602789292286933953879720618001594583531698041704456680665045350978617688777980502587115801751900689522049068849096430593565095250760178459386912762913935760182697959082344541646559964707607205655411810276628663952204700542097110886571450690454014751886849085250184266551528206338069037831788864218476411450781301698225026056317553611188409999247921396872466122399505309795726109162237941512709844515375584524778976638937425643112766049826907505522358603377443522436729478120888399830111243738198315704194236662239208158375754280187307794775495653224294273034010787808517694626064499287392701532245092295691298236449564276676074531206210016652689141504544787698964905061590964321338462231160445608091574984668190950683941286837308269221633966873026387332845038966873391864321806102396395155620255952660773202894013610040326369171659517911815263384214150436351770940288624997488371992749804732360014868665491287537327942309127781610715290293956663817243082086400865852614099494269123748380635404544905429678169300310939108828067991756605024366301410098028423796223771885530031893477254009818786647911314401781755072908702702684844463947801999553299120970462516419116662225299405379851483123493389006247561548531310227854372417820055464895708288154569064121191133550762824575589701368451680106773514859549444201685697622888520079787785176654128436919405179350675178390712393978006544500380930024396400262849607803649101626995378790675415212101460145116432609698423734792395514124417224287378651574804427685506339463082048460646406133706484077446257883797828489441310226714448739145916985749315726144403737630248820671966360893041889719492031221567887768924789028540887863618046024118110955808367931852178428800970191185368337911028273033133107690999986657453040436715959857377019805048623047405926908063953906291793462213572234360106503785382294501824126313830562809100924857313481178943829325375276167396083245506937242564091330345712579449629919378949261019005945423469742262670405196610998721168216946148266207002612353668051923515058505809117551552566057785965605393446859932382061097742091730326184140923251562626112012983276206172067892830742001229081480414244613418226782809275846362425028584058198289941498787470282549218282683748707208439384762626707247346108493188885227078970866601423884679831872770029858841522695781581675909053962541711910069098086945657791898967457355963351191006512010632916967097210329590106122876464025323096198694714277161444429972731696888325127287053976249837794147891644677174157802301886440421203326195603151739601116994826835162733864846223825122423155136966173450910572556237651293448883462199386700379170416664794461541635260495891959190876145059638175010149182659019686400404408165484209143831724444138657550443419013670213836356607139291228582209008728360896094386974093956310230884902468269494628379092167751302896388338023755686059139552411461203520389482235007178575953372878609039874906747435656586629061257176730244460987340182813559936742216335674393214807639259467347566072588841377018868822403791878006781964112489134680436803324144014526872583988706525417395243224497356326939209525526254902717685899405406188625391403444824764607265293746838971766873967559424444166081374825921250338770979328149147073904145535094557043756611141797707496811514776950809467727455744227443002338065362684136360671071993330805143861164296503906955930186282877754192369411653179624250749279740249650470215565442423300314180031616742831232983666042987634113269601589647858576783569422561430545922023561506369604502978703807880866489150491868866002315376544568199862301850763459275152020650966806355793327510238098973216690050201612895304660227376685625864092355184455461205649253055661497941290590450926321719382143258090905688335775505971924128990099089436383723006702421050726632417501540150229641045988201477058600332480531381346304203454918252249611323892001359487444178017940905372973351705359532652067491867198375043122648621149852995036992753621193841930208710296639053673112894593819516041764748835155362979347611840790587489952701478267689888769179259938721519742122276227369998916396368077965708838634287193244385495285218016932577672431284585202944994658493029288125344342661218631925759855115861006315257440804329511170000178579123908981023243705577012884701124733218955818450693933170034921460106502277043334493290755251147504654186272226295853964982589302692671995669818792868035676830183294403384702828692946567551506259515456292753690274695468571422805769563513485884226234642735516750155663364192489028383387610467690173409069326115334409647580216429657219692177729445384400915985801999202781468797401690055535894245681945986661798025852603858604596098729310043789127712015748484258321619355590960650933761535957457588937567303328213519554459689937607725638653926137897437270271419900407973581197295524457382350713015123310475216782188300183328625157353425680640532670103267724253585909775876031610139498776373861758425755416647192149330710035646932179453929895221580791382515404719669986241728792970788861384662114368690753089052220413091376090461737521161871483341992933093750750268628338621307897656492652884593922311725762653133935722673699054102072422843097244282277528433289053377436316326350974406226657339453011837480926739981189103951633086389796388820185904223558337517157504436124880360675599702291294407959826996799981794241138023083146083145704448043630270419328981550571929065455969701069753112514010474348632601090421091816585160428625751213179973477155124195872573852113402789410622789872438754916655095857593466521718335401748862809711258680826914421071919927643299008919954788054397087044396128778429424835630144442543483804907323470267638099719400579442094895145397886986765096138718866958075993802200757554358627381780544349503052705685416393303917109952581830848051048794161932408046731284337693690674631459072575062101387938675408871767727042043844789239361520137482900388715152336824977005381661954207261214036213224567288142186295032665503271599669561111177212244124176787121955882839853961697578868008231126130655143106588530401405559698122425371082439176564832592679342999444322667491490539431732847412758023914871249775627343173067198744476756441729180654844410506394913185842038972914553207415493057988645776522334056708326731410151749779408074433428491828917913356352009379254808263567497794336915440652237835999657633847673301575778507225936061925240537903862570865660865882426398965334726447721253583036743087591388499768417976689851124829817073356998543236048251815036445155859060452394191306158911990385111304424175383597312519192341952794013082066990144406986125762917964099895935864972739452478480654744829523562819086651325661379759588794784911873912999569471157120788831569243389186920258694058533210314213672557175863995777019011564539625874373100058203664477810965474756523804661831103369186257101651663213301621977509980969689545793649335239358559321685780378087109521918527223453136887333847271695282814559323081610776559582894368422395414076237229588676343936816996593145831562223593568921282744394357187335286348661412040760809085590532390091417765220402934776766093717383691231008139491704633077261210208012511627584660314083321818944402734020706513019386064891166676995566747057062206660087587863479307008438372895867423430880467099712316643539243063750821819161046253662563720687394335777182846747621746226668935166980290026014426986818118412224879084567985641288877385673212399107136610708292314994759001439997782184774302678899133265597920158093863874641625010390004819733139583403805306523763280768094501506736273481718022184112817472453702488720961445325045535568250719500682348429122071514066107084866168008900943680545011917730645216930325473439120889427589551316918761612028395334619124793012141974711207135706012509199252289882735508547701097449677617144822684254248738154740916064950915852660290220657696988722762110197160818875230329699531248401231645149582810548770730552670442029661721293696495715396078871549644257777469878280174927083456443736051551783251568409065104347702572508539152039665343217231941570484134898606085016186792132215488891813634722424835010777664310268672077440656578444380292860140419652669084792207493980414630618387799857393680254490255526064837477799654278314228253297102869611260655562766067013268257171322917965492547963042945070865930209861602431141925260318328008502902233608704858376904628688516741604203119692223414750809441788704655448906499550446159841838794321249210063846563495566024640047073036216416569050908997024044733060081900115736495438380111813700179896637693157790928135844390021866877397927350524731626598544824939963125002528156545405615116915004708299042448207358033701865261636116040176468090834662654331178518989822846754008304146483131030693241235665421423149034092490038439236157165888769555154264396958414835084903826656305196964327437297292862885572948778270197236543706846175660635650573674486259216993409509040962404903454418743073127576349032850106018627071568230660822051949750384951087730571377261430159523905793154143615504354983815733666914903896440314083619267543477154849299720484531326626853065620711430083150764252185634587826120204178045671789295874499367442442274875738141440357185890069396592855721371545982915892334043126970663133328944877938866718474051079971668407051424424656615518231544232725868220288900514962604436561163627342088709204062074544757996520048227579486342675889729646698023622836082560652366929186425084420797384744485671326315951819609015533856673092755311633574916366238702009104789193879751499476919831927143192563930283038200253853817420514685755371233562606206396648760166470668880846944042016031407443199365261088866070124342790775247833600696054215737779690853001330668691365649843853279405177741313078248849463770690959465218035924928229448381394333540901596293630730159288721089573621251979295018705544739460741548922133621646297548867070720034623534999098842012778508565689065454587190435283001248171387334811166165599548902890132294039647707351956714839054167198708676235409550972865584273421533414800751694981584246513637112472048756431174983405192384188978657988695496832514119743596736379106664224999535203431984954812979794274495616237750789930359697634181682662842718663325703640145375449527377703652029690847456575509467469198710871765790361548977879710467203809972719878005659473121129656722301609256735344183877501904373487266205925321268436952984587890583110862432118240061158386582246256805857958234557460913743541088190315890160324420119596760181407769822926392052491639709329757655710992307414052640184446942385906972044920046955872253770124662084836741563762767404678292229380459972435432761924980272065226445668229875007040385701905046880557614803087160718816955124513830500525065037571242149791299543865607261750521213026048021266193141927874573284213502856979314854913815862672106844970510998255944749424462111137052307316953093654439816487321368734832802926479474765134648268400923229181359075012372294704270547034581822779390998115296783398647396655991844333223737033756926190581959050068264577346176981614672002757230784099756347232917939443171517627955133487918745207461723028646833392720453785619282097525318427208231814559773906323621807028757719741954059323196334938926797493714173514104300871536992822171205365296824764830576906111365724206237188364943765986539916715111172695192211091601522751923881542083103594383108416348573967450615472916204792363637385849741577479744838434857084471761149346815410419428017062677754726680567406462000404481814970335261507644855376591060031920910431718404924862302077491580558086541271885534709661650872986673606615639805577827491522238011970254283842178104550919706820615291458937139511727976353948884982785965480085937686849403242521778816252223694022656585005714408418004768194487624500981339143813643711405320024112286231458523070428742016267888065364822272492035626278982351342031495173411262132051217070548442301756658601755920590602528596057237956803073431706260238959928607661829218747617167316272478282998400592059873682522756921763477142658076215565169655182903184794444396146278906794740255581782518350566789658348043640219321546760831677627942647999414772778306709027468895395993372968357858115443014552765274243796448343308372322191580941579485061417407584135596464951326460601904742434447044949839851466890496041016427244029000135691288965424874235973174687228952526880118139945096008871202027164444157497148164898552587582321392633163568839961680937984857746787386426444438339896741972387214660765074922139424109004668786011677262850188484260658980048743949745118077567134922827719620228041333163460172402452853098161240491253779894586159990580567282601142465934261668188130769640117833441051313777008482396624486486363164884147063189314898070367497531064820219112537168896361055909805143437006022961253424922592515901405434268972256617700768703266021946522897955514164095081571419549707434672372782329642414774722106999456312226477042279483657505177285093493579597457639260179120679131174751535384647522863827750422955401513926315183409545238839310085275723031904003730666751502675706397966169921573728522382430496389310539650841610378459630169628457058406267784941574244786162217410616312578985481784142760045665023789107257277627286074956242255843536517734410765912288434242496333773251990093646373440081994674168511268622690813350094583637897978956865822587534538243615843924136796128108210809200602406433271739009042118939211157521216373354714251163083753542280942821755466601383693091948896421198432884564977477195467017265073652812951634261682588253865938307426734429745417940884338123508223359600737578274628342748032322269632353001076065439123524327926382947220869402932189067129456322379797002111600757699759484446626983813634359290736321809463571264201628478625749792517377043993775840328990645611536155687913421635415536222109320783202823937861195951360491934122782553539646220746404604237840355489981178839586446091437386003810038719127497103659986274773428733816864798066284172442811702358920104953812325600561782764918339927539705432209561379780917956956660060298410912234710638161816274008709525342470340232108333496751738146712969421175908742157779763566229359848786542686153856656086290553138772738106065845826093405010398934138048911542328087069938211734862664476471441267997783395973213501411007940457097154832010886026480971347674626627036988277668902408606028362722236434312320742179527011786067519005315644756498505277528149976482027400650246952136824199164147523271490461151872665545361741925429817360930772951625250729385329763702252172428796465983792085488566489333686947637537227250275138739133762035315248114189179181599580086433577984632662768963561933434520882183972195653713220500486739488362705110097029220557214702315095766109453668033066349297442891216440851319900564560402399906260733159982993760984333095506073647427965666093833728427349063847149316146328906188154011577092125761400808523900042306724293703460501484348208247109188463857394327131397136527313027069974028747378370270539909873917494217747863318830294643016772214215763980276845254701819392129376781790478360018063177634962335055968855503750041760442093232018741549974751110497932573125277907120393220840315202649695122766413645448467023898054550802070712855362901051358388602929679963258504322549201585176247862517491321221398701097105597265034689924960952357660703218804870352954656455730014462042735612242198792961271383598096344969823837520714291562871568322381048895885867257841187722134908706502193038644145465128424189848306114688198603791634262797817013383731860485972612571237699918708173586778217867950649851999967478781364498506074777698312062840533548624852279741854411844659950534120398737522051460308109041715455066626329043205611360240578637928420235691055586087874931418016878084994696771205715939037006517807211435856560933518808896220870705755236294630495055789241824698664338119940821706313079011268012279394873995601362619862445604220232183221947036471592536353634258458540467702930117456463145848973893682092350165023654955614171027977017355449529352330392022582435725698313214423474583650379945833248182008716422417456308016167605453181333722837068916308677048962630213445663409246939392890442975547732603167196598761066787118726108965752675010842238996951307959262288337050737235934713782872157980695922029124750879785502988897511458524547150262680976357716234060484122046582028218160656973772440771531265404179310942862392259817044788144201093034438873328005509570008753603019111235310495286842181197487583586734967065754950698448992423152605359052188034268392498581183813741942178276743441449560440631056137840707911378840249075650319615549467216815259937959063139770875741861212687762610239429580581389433365379965016827189299997232866331185493851453074912154973439165047038287783965152516432726834841222909609685327246492770524559197328636041861011416796009252982052811171422725211414323518216259945940585258135144715391822627823437032105577281961942039779198405583047737426633511376642781632175146639194717522976694725470017896123120482199830276814533207261281256878020450490819388654656726991962444616490575205300715451341292007854311793597066585659258599377887601804149745300028348288204226949970864795401483136907644284695172563524681109734770762080792793698944358699728911013484689684801828969861719254846919613074041645045917284389625811118801975943277846265026661533174275408389972638669200142754468444814588787786860783433487296611684325706257561899181330402049384203876941064328316159103988782912037065422080102671825919779221737262981650574403380825872457762512297590593172531523837712825656455707750119030919797605652455751377456901523223493151645956655028185601297181208526880882596803128830184418609246046062690627115531308065818882342594185008116499183641670445147895849141577584343314417182749188463603174447882846179974198770558755265059800178871149988123447108383446664566607356844507458421553528214826999965856472400919138824328874343587072598066553424330377500571079328103639741921791046326380743976722104110554409179865657707205630209303049488535603286158311819994908070398441996185258247739770992375232296649066943652649429307699271930144569329855743440521492889887820421359669622574827661110600024445685503889383722284514020389287530279848068597694125973215663863843195225344729107304019866481305702105872956243063546855319401640831302701696896999030991399432748888479230335294223501882342429969442522811130105069217476605823844992227943958253028417738645844325745388432907122951114624146667809791433015159292481089928576338166777183051543772183673501785852320451928712512623263471714657689419308215173128511843380713994573097557799456011760802974994144832375255069078362850201253860645880413449986248434676887278737968542952927499159760711307506155708434136903089295299306052012069427106481682011273667214318343929982442840700080855309516217667619281911627765357962533406131357387559244222456798060617285923356723694556645472656773268061356450665601969806495098000765285440173318954282628622439253003568094435327608867385300356236065052089979409490997367018970675541136235800151730352517708122605071706400717604140509402751331919961155548788809431180355767729865437277301348941960000515135484966866558964448434332804503300466309657993541266241517298634063448604509714978540424992796613826147127249892197256332013933378489007108443868948283731109130024733337066580642266087888082454131109254702560196666593415960683293057905713088362841658369108410600243876375347498069381617043481063139809783181775805177482942155616265196319749016877978377007884996312830679087666343863126524652307270793348048413105141404451109157281716296963232953004078545221708520550812000085825434236488403070916742035104645139291801870835912281124790115159806067832075627362614079892855064980672082907079664303900415887679651473419779996150713467722474690539646956553929745024289228880745172213355683593975531153227118041516071037507136805909511780471672936458043928849342378401765743824311557408993525367974144297722960264336469757486169020069791569564960396460717466172243178277758986433155467668036101276090898200407565003527313094714237755843228786623627304787120247074492241374482594812633257504121145972109276682766031757572346739365880990130768330215267319483456659540370306212386221804046020447988210231661742508281506897119683190207883909464034297603081089258515911764719328787740881980959879504221550848754321490514239558531256347139394059810283842209431555058982039823022769483657415293370792600260972898040930058950507204913702902638475839731970705721547464722370737400951799164072437034891286700688714168190917143359693837489611640321560363294247812024150352062434312395607381504697242548929461093804149955884377772769383026446509122422493364709948423012244625150853411072769573451344300140285007048302507728680374139551724820083417765658646027199086093776522125940122415396115258232755313681469987969570645098554166349164316710058983564438607025131909778407523282172170299836100852215807297298378114247414624804722415482280147911554411144671178938501914588910929876872707429279372576496750836817069587889185713520648780005749357839259656460838313667682857273827726854524805012223304487903600986821733153699123750780062792789819359111802430100759193251620717134955186414284609872837028052557775426984439430830300869348163220005837503552499847846898439239403629001160211746475623082585961938416590175465762879622501221381179606605219612091265341104515045736598391123158741222075756044796217529915559536786272628094382774065440684745573512687961755151633066009548843973332021302796156877741329736992753891668813915770807631135304080378777327484522524149403932561350376512233230380149385205917036513305500241369818852983108684696253913024545241754120896259866108903877972025191047958447851310692668983213695963765814732950474647226473887946609801943894463337209586659819278794997256866089930290199277955854632874383910028444316946674204690965330031744145624445807958754297319116562852527905272313490852610955878077209572563009734430497492630469468922438320737176678132798865476357854370733688638171103322453661044224353155002179649721775005047981095551795788030314754913797038318659959638388258252551325211849831722487250136577225282381528015675363367676946978778740877874903793085401275314811181721665945770974527824614811818065587414951198272609170274189014609214556709765931566126547357324417012159277130185884160009289107733308305427143045964363608717269028908886986245086096009306988894282004229203734243643594239789887539732792168687108883168819419855900206139441871420039590804513374699920154695804433451250903756803082963126335606523522583133806724243150130354600631783614952043136422547932534510078118402900963425760827856961461274843556145801998587484615092132164815872933537806658644224404032308145534274326350057041602388259552917310443605047491890950734615105941407095211574153879736989743680052132033221643534706876081830412126077378933443787974596956912990072409035123839595807581680672820358565500824816168325831047172864710338634247728634242577381864742789387490414226157454021408360671642434570318957295118074703016632387049143232514674220176948738875579407011034780435338352858949434187333130677030451441732642905043413678795828507908515783069588687497175174207622144325231622544227904940353363830484359025849159822415597128168702350549064976746316803674277373119370965444151980532187505145069851445368236693053394010820300627346025045151020037127688974700130179666869591538696026049742980063181284036609209574231414855170225290064130137728310984952840854319394478310983378527407781618748929129184243249157669138305983176470896618319701762197354133749835525678443409743437216086297976182649012326952630074211410237370274541248975361017827409340392825792370777598524784004652325845723171000252851761258000152150660823374366831747594632089205392019044854714474218051652035531402451616973753716143102521575122161039697460043280453281007639055085352847515079510565187552970248553927179202507803111254109962018665339160372007703898162247080174993081436044026697902284058535489771636152655074262728669122182075151453927388175922293981485555109442011296486806063436028903985983266657159426388859832265938522890921698746521947200529827545081462877762236182147745908791430276387468180629884633568921552603198926738589529001185573337044515175691816717687864296281688175997886126013458273012745405180553155520725890330953372484169444486444106246129389239123547621275833427799573242540292027571631804427489190544443166857436998521766553448379151601601421679897077217116276079901041714166883744763527701079053301356534843767579209045256198878322384835890318064359827046872339562500931647470407132138057127066921512294646811700254581831813893789823014305705677199351766456407183141204463317165540413218191433881226365130634352584833545779138159348425999255382976300768016022627390640722870939968504553880624240832088473725111393271113315241364417166967583594418075391324451592843111201070357077890609374099087144027826955953853491766081565822918585085292178781906823264762199326057831804023805494650907675324618780166239861329026161594654731676246238754418686470425321234072903872279923040358962221909936613949673389997392609624685718870822805556801015773404549419648044487171846619775432325052414121458618304807764907310657387046292091272815528825176556620750099382750245034624523797124199734283744754262963723890203309265945634094766400426387143800024547980305415952999787330941686691912487013065807810288657524246645686009013120960131661937832994785644689174967151398192278372923671685212431959727834315216588584947602492662595096233171840333397388529003018860195006552598119854571160770412545614302324113324988430242075934446145009231469744618669229015976922482567344213767992371800402330685037978923464004550084485118242341367807083986417077570215699042827961305981319975070143532228660162575575048165409704979088220975407459375485498336932861629298775773309760051150087338013701984231326535615473430389274580210654717915686315618365154331791877009143915943151222011216081699607506704196886040439490246112744571734293205184154374324099207458375902447012262448140180053173607048951490906188259507926130722176117901065473698929511506164366570230594659774002575913984873623144248599374119346185196072570294965967982598635225442949237545105572142083573030032792805981248859149952150425212213816961720157883367956656422310522134829343542133482942899790623813466565111975002206901143495802285136800142277453253597340401725475526323742764675097295637269351814328742767967191506766093052919305504640859865261638841500815186696075185101981288532130264529008962137257404282551225877783624697572107937688791770473671834508382563951547489459948244339993466400914336020782189057886742111125123701978143776356203156170061170642806787635823569645579801044593473320047923779692229206519542882986258060340916148325020781033274601749747429261740526874440981215824317458168676209392899234160030706760235225470167009063835962934693215346159327119482633874076317781003634778926663300888522827152145231296949396754844013380619206602036812599605698902151009738980150995863518325738382149862875713378584453362000834822572643178599032082584863600421838049237700526063030431248948028489214504293660905253569242977807862353345535040930589063518166646979497517628560964822146820340455713153073169633212231461273935172296389149563215848655892890022339332510299287388915291809181181260162815298963230200022197272690048953122286084489985621047041784259946603602284176185187398443688094302226727481906033509677156816498525514595878410252079527586900430766401614963980463648654154414696274715395472505255641452669426919343015775006799109585375966377792319324535524180015729273128389044263859349274110997629209193805877998006713192023020555031678835525803333799976571835993420571808790139093289508937540121859792089522703921783637846049670592073470963350254559996271783449090679260866036250371780706499731528133314671225696004705832391150364452323635751272900596393818617824703771624964125797724376646454354411625819224407886350814271499421403824171860068551736590142409661382881205874972815773656288828709308162635316762564176030473089730416146833319183047731905469476680262803893087203409175298800147361676529755158224133821280488924548099259530713339588452301074374156788649267119991805139042221782859669198794670423909119874160629099191140452174808808529246033432186788259986982805967351255100570012335253128946911334501836116088180765816065377401678913392350010123637119393794261881098287355932616821672138160266373703308923872200859885438433162334059218095833461276564694905500992924067457987171813797244025075861105920902499758828966375361609418555445148753271949973419193390008103776251742805985021944764550251741443493717551655775519010924296897014677442299613379405017476977100653782912779658881513077316947178509018886019444042612197821439768632188058471052283254968025681139605269372193917253490451293826526006552986792819772578504639213417992506031982350586544533496626458351832460272970354961650572102208084010091013058578015245032740714415913957376294193940014299562584294203641022458000590703293517124518903174902337641493186575443084266595991645494254676390329668946917857435956277317524059701260292871162429960153899653476238525894501587940934544513184182607475925592267821723066267991055874986001099780673107117730723960496493802994037185565914696821917286408385724900462937194629915601069901153603624601315408956052778635321740035767144849980724172028321702641169648361254942621592922441624489076167264874289474603144157460560009674124939328555925477430425287239238521701776082739562985837802986880786248573071691780269259933474507900482812364471854206242499276478898486314366720544618983748294934274409081739018066790469839012606741984730672966002326627378582794025565246003418709167836710845855105470431804539613641180985452598731667579204801315143602805681205644393886860492428203301172926799698821156553114852548744962329791225336642069602900306744679773948274392145510521841512511996933152365563658274032244047669904615329499933110205753255404917127266047910782960349195882201113389853328287978374205772293960947437212476422279648997495414945543540626416398852619068053913192165058381141350767181539124771776910585537455012347005164043392200869049155451260092866949862103228677056776010751221174403775622533933492988327613409246706252504180674381399969400319291739922603688389686975871665516556328261385658445636310425792709999612117502202659293784610153277373749680009365308582810625326103656373076423510962051735449773323589368782666777514349686718513604974675698485636314394810551604760111062483660208619760793248964855302638946122851545422158383936258492095233012116186651215439560473554273007190149599528143746205203850835824038836918707453079742458957672857530117327220919651159360250546578190203824413761121984964650742945422552489825622761944919116233937178261826237103587899141450299284282109484325494300893026328909087350793302077397562134835826329728573162016387652166322640456943004286032620152729828294295405508703603424038156272365918047815317988327287232369355735652678834172410147131463459706583537523064003225339160783803460739054207867829758583699605614905851056035434816712611779905990638497439971140945303746325305469413325443460616563631125216325025135994555963580930194574559724364641071926780599418828704005730304292752271986468330329553292825373431187990611903172430016307054064494748715301430948659192102456206521498526481194697984055013470976591502157694419966308369736629032858406300863124704113117800291315085554563320668280262734154407494085207406359623731685732810346675865340913283939016637258248912270405726273296225268586225462936238114387078733608794142327324184506314456102939614272277736565611150095258934327839573390196784156012447808330746448897624445283134535256926168978462225086079407138729105607804359102296638521046048463320242509916530113389832953100597117601140759585618015885644511917793182817132395210859331921785841435333004596468607606589659544182483044918462984555873113536147237071478192619197379934839564116663023301686296225666290924063131192595621167896950865799310479010558149147851199757975640440083579668324219905500889730164590159559771464448130664408644995593866796216108690700470518477226534253445900020299872614927251063372419849766001030283419666252843978708199279087900847859086984187300060593906261537069527314326843880046485143247808281670173186415661223583899066326300018999950475966029206153340362732342187623378801423631007268476283256738533611463787539307727580278449580642200803883204157765790992561375072778090264655217778267425445779370807737475705468161422358730414001838812053204667693817394380699081711143940826211816890795225843646849018154490778003691830907917409678782924518976352934817825975044250725832779694814552624651065107561856848848760924341768308547369061268519770605288641787634151919249565097011745349261266810401291020874648764580943378012319303652240103957972191786672749073107650830925351439746502601923416542051722572731155329611252313285159980712700069549068505263569451034041856342162900547173945531361899645735209626238234356003641455064943340089663163983709333678433545119752821751817227991688204089434264784205606921575740436146107156192735721681936516208884622411756197910194843378600490989543577949205484840873547939020337989103110190312398148673382566625539208499840526261394964791601914280644321159092726521898805894543175994229822796372473193121256424175961379669185134949561848463528622280790801801013583101867074026607374622232251313752221887266816468777167973070599003535278531161406923234034824615350604035825264134601680296338832635397946056352054936316053465817562697010452870417031059235466297968862814758750226784488310039742559578279441467865009510307670579828580838676700727821976205633570070669729308791781121773368716960807545961113375894720917467416564947961929844923178590242406235017452932921424532316398615272943741188816393517124113136735098836224652984350761027543023808766778995945162022671826577332345520402602845257801443161965208853840132889098209650940022916033937330361618541197348611757445375254878317044836069823914183470826890775289701436996347072302003751789307257582300100695557470776105429945887541207214099375469950087640357694723226136264065967115355422379773016443144129804539613341019463279773843391353999052917011881248949967891504073450697236467792896667211811411847974680170691881608947139325828827924180866551336799494272214393961086735987977842730995903489742685604621247426217933256232496475641885085683215399841825665679237517321443034498223150269407244266043101712150195294165100739587589487837603341466769882478996346642402517619479485791659293124921822328089650416267803592201270663285021171775825338385498717977286813382818301793065488373152832879468145447650104436033133977303000219173266233496963186069061618267709223853539969774279593001653826759502961000808173784351276685784531428337142983365126977405710790658877649242159645215073310733217957558766252213372250341596725892468356690250023439209297431644301666029905399816149107563553258605831749551234725467619963573491083289360157061096133100334845988253466575238056930340938461655766952674189957067498593057773348793643656112886543119756880754984071881202858218734415001005377733564755780040722199757906924547098219213134174480978528152796955628642176071122073404085753913780885551914611111899850397751843956160077848985115891406916683967024992915228506978968470530044405159875517949655772841043594520362797716195884304550988062286235578584657506096081829537393427132089672543984663854489140489033775531630052890935834873056682391210199903184569137129397006331159963384612849105161796691352989811655498796754507698234541766530863578916110935436037496326640960195752841293994058111156283418558806857517083046275510686956821209681153090716505805195473837716354611064927247587870428276394392621277076054297682280325855913736175588207302370512069402342433000894127518491796637361641361242945827609023564043300684190431040935394302447090669405380519268807838720589631020904438875144122556543658737497340246931277119101266873960940230633928088158175636081844601479075129945191091911870797230823255754340994644833231460206631073370567639864496477895820442515566224635222937993905016763792800537000898792868639402022320943564152211387395588139997092069338223006135233281127983006666595324952254019985738602321838625783724705528974157904537362214900084353248835688554523576001626439232986250431552959109087382386751847338128732633663592657520740822840575600549989457165341212732631349337336516412681691273680091698260430242999327326334705073595798560245409282938491506898385795981235154342260990922689790056755078355028793390100737133512671832472321307533960866677900512120225998966353457503447408977882826773828648177413599719494158935079372954682183726230535277172228591503293042013031118538070353917880967773205387127658820468971850116846036637756998692696737678727796496708681046610087794850813299529852442725581257527671980553991730107794776970876278169228508419894689660786225823394042224886964289129523560901709108828585850788765216025294624878441834071557088774871101233114954976327402959917870739984593187498313152835023955586494465455284615242031476208125268936924970611799155521668915099409695149621891503014219736310049209676559948629179804004107230038117988976983831596607077591178386419677458776701992783758211820598779524096097537422287521806923756513944532795448740531445872275133843744472267100034907221685834825393420368507795816524997343847535415516407658202956631926203539963282802505458245962332725754028492300690714456133113003070747338109819468868969891414162936529200704722688228855003287073719230015050224604501138938227831294032876503236065500650610654653658907068195379564416118769604910765064189832819102968411439959234500660843605329569832370060658974520246609165927587716285609638776599823376053686979411769155148758006995434409077636772273112215943215632909356598554571186729033712299108559230411428856037674397032152091037758544352420507829282642095378115583697565283948248832374793178406546285749697756400407993631826372188352305222025633405518078828675032657074237058853253825578734957674306490114554015765978542819512290954193719877455795459580763252930182752098185535231555170507972700343603115154381388458541992757212689608630933945115861366485350420685347655719172145478192387190585814485243203558315822491465763512473647386291832265520412819831788524305757178119807101454119393549664775391106777373391728502685402873568308101857309656939762070189353585385682596423928390527213781027563440766112700462329460364433191281542424604964091236212541268786643572235773239454024674846445013144056807277461584240007769532133302505008679500249043295780156725961414235426368052793019069370061256870635131992961541126742214874900397636218308836126238211219352879083988213657992994613529871028763561165532428581219101327235067111032986565417497383874839494195851618655816454520517436608483598143368383547330219669333931738101423465945365867176139957142881315187794191523556096944613520091323989445347020210554252795944791962711068789658820163932063892007766800479449048828974102744679518976561143473986858781767787123597261723776803785853365732194558298408318089917844008564521883907889427102374486420344960489002780379569713436073895732736671383108481526864963153735823418030035976792716855016341530680636806933760928075191025794541289909416652143116325414815474254895311949756427383715259517063128301432158116767264247856991951928821351378086177905670983264117252860895001478807934341741369596120907443449856107399155209793958271365031755012162704679751893516458667737571343766776355964374884990666472532627865529745078223797377824371713718214815756950938186514159982318954914168708023116263063120242304842578937004840432108977635250460906294265807202006766514399746592042103809053832690794252723355123287734717882194800966391337088830601479843334161115793452457386474211987500191194021000585248735320201845215378964021676082758097568906083709631713140858906413629057759421768679341473590718101103973712799047596377614006486856235572094538437203137441219705617265725603419012465227785556973360289798025673100679892227821570204324908610790974203701192223761160007627711245617040127377897244251035653565857794020734879932699136058124621531218321968718757143008911907877939205669638366029264205893467500862315854482106393759473748219702910212007605161606056314011637457778151345938114717983200619765937841415824691672570514021369234028795374175459447902278784546610464570530635708620287256023481173171006983609993437942994127194937248902139149731039309268601363408223123990525667572708521812971025688985834200538168631601273468909676309496137816622072096399245987295416436024103547769299680983296954968630200929302725376023228646141349164856839164688810573348424063387780977078176973306023058935581491000787156572875047623573441097622471048119808565295045396557849131208718382942572497889047299632271119942058256699368379915809704035372887861730622858753887938419073249443472261339408940167344454681361876017155107955850056269647357784861437595756237421132283978536579938607574671218503213062825420278643865249637889649777303616619740898217822489718400905123963611643419291314664659358961416748442599847152146496687122804152235738297743672714385663548610968966441174071794308811757963362361032227537769656948551225353676482620076574307678524974549698241877831533023943792234249228527978629243102211672404334766737609479295634664435974629572530189391637967388849327412667632890925501977977081007033806688187371933564699058902441809809461466710159874965838931365715449704528879037075219966707920097638792446577967388715926041614801945077792460304435857174338211631099871174127998791399282521852874808841696589908119374102699653631573246420208150617829233714489687332280390385162730289594581035267184837290891727955454831817372845886349956562381144166538097993028647276829553993733566607689566406088742957958429140960352590320484328031804273443914540207698620023386615299154344220191333290758122352195413510665189908968057661652819579332307594624418779805038009798659941142078477755997540267770082231376754999539428118454894697935712765191157608792159322794921844688964161520771571954159219341332079301151076758630317239977089893287612828478236344837839835083455039875086142298415342902407248228648165069716972593883521805124920991398714021061472004670359969726425415100512164255807300892347324867133391688433057595528669607152955643088787800319269353395426997395039971013995784343170693549621700491695995213376375190328142334099438794948943324579282711451873554008607180714512875931769330345024841919802460636490795686597945886549638076628133823469800616555232740621150581837469443894807433324612216560864456177001534123638615169794580730068827431260098933435266538803132641823727375796913423503135639670392317072395514626002646488613986062296145005106986989168834062809450008318956616612302933062237447783063462887691600986375427914320831875902888851558952480266056058622573837730278803789767619196288941140910381913964010201237990222516157223405990653879958134532183826606361891038266085586688167085775329256585348633785593354160761479840890570940893712377652726117460866081737709528285744016197938934644888963228642458995605950087978727219083114066760098205880359575802262106089382649550091461756840756864484013389701054897480081391976076768040938636722196625362212799072963600821314378819940055971993414280759472330180862467148751512120692862874886467422650073423190412734053721296703941349134058326060314894348816671834881946027059752766983886426442642861670955901485246452472439924562578775520724816016342153924966917284764373247452338397992738875775219099921926655097736941280331826225293120727605152568595600372803112883843017689290863216309069095130892894092108416710501154851315888796547026953664803675133622954530734636567776422689716896383862860571353650233781998557475210437609607294362412006056745506944085618777958778887875172851454404543510149317115558971197494634879685245157845594367147622102726848878546520416717430281839319824865412920804468778906079755553758404429119516832423226765457956983145985787729697143307093101889531451373783138470598202480997827900958881211471903904983927465756942447548581667687094182312870760879516709616232380041821835429112255600141053595146585120196795960173495465069875988807960695044544384808589698200018724329257463955676361281725764601920288658415546018601577958626264926892074192997972882467575596782597973699901804569440084027130598918484434021999717569922197416876728608986273058458471070444695168340965461154280464325469836305083374143618986302062651505738677345141060345055177484077829528683531510996981782386880904097628425083729001519777535722307780878742308371626866866894442868020470847834995223079540031607159700937547122945443014477608020572429602631917670618133890864436949362466613235405274169147662663131946265906878208590907153968642710211287714929248587345674655236790483160153267804281183136587997953077559302804626520923842249780129275464243015912283782832299339385477850646336195212818524345299872823077374267149712615555325548825063737964563034061580494886217824933857391826970674000533472580973557030185141491970414145287817184367192094083204211642049582935718763671006699194093428364608400347997494641582369684567912134917027079179873090749282195273373790976321046083697608684653279934023215956644155374459219228917200891334175846399015480873925469415183066898438406550536663316116127939355135211550162374954828875978122709199548278651712352869189749595024476570009024030418438492380696611426911167547659615965654566432774750904512968005347751578916798669357091987665186510779366161537395123053853528516885922604476786479708145353255940204554409159300735059472164356963657722540912549503797681055292313965245162514727704112656063069027049375807033426496944542334031528684334094705272303709022175461325167999872137290944835870860488491359771620181713411175726134271896143707013823240250316883729244346380078816795183263047414676107313843881851868751454901049954657587350166844273697766146016453229411617473804984765658246972035845236008330643474251702429709619771745026624370157880869933255106880340838865972973399840805830536560895751933664805586249860991371571974123090992257947865336030979447742695089081628524225052174215256387704236648687740921252715417451609593877385682156490293991715352401707745936941628037652651856716246453229421609095160542401936167288436784585951995634684321698287078246193744670112162610833545293688899416577647217962795080184240385120650532758792568043118338829215463217240739908645174894970234775291069757362943650487238612183589653587057884624646179492977968756049196225866229596226343825982479830184388340701905650314382089138473611991126083181644842890168265132423488402112492118558867020771273453311840586981306280734463721541980936408714259752530355019755417806561107822912638883534194175667431378846877542663284864833832341748849939444895682073476790344301775555223651969139240947364425318834481771142542528333857564450125018618680561375524739656269177357982876136486947139486064861650257578368559338634438136664964287166085190051463795012748762862072406862491324579510916306704049330979562547411270512007382349424655055275593262188421260182478986986306613402359031203382522579085211846237001105264698679907888246780035547191085445025352536948567557829166955913801783123469076243062729814410078543341371101715403510445440804206623464566120278112963173273849829668659383080747152421541997235856361555204433261570560252531394538770156518826460456245403440892689314747262816919176522265923488961594435999491598196149598194361700586891260076406489612632460430188187448908099861284239056168934021189340122283824302013769336035776304124951167476539265185711701817592081246051211489469148414799932819287008777548938418086717443791684605972534319366210246578452131523209764091647878347794971555857180627652617662445867007963543183666973783945046986395752795355670478996775154179232573241766777144990043117705899142941193145854836639163327487346872611924561940620728068669616390793478553364134740726499697443201230629284666980474673686800964784529027405122201957898936513716924874879342115803010175549208305237048726235829806699618695719866516518238775100349833118254580050354837476255147249260179908652907267311435758996908968261106229841552207574753344815353176874541368626535200706493037373552873565525936131857863203880930577561493742443850897909531535487570783830310051467856922437834436884945809182387852113503077245372536119592093256399061358895001619603231585170037306034594380061840196847068504447497273618920726164640868434714057138608630284768450244482980981241048785474995847443942576585588637431973345470638694873260905317939473857314194964618321230412896225069537422861548510736274141917390108976311930925543493908148021745291490077981226863545742366451103659324220951086060304598011795806748347094275238396467369010304067745076863291809352667083082504187336845713414453019112067965764688099310017779070956322462077434681811665632162850124008068678475014910285822985244137422015615896512572019122111582719806749567831079959375266890698816140810547863933264315941769933245252969319681660818920424263987693066521891027033659820624197322155164163715139558886724026616454161088117500866038011799751320179542930452493584425053972135658555831589262477425589598642986650966296228072284688576245680396479679248014385674549810273526210457625474634255029839682515260062086302957898326114569124338849072974251962162559315610662744140589902392366193746212409301197744983704289054642029025017276658142378265445677090132063805445846764070108365693143608705103967932144554252883060705248489661328316136879969503158437919114596420535807343071832881606682694067620666135145977526907888297532718573148412191892018152480229853253583029484249964684531784525445366006045987923647371925397378241975786118036753561879389945222549162011494291321672465933631406585002458502007011729787634239395042120600890545787470317617007019611499458868649420882442272431115335127959317963534596453106358009102973303105310094665920310363686230146420673591649719212222472002846818041306689266426617074402619518232771866362913435779461763900572692224262875465099612189089299524604372283411501241726271102065654697696609646435257760289366478924626803155512595151114384143552632162557621425970292338006956256862462847527385037097684220102193374936065552521161698695822346879836003976285136312867956253012536981283049889743031575819719395357722204558893921206513746429627550967422092407716479014791570483275238298568440149620266065764952330352117940192611738450141834989280621835599048271568633188999182898064670296500592143081019778093323145868647187358209996381375723439987010859201519380428155537562303202200202712238357246306596900806441906848644141463816047818901694326220988154891248083003514125605288617811907118719137872849309457856236556568007543987530188062121459885898025805059191695505796344078101553726227731796679061240420177356141256808227529298369519624580801660893474774852437532614257045175010941081322774324914826201233559630203283889071579083415448653019377664607288207379526397953050840118319539508411078604413089030275673118198501045575217494195881649907662841403582847669533593868660728428679180055417735727758849448833336949726358570749802668946744158590259209723388321710918740851229513373366384564959880924746493769454557934761536016240129346450740968910823302140907010243602826147031907871203681050915927359322405774741135138493461651330954865742538335025424088236078599873690074010313383025561045344818205407803003002855389661192738127480353864873517056331862123927873279379448170373799482438990755805757755123793542549064972473772279399416194888385632390037331623173347078123039862540802691370050287197063593201418029423394574528856206382212116319808489028324630991318614375485712722469951136242153827523798439010579130394415299451533496112730004687037656654862967765112859892098275971975852928296833979925860262425287286043875297620025666225860049618758737195229558716263644548803012646856459108168297556287041400929896108592735027343050849536411178791133470583925182379259814243486367806594119940043731546272022285863039719801384979594541258135977444491692825290971578043479213641941731610026665138541077529669341312808120012623157007088691544386528266361502106335513847418870238517453162375994296692682733303042654569441948868412230786412742089329133547004720212230841716143649591959065130820150681612763914301226998015757505960328891346772011290774229220324899869747390282638874522959096361781956545774895325412222194515177606594935536479105632366878632069296575848386147408975441359632315016054183918103497660940788317236821998207447053163460292553960222480430096288133711214885806072747081635997806693740964739347266974930146579592709145612300253792594872666724016075283404250185580120314154464955587697777311786172271464433431367054725457383892675333722844072165533717420278118238365352682632936120657757175843042943924692758474057074744559316209661929461210420398401918573470022714956334340264720688278432045618725458058004437130690105815745355021435012144493016123453863219653304549451631797591262640603020184435366899144201242083023386587055739056214038993787864059264941834678722774645312375755088679160356056618700598813917661587519410352980305643254057715347790358358375722332663805586148693208752556569958340185399288740378408609623513598904390877590089507873884885797506133165816520491286265690646451577462958844732745614856113103370619676100250433437652953187732675467214171298454265407240126488753027294477780386964880610281677234676053810425245993372971741737777868365749281942874652503384259422405929046874803759739712715195805277241916220943492107913038645603593750891919530844874974448020008954425352667748789528204699308051369912822685416563152933062426174605879427043432474803451146861933665719241418255942407736283928756303250171222446247432220629881107216784611293506473333102712433428960437580984873420543225743345430432454042338019852541482789560988434500820293773185995267637817876756860265763213377586390168903764693783279294457633428773248684170091054685600317737682945546772335616780283991904990636756077635725240534626083038277649026867155559376126263748159538125973207748256108139651024163654117505070653447844382308337694585901676427894545779809680380378367235278128500529301526760901478050186373865428562134441303533023656014320263599911694820706439442100900303435178791637865210536419188412086027869627888422476651323763490703343944421129808168309957155898411608976610767460859389270873503347133773678678080140775904971880556760386333000370473825460073765666102861617323132756685207468794348033334833674949226500216656399738568423799316356659494788668179956333793149924640591487714326325156354602002038316515222534173387588925746049243201180040624628344616604262569933004639732252989271342911309906862431657683246466174344106208766699466296124235259251970739742414717102607005292333537912288543512273884102463471462165428446926483007701909452894442352720561162219957942870338363110997414475467119373627521143790336901827536512259912934021961365199484652144762096214509650130023764882209216631514473092413237718433039333683864681548148468290505062152940518784278206168702582940098637239374699035909787837289343413955358714364578964680001093205080917139885761772969918490339976146705012338446110057679141660563903034112944468429667529516520106248914759798806849344908575363405144613944677988459677538310241187733945488303509027421082930535676825799498166363585615078705494167594007940020331603223936749240063507246029161736680306935431841140019389479894980049515030979291550198337247143958849253109388713258086644251235564343647635922236605225025583117032195891714204654109900492921197986220638015498527419425217133494157570235342205495753419971894449372318961288230649077828177225442446431890295221534878471324510347035903215329436541823473287278280613286373074829587134116467368558142189354039435631924542652065102643130356335912252513919608424471967662100045449633243729904659491463617901454478623590820276717759438190747993545646202456100057387418770749913741324024262085375800640198921716576391533378156872900950588688022948693873894617621441206301347736432934091629191204083896103480295415975792372726794724862852898698440561132598432552531399851850289578807191974872939534932489079420937808030470278980334366525018822841708345407603172075300188017675978900084133854653935458901203016328550365382163958231210900360219386877728601517627218306995467708455043846500334205150651062599467902254557761387263288270308539462408825171658422746932695262863553489260341069313740130976021227512973613567073204161963045823229605477768770865523314191584173980243307475319839114937891514194510437640407492162481601675485561346136208005936185497893793568611166929186120051645260838075591635325541636769889754331068488064903141455546710451484500894621109582570226276380106309755203571157044393745753616309389784505742768699745592911729043046868768989892104887417417794950157120548710661160902614112704248823645831897647741841772896782731637428640428277777042929079433150481750626502543174598341776423869969308749687292367570829934689351639870148814669127044662961790285399525226770600416657919362684956815335204007963155610000505081714451554611718326778807523166918133577664987576025397692651579010287580967453271858522394490573512905465054063557521248095556359625045681558976113392645220295709028249093039632503012008310388287032107084106213741254897203429030303438801273086440092786211793296427455416990812553788969325572168534823907031339777543516348819818390503604086471871861743879740819518481586153817928499006074436008706827230506399133268879968013778900184493968736540883759182129049793859713561179180698680257809185389199028030440586436727670674399226980308819600781102528234199181358272751234444861390888741927461437525413686519348657219994417576303633354795351988846129240329226109623113793976084506594590194076441140037641560176865434417827173759804406386531364694045821452963181542436373428432263758155751994534289952686959909430655380946257056834086848019567938169255677401595496640892891207869694058242401335147040628491941122716725514900829046044358153809225003026367891172646300208520340104616271730618445106527413943753266221480930889590851456005845497232479280951735770354317837127755199290446383051094630698958602010206295208135839599289096127561633821466115551846286474542982116011699380462640397176375293507778947495091616713473574844225268137385627316504736668444997787486005428232909017169186331291915099705226572621715912093669857369889287450983478308752142220930646336349990815030330324440740985391572778010978098919073425568599774667549740820729823645010604533395905472098797644268902849125059992716194963931170851356631656432716313061933571370016501326121114706988468946878277870932853025421043470627772960821339564849818260830487086763999559874981810939715029649588832203820407779984722252215066496723371951766778082482434016856254156546624327493314757278425902791942695028526300409150369612526723135118106347972637274692098099475031880680526149144466400353461303658170519465893365517334906637261177819997572355479605379000116332814710924885834672612090748570199554538596867547912782048183128780112728149816903192324536726995061637557257938182699896623661438655283252314835143535951520300256146998382159241539357681055639360313287180521523363401467877934370185518198653292806659607699811781779292102492482101336085492974840345896793544783338105703980725172540126342310197250081871308479507905561361249485910362956249937330491648795240235729571948156033280760535777591414953982373559310419628915561575274003312273844480592616369105351578159320826324965936133707012871034792945821392294112174773334176318217974973182959778028047066483371482597026165703277089019745577109649433867298221105503586081895028814191538123604259964630991602347226704591827736669305353994214936499237204001145658540216930330227968529679208454610375983217570209178505288350189528677835631463563299320490496376942467492293940508691621678935625299562173406990755868135333617479720593391911631788754166236252713240832111352218377027528987167997997388125236961642477480776724769415113121036382332103198927052114199215910942110559258679948712796762731563379692499177144397097834208911632390430811293404349780183644525752611371365802375349371720519365098815979542529641766114981511746472957034171125370784821026778551952205999194159253117105018802811034160772343816598806093062829947486241109810821360390969358759384822980671399108666190020145094673278129341976281033925006092867463560044934005194577284515670408098433189810691490704941285672067576697220952736358984878524968634604213290641314088394607452823563968811336045683863364720892951644006774897270897185753183743334163749856597945952144625185643549273231478306637612675530017267702760130970492684900501292786353581299564618452538954948500891847444611277559638804275357420500787934850383838535633481559073520153374631975104050726904549240094906490357286075160940100007562237416005218975972596889401924229290170087926052056660907522699077261033122620714727616885810650719314328871577320397570522852357673693224535254217768779195058082323798347852733279480582131728166750715026628419490897990267065942274862246732139449125550647455110418766556967857218392584940453577537625577472136734002090970629837872289493863202545511142138218240767786354753156074001081152182878047641207594075253626268462707240597125525554211812892502493527439514893315934342621654514424962858690311447839557443891865983395571357075173811496173826546471711161029461996649375676410177214353959961234427053084259729356568091184817578419920743229533610598558477325930776711141252417180054050632195167976955152381457476163900146525497416841596365694551475849786761466530211003994769923549959638382868450648593232992824239645366777113714812993407580324370419086934393017071349557801480887678614730533646907436322533321465675861667559484054993758549127304304109361254174455252518694048644972982957343348253475001415581276597227113909077438201493765361604048822163722703552384672869220415283598750552687747702394234010531777376513718098493773180419733410740684935658788377875534127786294804703753809031152203317382241793970891973481581411885030105908497464691442134483582788988303433914524431471226787153463742542451480013884402819450127822920149332219810214749636805871791192809157092854136756960921248018442665642909587597024730690322430540369713344073018933879356520540319325442551318962569616019911045190362306552178915555331900999078058011626096580528935413603412299046313089719363190413505465082156705627644959788395379904536790392213207737008472065602122881325914713219687906995683450546220197446430714510715550792472159358436686733172720348055366560387419180066051999414565871101283105880888473063559701227836326339719358276379690993819063731758300471089440740263377320191800912081341287646612001446357183885134086945971228204356888249823164603621208162094782789452359676288369893280915415188455274138408287858789280338356548322105011543861757287544772489019443417663373940261218254321883002080831953881181297026994824943686647269107875886009114731704024785660994985952409520902480432252557032895267495720189574044380009381800762231113542338392444112688637682652358543029974511755412098102590527973876903699923018478031914266427423451951106246081771121092887901046056173951149305089659742444791849993966654400350506182253630274195603738908857162313381329402562604807855128099829710756951269127749954376406051113915165876501699187350983633679253274463463950259924016480706422166843078975452032375547349240497900883157810838329802258442000810206797458482525801352693774163722737321010494779788820005592419861020901738852882511877199218149173986999482578370365894155080771339039020377579159847545748643864238838642669572210389251591660158981443614076880341829916932587709337063577797350999665053675275837401138670450575940265435054417239916471053938740664538750803442608708544208417787465384507288030382696910748907978795024000935795363045306446210435715399478766913463318250315349317042630358617656694289700294794214035012821892493003360681468002528556608055423160422411470254386300766951756694183696877447199376044613690528940800660244532845263049249238604388966956235454746274641041778938724863218968116754633033974954157824631447731615765876010799356657668080664033002525006485251062367630724685321062804155167084416273891701009589784354747788946298895264383470672467394718574617086854689877473675743993427768736187979821061789767965717425564126226034822632025560901291498909869798562530719468823843601966868699933045457178859642256344795757020821572125388151474196052141543465203002308683590156440977194581261977870108193231637628365997393476968003051483567162656222636738226276938050189906668188962880511846735810894166794602903986718015108194978497012684299105586292279434279122201572393250740171379760634247318429473677033064456771426996061132343175513001810710156440728398790956055949840225968194971186268782177128933613250710803400107751978714822059766651515955578243752036482843925835217013601522961988009248818206010943015659214370505871227961918519170832548902270533898512487964251392397621314607796712910076244673163899722660509554898333483951444402263172026612198519780142129733231197462093487558801914631939109425434404986525066103549633912865503748710528540596133616428920345893967400592238172554585175819168470711070611644712023723197553975677823672771984491243204237396457807458542038751041248127794631485760104937971603221980898796570841327383100818957442688219577928178931840723541669528881817607377943998167514039917732937606673962110502817531299816704634476838223030086674418318170108708989995822824352605906592266622135598236479100396221999515915296998565133194856565117405760519269326394574220400504364982651081755317101557520042952409371333872943691224417009184825245851726030378917366219997671172245424221135594982968018740663052651674056452992672370517727329240735635998161707613982289380167150394235372552871589384977725554590179848100554097720302183216777286171969022139233215466157481080469965188366396620160353172998031670268086270350903290821097935122138573661307123755939282182049911923634364457024924304733386515709505313906564817653325331363044806882669757127791020272001394506172368017027294103535806717380686931761747974928290446958693118365498524451718204087637318772135441864578910556601833016692492217606591186096429442673946085001804722234707567838911381678270574416926189823687281692856904217231527850541312819982467128784942532853183008541703739042065984148234313756441648871523223753610411659820291919456944895387401255116942606621650984448309724173436925969712682169677176767255482718031034204172402193132186665190580731727385783343270625559448069003642902263072522486752028974380613079284434342324043582395215525530694585235798645722430812017500067878204958758603635133476728766006067642859134575564560550600587038454012732794270975731141075311151797456116407168985989644583404987680172448977147960004587504901778767039326425018906561990560204655683451560176550702315150503705320629362841784336989979566045723776592795793041948559459146442179520877986730731802308065299390816854706089012503283853229873218001732015796961846783731266433606284489189558457145406405167092750046311480108925581349217700510426638477731720926466687812131179008315091821582005261206264853530419482871496795691025783952455157048728582638326637951268680988908370849182774275929570393577033464644085589726637206425546377857757735504452051150778829859380659305001050323533242361102679624743358581057244805960280183886598270596542489416777012921674498418690745519933198517569505180622408761891792214493998673422813299997309353932798874655668681573110565985335986898829347356121580706858105680759633020637163477419855407166789917138361388679784703866285496438623602400372147500727217490060601121957265583559660972725720528387178982915841666277700653093010368132406671425603324533909310652639244051247004465279336403834459853546989567080883686056342935720984096518978839484392399845455250898605778310437048280494578727294013242627528467791405168914322444481900961264329615767038869780440550024566109190531007926918533491295105376706963108315235880225208397693877164732226189277574074328925025864273369153323966304622250869354947491431778646388957704185430438658976562966502984328371221289560865129705178377696589347902486518410257200183530536919189185533680621186491374887788564545810276144052776447307401751846646452869434233966742279334673642151963852596107268498226852227758585410879224303618012500897949086413934829780279348723451247018772337044924020968027684850986235879416111936375365245122915434273166607064206220923839678120701537402135678879673361976967025620980509823944194624035673371092065474979786973490278717323130645290479915357623384944378821618320787484545748627100747653674634953544747250778660762720518400167929862576183137811675582467166359616282399663413345288535887579927194788956792157848079100263369811796485941185388987970054042272056038259397057355852444705897316241229224989734226489091007161553640971085539161969326044822252401667934066973996660660129140638393712860117252910425153579077398412479048787579389173356579174423642088997270117686345697485004479004338029335524698328560281123130462883035820928619698828550322652706421489683852971702994904066385741737876426631264131051838714687426997085057918790471383926010922242721567279607227473922297586673423725860276205487513150866766128936833594142258787319612224821301574690999852161185020381207185897191185286312869038197579412205411276852894120834293282152889346132019922864091797189876300829716660697536991799650873145430077493139119104144227248254218075201504992324179888753767292980534633400927073383164545898658260883998914506213007163546314270796257207966450251037243222031495002169791967111939574217033339038552659861271781260298838533086556346440423422954758860360651442934975396400678350364517916922003361268658516611680149477911099243998690793095921314677381879202846069262528567007491194250744204185001759836120699658177920838170305070346507021264831873713741236025094167111715806609184414992738598474212119673291535026925554622284553500165538023290553132976203450643526163255066819774449152889463872517454009201114371344409241403012965562370980280402091374110708600843811425544353659093320201223931456085627910106154388490611590747704421839345130194175812347795178598804104673619728125904151784182910304035542296553288950635677924023779019276779296363103102135115128896452682095967683628733338567651551064029570960274148903710162136082830539030720090112931176793823517588014859102497927481126252736820887974924482866506007765955145249380753160019245704044103236085452331140493917701841622581901504701215243870947483782778074581416212136155710402427619062895135243866118898112586262561133656929067736185264876108831875597121932602765519438300380045609011824796508761148932769176481891388753942288568101804009026518583153021902669977902413599285867240295417432493785639964464422412574709065892768509247616254130689740579352833679698675089839608949377321642362843402552470693803653773505380739278171778420033180665249685456114034284892053605641472824060385845088016332833101145973125628945169810531498232342599207920880455236016253728039988265706172896053682517236162405651314719144591741363468826649665025666998129738610190712644562861414260548980958414826090290458311009789126903556997086368954062298551040458726992362761268307915222743654734425373923693795043831803225130541554906238399381108599766737160839093052460146727165064170133571346353796692963129464595509932405081890864213948420680211231123640116529376435083699114891721728776123307602675341234585103044019388038497650691990155738887908627320021151171761361714576117655060480514784964966311136619061670448784339392149604524627997307044691524867236606427172750822842854558207606599569850655714354242595092716725263731546629791180250616951627409324382436440392741380689864378490876476741935337514724195604588879400617243975361905786066684486856571725777361932576832366923026379828585632453392210501001753254204418199137589769356951587867306209295099460897815553429155432194802824318744895626288466514685952403177866252277965889280556562242806616937149621329833268405240294326504166289377395633787960360637523520699564767958193433293834544373992893105520204502738809068005188677784393576602269662121663173192158376433036021581159084379004440623327558199057259291778083852250046083508214595961726321683076767039753758802880096623806109499307933229227271290664144909566281159842760220828661151488189287121538919158660985044471340307421461596936746755091836082123608769645520697647304763094248850778659239553342632199337759313715759097474725145675671846555523614449301829629176732081464210235631936507135752435900487147573896497234917605346431661029402168282637576716106968550995272550972508681305757288473161978158336894838648186839018365001475050475184072044954878578540452124628435909551828656119040049393498412000344143428484120511127738727165061160412329952455137986883876791729419077696377782522267326479257273796152957548540301781771460700458422380040940544468280513402416389200717324720867231108714939260681184314239570595428511502831287704791569018255579703159576577591677875273881014323957629214092211826597968050935638691294030228240374252925909748707393837213474029134632427084960064251508585765868054375324641467759540802798651693030064626629125147974027935696546127117780800893449074252265569697747222262752695862707680849717827185961300613990678297309737855336300841861475914503970223419061130390181207599745570646271079585417511090320379010252230656363588272336764821882000053801219076981581609041294303695377804635964580439361992447998814591524840506924784892016791112927247530340622871852307234370593722028564057527775846822869150683560301840555974939599961619035574956456595423177826200029611176369202001045008515584540515630455065417598736986525192444553705314442895954378313100196063395475369051055800359330156308693433156719781896460485809437848601477545481799150848800667542199747943757122580268808328905015320571681653370210813302040582653186925532987878646728489747868768669715736828570666207038332143756799694521217696728503811052235825966599903027878634337972475763024622554217433045701101180733098592675021159176443404531060560672554167723264597615010070595770575845454903207842855430218691794094195333585736058718158028054951659315433400881552575501785516697795413029854346188884630406998095663122970276831411013979016509002934240572644496903475762677839810018757841697889530304753807774633461899560377191162179957251930812016416930041500149579516909251728227413474136049089060449372520645577933013490168841744452378808615512587235903267603867437972923844914604838171899023356281888828318003737158894434295699673229047806340449442981634354131103225804307380263491843287803846078850418296408257462323479303580941336667408823019226341154552551936407629808151212857357240657833097750134980032997657501296545357013715498857275799802595574356278111843263591906987476003300247609672165693696473694178115991728101443047017407816864849605030364358403819874965948919942963659186414488790021703185374871876368066796607339399986203602884765750521274706446051560491647998222926368769883624119783059535773661554731741439165358775530158646367202827749900568106831624149835364696481772610679268449969241767416202750347837936091534145679985214382962237933162468208026907684537843867079405641586988065172514345038080842525662336036622602580909260403964096746395759253997111688333603850614159977580734833953607002540409084185100836373505406088720020946002045874579361704414659836672601057127131858994744186750120496515249905291995679274679485924689946424484160968336429816506185303063894831874466092953248390332433722170087211793000761623281012792353028876584117240872116957195848375327497065121166700129837381305573480495358418318590955251579791183586755103627100608593246445668947904552159855317425311983976386416981471032716673866176798797707221226763149668577563899792860265748948502948511598018481909006502757873197771290317274870900751955425069980951897360128039285851792049806108299951552136350938655742412541044727468170629344567806960845732090084654563912570811563113645705781236896674851014273756277945831936254607367284022891323392036362938438869119014593891874707335286740279796966218685185085138424522083370911616596097863866214372048993968635780656760081191602605533155083605449336956193462318791691709933484450421726392135525332990139181286074246050091118753555136006900274990670564422880605050754348205980867756443865457782898171234248022924295547337751383283197248271287896037738916754230393650932850225585302846531691677438797161526274703629311076316483253390483708429828477771346737186572433120144664857845903448309942532000847846994198531249205719839736700409882060187901196772526433685175676931289316166565040502189785053535845151824835157153049770565976012010487507300064967627433413332287141842575789298309807912396129903525702028327386299705155068716654823806585483560381349709434768537199243703435617494111176072640953712377917965552864062282908443408610685936467676384186754665581093855567722302493496170288051778323927421904301923576684379639483649622196689455130360608788481542164937194647246108136117605506825626691503188677235486072205118697642695794746885254150795941084989469185288371958478497037407803876799097215712107960032469572052871625521404892126347299698813965731624338025410155662845554211917740992976100712078610282305976343926363341312521277316395201625893001928222722323497810515762455303665911821155547085292946894972998312730227656851309163973109568750015899878654768265728776848466532177646516030723555662688918319766430430422658644907376949841724311996599311184353536292242631897818072475558952163441443717489349992225049443888892900733085901890778592268231412578855978690951772869189346216526758719234958701938569336861215376815760928827042676297019774483367816413759603550518393278974030984132411057478573649133614277583882151894028631169242836172427382035100866394761907155150882995407535810989242756315223524492280054689388109931155732872026456964787823022008005968357579669304537218893232836751731009578909424104229141267701292143854703467620879791106584958481734509265639638665937075129576400747459522299358577949034054422031676156999951050780901134946905698202310758160490362685779657783218524775874696866054391200130783942088225500732142667178815815486202778297736492850165323814466827168743023260943428491910435707040429527017514887476464913752827012207760049463531945282458298411062500543033383959473626504356085101264181453894986096883305953995672381110659084064160811671725690169753079393613940998175668790971502250565015319916175486605222067268105308360176290717339466188118506787199806561367056223569421454695080193752762320338098080007837212598649738639359481146212860593168441164316220653262617772859479392825836767889653566340849536512448440261467053123461029428027407673159543424086364938437173376131209539586413695228293433714461005162799841127642528437216415951488549867830344250915372989307254844671711398198730281502686681213615766459342498554613760664143809117699253873291000820552209350125041812289089233879137093655574398970171130000201777985591888214397115440038037719004358750647725846163124256147126668237915838135505745909671676014458634025246522647551607996785182708753872287773582874306599635022284156033653041748956583824060684364745346445202264345117791476235679100682351106473067117190528152878046303906669763991658341258297458887887743268979222223478291279863702613957412651322588927390649825372168505238291266924312663736453109949792328023463440599039917054298141318178425230807936260205732699429098107821647217138720218750104958892888931012448845991116090474274752314076699072541136067082100727769041410955590927724579750030848397323502502837719815403774667208908185266310369592251528274659210091203514034294750284154136545628375231474541883685314968942291995263824870101242130087054547522200716188899755595753714681048764650344036421145222315471801625528003378353252421487379957354147621734375247628729686199016748779628058777753016545149965653456740262242823495730769696674550266479613642437616413017169371932925676418707593965500910456978865453032313605044054258893828199811413779193350067686916683848473117387987078149638653292483468747531253563093503606659102821903789083911095048973153360328465625652970749817195614708647856116744187318574296111421317863107259299257497806009107682725537894146446125684924489742160897572979408042527758988364623377357479268348298401827929548171239297216383234606482070785502058651530216827116425232789876556425218972053296703358540085994757954572346900125642537331988700140328438772941125109744731520167709031580119994276640741347444942297921351565022433885661822315717492309152487230715645044070831129125919428302480798403413262793591934411135769481042393212835120410001828967412612718539420379528376432260966764701472146705116742894541109140873767471915944495961714458215795206463455116272777809860944193455800266507710631348351425337313866643915222286815026680524709164327210052195837715315996117638877409417489279891020658343320178051154950382460359659590237515815955020489511916669704880620652835585427589664902567255141184922778736941668116621483825698014156304178175475349187778714081360705395373227921657904758400216165389062352018048736480505663863301932836822201352757500682266715002148813822904756078411340319923050927422789659695341766905130081262031673436724750472059464490411180684504790496691782052444303539609772145535828780560345393388182452337508043813463734696653160194708957230645533855196544437879411553815401288381894853879657954270524660350727751491163877765791662774206956666165102236525235214179949571601975444863866067369940551547523109831694800153670858073986086549310752530693466414656837829532858019327200310619160370549446987794180987013215443705041493013373073155200433564183272879253919793725864317850183606538676542467691847614756487861337172666708970012179612730600445752994849665184031856563176701043199287604383197024046163254302351317168084606929552120176825753656783350509375947496246063220728185058638576845235499709283575583297256981712297104412027346056628471024204389699155824753538864578197029212303562058292224811741790354592565217887184474699942949983738187447195688080189237003498453184087404457399771035320431382351145014005415979409307811960999494729448745492928431076500493747504797937308631131549123304251584342931855671920347964886555482240414297803592920352648339377588105954803849415630429703137755642340094546867168207943994801126889297851335445774993227971610525388429143156326572490390590435379958639169846442131696936673144837252947019944212512063274734800679399387392955016626899859815391277548849291848086560745412534531266854360011848408071185136098675456537494316879890308547628989505772565361269038318056908337296624884823315358247932871356401228368661362502116396810548678825497302316600578558519470401601183257123378201562896969328724650187908665269440742394177978151914837062309847400483088967942400572258992409063693182851689026124698770642009401634380740496461215952196388116363786476898218249057087246310142478246935289223256105285099547930619562120418377086644729464950736400520716762179900777998773234557004307075653605740681589037195787921852808842370631338078038846717538501568033584158189327184042074527126025295049634224907405430191272855888654546633025753703459844310304543893480052084896573596595662069221027224241959078542344108527214249520672055972296314786603509416947902335167296839430620074374815374919758446516887200487428339322648450913052794610892929516881552711427254132944787073729709226374276961489776502173376427719948224446365711729757385036755029975291502440262962898399817643995365945590430032917469493874494017205381158400134028381650756016817523143566526239352855517674490764076872113847377439349548185336574049672288201228136329070031864779703245850965577001464902254298926103486737835891729691073109863364597459886963443938819770186104792622136791906435704101117028717996520437629462920284106400711948721089661696549356459208257524231787272790047298683220040932577231850691452197778667419767302079170432287041222514773418803476615223255351661138406096074724118542238684760456358323421300058017889870052396748600742615756174351035064865266062074893642732862379606280770289891590397432789865140662033690745241104096415050156777332501437384268969732858644860305523224288340383601581651066662067573992637641338928949500252332949600442053456887696820341901647589335382563658743196848262134410852656137700046534500300898790726160034085049704538291909950590134498543097694635380744095423609379092999080672648050867557650956577028208839988881050980143025156501928803197714469553105571506497987463408690361953135047836616256603548197916739178356240286787270239839724392763086016903440199846630316193381301857804955949671481767912289943263409056897174158549295990868015929711409548980410299803928303374919761331801948113034629633386507195498870568613427138624878783197068293275417619483973272277154430872414361573416538686357069774171797610513500100079892588511601484927355439049140580476912696879017515340284100559118715934265879283056737539095275945217644355845543731967877310668244256538470989406161202463802564945225058932120484127912036088749017204121898839898116744313057446791802702786210351629911803751918141251362104597800397550738241351534747545627989952449508977914638015873254499485310866807864437908223552310519092739544359873733708093215849513188815450909423050719958078728025866792936566165351117346470729176374350782954835303050738571492314827203619869328165264442730586803379705081664842675608529631997527989358779378125453334503431520606568930256172080082149440693476540835967996127011503810058236237452698264946198448730411154240791095612206701187141150907048230781077427089840874421922946125568016832440421731946874150311469774732361923379627729165743251394091966565697580129223448069861165322267092502531741634637726388407386253774862160670294527984778438864374689050992179533514993240968092967227977320577288995505405321935396786235823986482166274508074081102591367773131369003652979780200066019905125370337087867473853890538080154500471681863254396381759440820304098613921684603585559585903433155992178254076692282701961114070762020114286334050502317931020342950807658267858993071230775426718466759052739794142892436657472081016296372093250737547487351057198840447519976804494709890403021116733184094333636404784948966754912348764921956500110311504446034800801157840729716989024165894287458724850712340433648807757844048467812644591361296864116121661860477310710053973386768044166574813517148888131600193899817521331020978461113696351372326727105526899590648596848621403163317130496250360404094045339507465212092638385801201511092343183040536722124054505838762669159865013126957809097381320892267284930380255356123843599593681564001429610335038408623085495927259281031226584027359569215309338446893709729937187395575139762886761082869381942795598253865505044368157281993366870134248812878794805030854570948221659265494841303958701173865563574995018710879504088362121088410579953598195632849668066393313323335188235047208811548328606922037909726170734046392588877231955508781045156303528051919565243751200396892604832004280605654994016293791359281323235468295263701200266112774758193994736295514620439925802310088661245695791564947918455664606860330840276597758306843907090171076996115881062693603346414106269038079950682374324225276042061194761449480272312975778988314530210678576909206158130438562507640717210177776856755107700838635266034442139853705391603814356661224869164191169760156866075779781114786881801671673377640295538272012848177591699110012412800392587697255745594209597022979878910981266798154955390429144686635732349566718472672368952965772855460826052927749133417370079609479431246337368903086145422103257782170871041115386721462405144535705130926885150881123928803402506757499881349891461861206083335536726005515733132874774772540377268455671779967129636630245499008733204646383575735776160138890081014324983015284079295577800223738241108915951136291262594910044385821065254534404317883477613983631932668241380161097909928386054713330744957139004492782952228648081937419955038845178322038294920721056520162971929663159498224462511039437076953121081256263657226899187578230681220960216650719550253510920261345759613818782404347961713565408076098186766932128016761408094330494392834233255176515309081788204429151461130306685541764322200197616615335466392181330181280780467806604843183209876748916098536666484613289474912391727291810823742032782108518962131194961425595044578126455477503420905724666668273155604991070031149081207955824919051119113174360949001927518930323160295464063734197761370343640723567705024108018256592256654548646375617630205250631552126612152012274378322654856539190001718470606578575932501811999993067931491493597171459286202026592511172559133062471295464037718141153085152719949896640122535814705782487628761499169907282267671445360454084367643798285200301244685788123085790594282219353050540846543311242705230734897545281025838422655609849078614633493125130649663583191316682288557855118291826774758757086720820716341487327906383905847929127679824258719641554180236662298103013189342078256253436928806917919957288508945632618101324303884788726555041694203300382246258905779252682887592145933825335855069168560427860213206192477617371674473878846659071445119836920881569825015032138549879023535524108039988830268218557841720479852347390132446813910254880304927235603566748712474400229085092678465642656084551808119191726731925783623363002772264564377407449447560195435057148474617840651118040481792853634340656116997835600565131651500084439823794212650541729834567080451610850806821444533925707259901144712882208640012697995146577054477635237462969895078634965878703514535924046900759705380548343403575074948791048966981017789497051406963330299901783450526025887384756057092635153942724704427017195716151664838871228290062456584563587967459464210032592187485152965681054677744858723001551212863629365719772436963392237933369303161928794718155994694505488019600474253661202207802604067406266297501279251451000230380624295056424780363627677720180694563093327524791909680135444512962045371362796507216831070838796630305353278906684797679592967393815356665387861287577449263322444865621460366107854634681726791232761149861740227452982948670168617774871410576058880521093580542541878170999736907489247834227991210785889347968791625957945990977972913256662515500461974116743033798581063545337384878739572773605787064913368652288657717906687776921559187065631039099220311291655965313839616963113792904190951909499307504479359756352007386114750261461099412302554019785031180468293221101294585962914978501440804232302992751743197298469446593676756993687124823021820872803879448430486298344651842054725880790966331481463439207775302681139080823720405539382478267730967984203615999233943417522851159821327900387975920857633848801505276826653279502640913214434131672216731159535067326786393016978438401004102987787922867398227608019557400988711578782067041218038939924696137835313803933463964304867046976541556243915970263743347480532304769687287979530283731524933663672666795879525357138992609824608513768840761445502888133123169913840842540032814056271572134028016418470166508777655939620696182262169652401076607995596228848406288798574557287753222849303154084928458751807153967400306158594230512769710049309497973750206112078798641212312302242387316443618403771937464370407000529799728026643147530537298757936584335035031754989392487066185898374234262130703744069101987516224398029613629192249809086743405478267633700128300492457258045150423554279728268492318073386429855833206507023637814761151918658225119379164850632850662791970170350275416204997933176670050892186293217346934330884209231755656937693008243370612415387286946874456898537498004853740858726967188362810870822761792498830139418116157340443396843966103610299561563434616473324293180769604047874931882147394572713659230185354230973947276097192785969252139640546318270414793287543473732889831285851143643584545421067419277568195063147180247442432254043500946326445590547581004240478209828713715335710456554071912830484272923817147147993545750271463800766307211863713437589969720273718538272816566898574821433256974710109057859394005741636782761344082791145162933053815672919030436366222552539419371287530475085987567978768510881167672624502491937615720104555983647154855492388582082147878803695202571544523929982848787414812431658413470291916977433399214378091994509751604589057878950663231465053029080623785140132598468524497876397498642526427620766188088624976362868123435776674460133839599107969568961157855462887122754946542523778988878655098948315593709382086731414820607366929273553448427927832725993875670495749927493691884672324449621687874211934973930047312726563122102101901460103003791346088810395164410910678894559534056680783715233628906694645946187128656672040215705668404473461000766348361001920043068901505559260235929435592464109714315304108625386687243037371237112972704013567066304090437764013085025909104125105477142333543160426447115547696317280926914719330083286249740604884102206938098527549458427870641806570753699146859742142657742878977659461120772596209203014914163734833589798562707893203814607964677556742401544623932741916578585456599996014454595299448596808411925844701640399754642138871864550112923598517560580081536443208174088706973796080722450447615373717791755420411849653921380787521110877127597519284099253328338929866969824869440595466839402072464886407154417804862172143689891253542299283743364946511600851894418401554220153288201659598314711081306720170535740219531601182170665175109821094175272731712696162546818088538363206152199407304745424532807572190956687098666311404885659811842650500508086842915679450964178570990395227055450987699127345746531421960601435275486913904781236383410858596914772457298899742064752701991071375634343218414024669384423557451068992836241297518608449720010209130096750891013844704140432783395742351142448557121352168911354138036507220230038204889495589594933014849432286036369946219800184102888221868956148892091042706345468742767074078513589995104870121187669563142440719137095233473022028188773749294278503829124015096346817143629002975472902918864043466307859783301380629074735670621205869449416992426152198645949911825264027758170399976491991675950371833792901552712088218219044197150042495004142355833116841122139290825254666263572475527360993410019175004957704041490345829725484098618629545317957174687326865553218585233309972688694632796363202226013355139918685147263847033294392102085104267785677617925181651691280113017898225498445855348674886632746948629735757610309044705092830051288575081945512232134411550284009629801121589777495065722142801903442084958578425165506245608111471450116310387650902866483515995395090693725969232022424836218208250663062213138898802577645152377398034781083422488354955225894106220914293406928882355862858399596069684588029085335665828426620738258887203195736718904690210501118498587105566818804904373207130040148006095545011690036225745570550168613972269661301659145203477493152394638218666381916767907167362338113515965030621025354970850502409365184025829533248309196280209369880391737907734524376267959744056501948386332200565006262869024469645999728207518174620453699196762583733583096230199254591299595977183883001944516997088506135045974072442195477466333482587121445465451698345509198722896321140417177240895773237915665910506436809168973848492355802273139452535101534671833378476982488577055872886124660310994446012787477715050889446417915687392267429223501089549186904169194791472059552860698185287652129273838233630145450687349610847689462717885481192441951749320121829641967766041247957649540780931787785922133922976673843671301922844391496767863432765443400032014602200209259945464199142868458998350282567093614460763588417506502366004491952933117593637468827273647252064608807929927834886571697307061858329419405998464156456480356163908810289114318435016405106677341194749233833425450686428738726896574067960056923180032095666767281968442996527635168954451750806497057982850085521733397639477605632486238672518746009426577540601201663441711481934095893501691396741354288198660206040868801921893717847782247285209781622211279077514047574414262059825980389306410579527647776157795371685415004212714816836546492168734037197195199002214773660165064606086679378479931650711281450923658023218871470295632595953647077915477784157454444473549592496979653371571033675053937568526383126667492189716018810277130012045124325788367517491588437169805344846386377914326103299421271274150675954804579484228518551294386618523261721737488625383416328220974573019726144957220595639754478994135268392919575809654438627030126482248290388473713386015040762459175962893152030280775250890021681829580825927362390906231303832234142700052213991537709130455783333381131296557115181374588987910457821229970664399280493422848793968882137835388523853081347729830681764315651235356289499640435321145585374192492304142970706997985480813259442196167250069488399285275712613042325810755842106145921246647151832131193775929140174714662288490287538116730993918279649168655742178710640841361585862517134167080602248879835150876088880934162356182478355106113090626476766581054063304429487004117377621210353741461887038480618780217542181414917919109443676273506561063695795344237488113055972013700735667622182184815054099642928422838637363437212642943327284817864031209583991745659354877681788569342673713525533908990484807860401451156736248135385430066970269473419738384124302955011879544635623879104191991461023233169236458681299866941013303594310424563008448660604055569881657093097284440490259604102718017931832163281995239665767055490960905759366108855632036450327765387212628000092117405586430804250993333775443751845304031695660529970751333574389799705753727189151932278552562631521847316343765259707757503576110087104916939683794695684847165741736062533895380762630004008709396813777659257499415839869300083516079619037749988459320863457661944748315062090939196811920306209629830029190108702397932190276917419694624937560128742430348842706087561582795710545277527948247474254617448833116940338590314730088790346253389819408472565708028369726123894225717934944611764571902507872292865377568441715668766869701944217544695178980850708157656406981387134413366710599985868991775125743375108037279886486281127309696828366723750477115583307816746577881761352098856104764180565396147006748125799500033727275795933971700159935844574247925526639258432571214890709149868430818804431513439743386381548266990070908281149871081589200564610861709741460943446745327708756749982863272492368834873678379233352526828178993640325142581372910312907948116915608420699705601158657310579517988849689924389485477510349352293880741183554043493805342050355153542019012136924957246414297505903748381327832991753389625421815665237197861598272625034188693022674418250204489658595158699467531353883790321046868704289005523852110165212273807934014604790736963272393343176512703651417596264090727837838931226149786551874672231428440962213859049419195080402984197223401386664181955543374710392998773404208521880556718843721499093221771596042541865873561631075011875726423292586058016562231468138374004055663038134248906239406001684730666897687221488794436265709409723638492316044344863049609068934553413640868974921962468131094148815110160751284165711844208863043516083896841514119318039890272916266083621083019227976863673628985615258906038681890258750613120089319204651620435620286286209713039970428680176666934453648877351485785564525699188746385680854719353351520499875839800337767982321773316153143539096048476585887781340552024508126183407035226201925161822641453071263728273104926261539394668811419235387171498100848636087814703635749686589988250792048616769692113273575344228570917973512436368743002331847512977868922688535592807134072215610072257548871473040939064790080773890234975360473616944890221956321268782503091609977382966803548818305295665380972013236254954427868987471486307679736045127126970309679155827800731698950255518451272265982109485286613846973591400402353461196706320397767689432023156230254535848699486719871573562491361536451730239531497595446066997115666219755713169851361390409390355584963157097182303790381136011511248396567496791846995079727059397142060925207935550102794068177631044257897440915230406818110434594642309689650612009305188394237976790389909385515904766063840444261138900912057323324728760690910165835742270346060282670711170787575548225098494875599307787110984203905622823978707153200471598143926209088232038877411358361525263207768141623061553469604651625310559331607769133028954622603003197354297427103600511601534812903337123255042956120720461001763828646647983042606025788749059188910378455964896830454259151517779541922954263697863797941446279685150755677109257846604635473155740094578782871085788835183950526517040089088600471851995610758241973393651023126859713963379490953212977296999587816559143566961548978316902868991888458591060795426883188776389421217080639802566662826634208813797389837540605996319417147654265681229031628475963870945050031428808249038111681608461683166712277934670024186432026559515081886293353891314887101607882730335041833122154979425265610334424338678510746815009704900183593665704555105766351802071580087838203526990739450875657051666862879946147496084832559085802487293789210495055740768739257633632507917726754098251537758085098927616330772396479420383609092643227548209172540299778951578810408052698961240275662971345810734174076587444830271007352088299809520909539971952797831644694146148880814369315504905411146438942783538698639113017731612563152954646145302275974993946055588267774583073367850755916034408927657803141611447055322448592958414965434937756024772675325714058454467444728727293724782351879838960447101351641554302695046658923418005083799778586848939092156525221836502907863683792145233255124462393610666696115717079807467446736853930262778774041978138209813606398131109162868854488344852374614292910461465384297003771269763805029107270294812109327940421316505314017954463452909050387591272721411603189751316799947939254310624233884494300609256931853426182755841463319271027804919668570808304690473850392807596649355899520917185506633681001251666491726749777528474748845972318773151951288675696597253377531928721411688190766254331913449956005756392690386073395462734725718969133969613372044754133423161144162335750685672631925095490381561381480479222598563258405987146453403325458232594478394156849262939724912818033362564593684431779373424961005795176968651807593517532755872663266618184284296282805000067208816510708967113493262031160521489760324029190462566205475334337610789407345872972610550042359793746938715972239558928693354219895464934920046955409134861222927097922539991213909480155509766003028265344403935341698931200262643189727539665564499897753748137818911974298867647535346030199725912957062087134402205464383833641707856227170110146818598554036043832207561932554221800779507063085777446216299601464780284970014294095159577250639509828581357189536436672150720498080606098547838495046676475132877530741359359228159439670198112452532526278336908975624925201646467391843783438502025701617553501175257873856315882572566078431756749175385839890756427028184808169295262684164702731780328164027633141196797514855442488021553298554317717713925823375897956207189134174144425789542724850480663609820130356734070038038046514143983945172174192243225370991886872872005458270055831028670751678047662451382258055245804105921988753707206286106094414375036467864923618975127879166914109355512132863582146063673781331264707758069601926391158548451555017889954262272279787539079209594389244812009498964007915301593741184402458589901306403780262759842742694023938999662295916050202312570571484944112003273628964093869639117079018992352353437029291007617694382439589177650905671408144527264786015955950761600997221044036883058807562525952069384316070296283901423872948557961397776286825988720539987543293746298758374917056023642805619476252190033205379537626165768844790589991436094712721325429856324702755683867152743610162245766642913518321440670717609244100784267723532744494037769624189014386088701572809940914231459020242260720266381300235003232576569585184233372557323197068255645557871665413187655064656846250691283427877254614223472077316140556655176784947548347590755182749388690304138973389549840362288099319279847468730568727547642280197877209097046615262812480601281861491977333217459147655036196431760861671476506721770074892589198448703757135081948008788745381727627808073429214003334522842280404814999313764321216254067272383641330699158487380162988906629568645855983282595951030265804350040368587996009433336474246728891095388288048209193758598868492139008939234380249856492116509622763531822427196488287307037933574763304033469182705318754823817612266567177051133570770788885950164228685129694357300377950312853543601531672350394971328390397204084683915259587387557736828650606241757090089295494539568556333903897999138211381315640584129446474286443573178690246862454340135640979789215081337377188125327066753518925750578124845847014956312884786715560658085632195903422945109075283551170447417517767988935356285603655909925486503253861123366834225636669862179804796835516563844282119562735508002234867197441606212834527469486277040025368750714397240067531601465159940123792213002563378176404961348948160075705289740237773003033738125029158286078409876888699181320873671630161859376703880521953975980041873648269859945073833352686646883149937386212374962220664614878821877572038582144411844871337386470033625534632396713825304754288735957661441048827813917216566471145845495415795826318558424961115645730166334245039350262446049938383285326928502068492464390278251264739526974441824784135209875254406707703823948894168282114560878827768302752080187423333262928361898009847613419190558248153686793567365778015700350026969183605916471691031493935338193116704130988327438414912568697755511762536588770311100052803802294340529162911668565293599495302549106041879925850791304113079095453424263112771584402254034500523215604338014510142991148743012897593332647366015495864253481794539677510786486043143560712573723784171186985226436933221124179614887758420578309577885498244117912349572356661036486073614971533544750022919448079397601737241905156303067572405519337333292493775732253094338318626599069547004831988914079266496295517497110681644087319159845756659722082501481889634093693547649512515368382884143134264921203903408667600973061415661612468579525294826652830759708312964204077115259803285478433311130468027436605072238391661411850771346726056403380801360280545618991794711436459371420437606426366745643619445081763022464169790474849707983044582429959955104586118228733938562473955007256663193485588050063695441455186293965165455631321785192180767675381364711159949091861841464811824216977334620677387281553070822770061125253075497871577037390144277553589548630255402935260703023408557570790792319896922620296819874251482775741121663790911156522859633402531360053061248876091644462352587624553293657106074354895691322863845487327775477253513379859426916244480610275664277296486876388702417112056325600324636902665903013297430614646273825771901912125020401364885172841219232770996929407076752471962662263347447990162362248210440206002393199999209649424994477148617392255299677860235103106064128790690796826845180918712799368495345152248501492405207633282474124119518109171309642504100681144524859154680072159047684537180142221383526051868440056054621589577866492874726911297207765802647455161695548547821152041990670845331201668093665320304655682106928946502878394683268027844228675709605808880906124241814223953356119880356011171469510385527263969758677468203662965077172575709221935776615817309583593320601377392033016023793018134143448998035919131933348617099026328151596052921575138883425554822607958167753800657331639451962506771401343519976328043838816493960043882834934931164628567431504927885587770579446360885024022252000917838921859781407176542117622325786393738018115394965749754568392678249497258902869312242685950229894074825405053977543502623209054526103368965899473864451169773720138460866361433834736897694308853009915436675388659054671303752290482156749210500760486302656328925760752709894912985424851540621523839748871801328463436919014636060890411898646471722632197143973584547516532692757313055095548382948848477855009374450760071220817558502387649588587183875047809949334325581285396195557829702337847779615485845502172473020751454385395119467845856980563764100442837594858615150654945362143618318982271011297131339602699308312029516889421349680094407096309519280460146467236234738714348121966456388449872188589083781942456029861669442911263939784682084579752921229616149690714992516404696642884738535304946381576174112712285509624028606122701842906838893273788304683269050202782445540573765158393853386298457733037994332967666903372965640359895318509606686197074128758453172622110311504048514206214729999084011114863341534875510496610738116814092585609557723502553598667488871315787549726499801890557424243502050450476046970780252255565106032249045815996216502550063251364320320013356900591227542140243576604586806824603112236970387048504426953087280132055042160888330341432705571422204956554877354541465615795369207613957348207855608540849534763392375847650496215585480521824916214781932005516295840000346166532606915453407712810613037708169078832385814670339431622666843785147334796813838031627003951886105406708277421723979379979187808449690117269697702701071757495105744796041545110603608815345054233454626681266307170914510741571933974331433122314237768303138064303760647442167053479599541331021968366453219871930776932718725101561364967744543836778372399358520063806666475746926685207014286692796264313331622589293582220486659537545904388625325195519003390776993767684723299207210736438163477433929687778329854009499300007340081970823669403313246028583035910277714147080378029724285857639261797544647221866052394804047779198674573058023466120636185014912548905245030610834284437128169756428728563603026180769457052286840815539161845608400923133392186382551850235118707412109759264474094513467956379630612990835938746209206785531360409701383327109479090060545730773299122850993956934940790457777686427446861628497097231340645182257928299697334947130838319741322097258440504341231850307215389017200383163171771710678210042364311261253348448733865133100969654701207486670388119816881383887645283088638247984987344419748204956867618459363795664466426719184390494869480824662805036847627146158246489461817242499739379982737558301700024993182414360107976185208624640103994064241028381568237832328791018475038340326124407035581320144506543721058599225436914765658470730095389038851403508390668445109620728005966697046124377351214058187423104407439867375056923531595843629873430494950382969207410559710683039902417474067642376408962959210677106108658242681439723772990279271043936619096644074009143780942276626569366595799509432154332508144390114458416470656319854241451925633611167593967460500907129079530252082393037937464502699477977489882226807117949312877376498785991199158494028426138755046849586464142947842751910474550727833964327471670769090600058790163341053844023454637408343861194133699501227016841234602833273484867393226968903471856225084520716541982200197506739979519817537784005800892588308563885526824712850114769633950696141156877528489157900329590454314599512098640497715002740787288462036329782150292563604407851521250511368796256202494281024692373248881066305362172850082495258494790630541008570781847101569255087270038665514185605135232955131023884354235530294015132861565150619197802486671846754958776015063819041192281765542158008429490552924382292437282616622150275334495859247846585403618249633572382303079107348141307600315186417096146356085495754309003894149374166567772118642526519965749305234686202437787394487682099298667483175528639732203614611432127096286305608370817028924657094387813955574715109666032150192634064494509937310364004865598088959294486869003932673900909083795820873677112352848808380715125806111088759563178692695553545804167256838483000234249270549478312272222982248133216024781793408190060828106954264384725778353705146955006434787872106537441773816876682676952699525040271074419805594112973815815892596559419658794325963044922284502359307040176511688787823336665359400838190128519000876847078618237866343408275570308642745439331009774229050042849338775914001743387928655249540512637140125182363169913425059399531224751191694316168087496178035329676410961029052607848628981392110453399411187625130472193800633023049249505320651865364086388601180488115629235342794812538427152230588436465609937547317260022963989314835212248356097371463557086749079154623473950407671139119150650376779006868303878966016837903389421763394884024961287987215229953637297025502590549795339250534870683635069244857149313902128992707125761619759878631798590360727575299326557254143139245395423639544607045396576593236442279050420728432523281481902414613232919966773382912059886804269746848035979912921822522952142417550839525090552636757655796107187448391706571478176415396487275056508394388686282717947344184974264156934005905317669740664511822408893645518653346447706726360078248607604386832170721933346674150602971245140540860387271511788942750477503471952395653934849922305631749905433767137400494834276597635044072814671129485896287787195573270396046094948097231122706335235885490053979137105127527803059544685641194193052523045886037469661596738820198209259334742579266587376276172798835728807764330559656309390939258429486070939017792729455379343342449224299634781836394363966183593590128023268796365886768876508321690204238067774820184128023018533654783321420830574782803612475796405969589850431772272169088251097188732855065537560845847742070779989912953063681087100676875818252265684661195192940330513142699598463775041058642622765969669185046884534606249560040611672389545722888011040197126574916203189709320412712960331507325920106169378400024078214478052484944042297896172563758710927471817135714582995038870786571685210097589957376728680664231793852788671710830030231378427409645447991248142377990080185457005804137590903460312175922917721097773483338292924318179044587143974665571351936046723211848488191577325447120503468020003078102052195658302351874687375627122969530664611034557494810022005836191530461886431949584778031419428304759872249099435456472334223236875814866494621924388499003991867089214062176095019480344331466236182606789321537036400573284172354306678656894896966148377510908559677726031693885340031331928775258629591502166288022161562729220987946965794890714240711742321176249418177434908332462656942477665218968671115028828842492912132679536482222353988376477013926542350040338917968519663188963025057160653233806533991943272242270856928579431125760680220562196587294406298839273438162414586130654660860251874683432860320844551277142563810297844206228339043860480686876345266194162013230994329338633188107653792538688677961655052785504431372832810674623493842742073658579029353021550670930642888231839435220730764887049204682039413713210293525725237091996192296987043233184428185906795614410648221355462211965230088090968815143455499432697466923167747211922977984959489289511831249474606791063162304879553285500246007729892713146839228065363587896409540402699483867669189198514998051681908060596948591747108130662697258731753060260779822321354200394696103224176507296646523159057270699969739041151575220725122153886252294160776830687273555168657816348756392494643422417140740403042358325932414548675704971803633216779060347957670868120835424033244788909606826202078446544041435883078185063994087240472375083586557177541432054356604789604336785828188449212258304713649513892780561875868096390131418694967168799201284213986832710356798980758839037206824477302122237667428703861531247833088469615755457331481009673498698799823761753552626220111861910338122557398008811794495593973554956498513684779667830977028811100172135800145295172481065775056918090295082476572012254767929033998757973093435199752755675450823135015775207502382764288802822306562509310120532448860185737337839544237411812779000567835852286817629543094751348762125807909374683996132610889468977260000451696948926273857060531979156417612471139215316209843678184189957746434470670031932825717838510177565316003316716803192980221545664724807656578737067311051200696421551364066799161445224327497842876953154443985852132828061050114258954345636513484414409935916954774494974767573543214158883740987420195748958847797651739791600970494498394374760520364898094121222534506958427480772332725510358170861851600188635618535294433722545910404879856820956030145682761271530810260731435567736534785073902957966778294493266024650645257340407600669934912640422093641821211125469610035727176469236093158548573558670744594210300275113634571757698743152264891911402548780744047702088077074680375650965045165976715962933753432008391447897226079960226174162597886705636629348124793164677867775091965115322299331006739544714505957563919481527881643956699522102134098596302533753636622065322805889698183495983777553292015634375812968317714325331087846435394312766556522802596261313163531652538004149869515004665067751636488106004365311583294920600197765731969976566662601059324154785975658154827989128528403781966385191366807609618697881149509071185362527906376592992920258615190327480454322064044419944631815252143556078639189369393238659113442307523508581808950576715429982236392537737930716247179297578587844466925872425297418392797153141156548914924769827975246444744360630261442779243620549226878092266546824036064141157637425348736723332378724352209634816235400807616644156179057983826279895668535911692310125438670911026076870590923839436140336178225643052260741967397881781697717929565266645748172194278275619143568602333162589086216749399410866440962233858777098064250590100426425950495699920585374566889688805403924484247823428713820203078563052685559238812622816938086245165787432217465650022311415029925505202649937454498400111432982083248223478772723816010018667567651437116812213923134046744665101681857727204957244104092436538282480149773478889860906634318756800623883108907279113020665505891109075729230522504687763632892911133585702270228035137633766129499514136119199578640322434012797231927744180923598108125997387255836764043296740759029934757092587741338951303200434646505289273416953273636833507355935508182886794775022793872619312877193040563694787091389318196639243614626713940310880383036008987641526492461056797449370292099168277864547478032301338313819510229610491158657492816227135205721748935365036676130099348255150060958729268096889878231532936917248372425376928859336963163213367992276795025325378655320072143331324693301581140796078098603001078277105283680285334013532392949677741282103511671493940944932902675116641473951525021526855571630329783737963439219607779465637575901319110349099448075636022450461991618976552562552426131913974421781413140838888304205419297106449710376648817978596809883666666353750220240777715784586056487313019499346270671634935674958570602468512574192487024159955723199499471771519090335182293377691228119301849097752429424311007107713504307089580879065570400928751059553170663416535429065160841808076221587296794796309166454143145788532080067570122005320217572865109215852917759089184070957909144354048446437653640862202251077857232727447508107160923395610058226205455777002706656874332715090444763305465246626725570716571815751099017626619324635459707374336702734648728437895025560206998728144752962524373607324640280776766128211044790378726964389699094546652873378929252036725285327570396458348279075372636205847362900418116862419449479069185750386940734573097868867054841106191415708621799027156927127713947683394423089339237326363160432781711063310632969521320899298730999323317031588136719021840694921346044202026152120067866667205950386786202992923374145055618339240327426842503102367367197938438570005431275134459209690009986014566247146230386668500129473316151787935289373477086241685023654920999671722506590021150211726870053617251563575397255959417953826735765871291583557209996423352557999092715474302902582805815115217606659639988530957642228926736893256657163236539787459752435415899164801961364809674384179346238426041063102720911997375907084524369242854619553867563745142122713422852614690859958321342957243455143436499014796705442542521674437147953366278758165917765824980586169043424085510855821182111370970344266204116891896233395183301529937115780993069832455723151703413884317674981713908294197782866403013783203837387272051327424574864609426413791644068279887855981238202055132307944415752977339482820942688188616787399046056388114104295801582781332442421905845212403899523080398773355030346538728435126355657148316336124210106328998512049332036430471520542206508718938303393599639760153521349384995077325932116747666680075740381742842759543330507428360971890970390324744065629917261965957398729780017615892114096500623890566506145624942782384225879032007416676967707778902528357798757063358939829671704441996183868205153406378505181018312104256725180857177531679512387523030666727370399149065214416143570741067184180488511473369983264602916928516962277474994532174840330578051522327841207604495938964982430043660370829440878846677527349692963056432363050665473994448818870016565484529443445670619696277756128575371767801409157391556323816568313515449283486466761825807811886775562110370419108402722298243079970473857976012301121520217734723016162765934378507383026678337007098263043095406292594879035482536264286291439887361260034406133619746196790893357596195609346777657409571917967429418572383983856203799082519980661447170632772350305444613080053079422099536781303325212216700918193750289793709654341176857064716343309030048228155951918524197892706385270788302859854683272373291870188104761855057739787725804426842251425813080269075753287385793363983270587667955107486817668534420468263304436217457623416438141980919232350457635608791440687802429811206764850058029566809321780842938718509254944426111590377614152569690477196479624515367136924810831176465405872814643543881160931994625170916928999619224004616530789435219285273751415885918323787237187071423331111112604599458594594851391372327863440921439780984648668271341155676006095439000306009103824485116949817907270024535500488326208213882943191739543542800763223362884591347484051059894722820816826909843012249134811972596284253975224476068453887035803234454958096031239018638945518611027537682149403707272875312218891150836255512984928863093867619881435157548505432712569809192456006720869948866717566954198939443561476334898337501464213896834787642935182596050882533455156879846529061373417641080261577291683759055407000956238563458415479595564878988845010255797424124815903636386951710959120310671840604325353642133379117038050629463834695990511462282040681320605601588891183299219356319163399715870127985992734914987067819034790533360315703088163524068063068797636839929349695322410082975609590860292401912735663770454691606140932080394020132904726104451671631768787602183490095806348884480684996839775367111185760117541353245824620424812515152144206535567405786914462135827488328024952671592241302664899580684718785964919001640743792534591449606424376056116143751093820238658217165014683620098611147933893392886060006666219095322166835235833865122690670686442719254387671739375806430337348435854957266170279970916495908248476372159246440047401057883649978668654564112116281417365929011740483319244596806867953078650201260467938055227585709589187175780778131542171077274806589667464682266408414067437506587968898884813026420796974766284950589440210741400045401428842459030583332030609505048904103607945333524067941549236538103383525713084754744493074892358706497962369989157460712913926170434937307256217021877936300310886651603186085934944228131766856549316041613387941698914503794605477061179392890484659541187480775956130964060463807284470929009473890997605708171568985843940429237430511380437848876038499026500726185711038280965871580091324004625386082578217480829415343550216018677384806789968404545199620824592086857115106676787042893977673206932627783095398441687771426997819493570358510771639802145342122413032766510607266404757052095919124713032613736584003860740223040696460343476644261501962960135846576650737379030619114315792079758927538774960062073354442123775192814226543954522693114396541404527421361947648575305188819233160424495965943020328269282070282122829038224846054050416690335295824370468401784894916472547089668894525847714533920552126762031587481601306426722515985009547152036296185269471672658588782391677363788643237209061838542619792420923792498837087230208421231792910453719206964399918471468139228621887616544855498963744287804810636877762145912984745669362161709868984617866236885459058618033364087619661904742343748371069454415210329836274245398917727140694179468348315427844421734310946521304541713380507025249659543900230762605125166449200558620115128842201178899134472211965761653991133567825873167317837586427192448405640963414256878844504257074406610641378384567644006857616447295320864361509020341748826912086145954753406934713858278143557562273548132599501812941210701002677827362914913518638606134115645537733126526354591295999939985444908435623069431563151769693375644168369495229602944843465840971909714294996887845351428934516347983471193252994971696033799715552307870949958422263079380202180105589764792166497041630410261861674962336359939026011952527434606932868611724026267861247383462780842885459863006714534353604538736073246902813134309465084435501178692953717250615066251975534091503233755604615883831373648384181623499880901426326338614460273174558853948663952081832057085181071534040915775981361347361735744278988292680790270751790938829354784543977861700619108608440983087999598162188815567317042611712424685653980981135161944585789941728419413174626219407355112828704721564791876554444216485054486008029456054041858387981163809279280784226236675311069475679329753847047196546895950201427507450497865536166967145791755090408851380773888951045520494422069832233667802286959930516475090521615974252962119679180393345617414689076251521620144631212070230350359275267394258846063093417317480943417316529062132866977788349787293731861810924138704856139145454869962891016444008639175710108784778588689128675437580763811623622082678712819585303565697605074791154103219528443339985243456793938189345972726947957361351927842850223317422713295291617597989396732758350348817248671275364536321432362092935971111959972867885270856212643757171062775845782720629901752543477166335452631741772573769823987890529672165363937665749040573168714418277293828776999118104960891045502247889514490888042713432129171379879895751850951732553791710573622895116927119415649546305531560890827199017700379223139617792939756670743279831453080289815930090267841375602628590898319434958471964628493734751383202855438999020501561003526327910946331211030786962636313973166180861290881031668961994782186087805694151973516298414451688787229357476761745882215794616258540997490397921242086992582330134858188493449350514186376215038919453742670556005471191207838557591606758504390029131672874458919937350058718444816282784711482573513548234773112273944556782318092792248022810132124691382024303456892112939878659694720387517906300955300461149384306475894345191821624839691151620633976659749627441202356547831534675891794582768091930872280309433602633648027674397635282993565634341002194563783628792806625444578187215536002208731366049676475636020270672918183806004716215293701565723080471359190032118038096620851647261294736443002014155041534194111990760634531899410621896492232397368137899850142254163080092177240935377713626381474499042477071130774018713525596953523914549001829042649458213667748238387031914425212454500742680069946480269285812363295213109557176039425777628256109183401745291463523365170631356907990507952502159208207780368654658682223152740622525001039117441137028468026533979000930676997085228588619742588784736071077423176689888677207338177014247691448557398399452769026243004986288492860575166998650739613660860208633923991027732493359545830642249941765731520416745879782517183528293211706502196512826781220149921167539889647428040203713113403088820993077289072305120622051491438367075532188594488642975310343094751279404034949713717822665835300369539928828712731714598379530957799766694577400570699567810577606201738744291627795448095269618028004093151558596903497380416779950255742795425362936953697410819441247680684691654150571067977732475325243470212073966013702509127443189660900448929324577430854398608280416485688301267319745513676882377106411003068492114844716999549110355947447888507094585144778343519266342002562422145137050499391221942777487124229004438183000480469289618172769329702596025132708424825022467181791542275943103514453797802148147418307450164840129078792826681639076917459194343581297055819406602644223437147290332001790212430119771456175176771639272816546089814284885752866666101240252287358730580745685355109787777959503011784843256627245341069767665333426062593253999615329599281527985349253547534846006745009760956340547800582079672959475886254414787889443312626126980360193459045785921698564991976521680502351677247123422427573252505321233270370673699397731752480266370562675307112640304204102173338276930529012066610285642791670174890943790937019009043086733860415941917132367483917678407230853523386604697272312034066904288507426044080620902014032914732257823276173481641814023881951535070027943308532772641001068370104132505662058768948982663782279935025058503974186989860233758330325160460478957423461907670407340904737973853482282179776832072913368600307282311019912117997656959183678397090837379130668073232900396782161782398872397948476144665383443450285484200746740234777665636411533623278877503823622273031917462240355866766138699222781004109270640640870122621005564422382131709518879631054563630616625140365110136002751277656908609760432233295607954863978810569394328569346801009661515874437578323910086802354971820249872116910317487551443802583861435761232516556977112418370236273426609423935567491727770440162590648372350625132848002879198956386688585163737480667994599953299797663007004676506940470075374885811328519852314229169636979413507071457507576347157699825243144263771702872465739584057371582770352840759397723004461244386713418190734420437026746380797590784414217719053403796452583308745097711557001548986552693937946387726499500804624402180481912854512190457922491706933765080669626246249395065708790167114571483569130294823752276746395307544249192657283711830728773022124254811651366401944443328784506323038342804070939442237723341205578522466110513915345672410800038517767927786494595054060800843718973659927298579829254062429567223027004133289936914254162132755073690253765089450968493781802219338502704274403941461110049360808938233330996685135517928319579001662555069199836936833966028727302241580604475264032372344533624200155040939420411866451505535948520038631721414281630636847654885242682756877964469842820422770531722742703439819256403452181466434306452045473705737741578645024337202247531677166529846471067439524046094927363772620073559289101576785553276173133379138122819742097935297190920727641389604237427709383044273003655269519090288774263195770138914499767416282627501264783307873300916271724876747438818437116313899854516232875994840043620072523683399793970902990028515413680348968675380039692203295882200310733602149739714375844904028667341291436999895689845329470408209604127260161878840640132451378629070813755310571095883935657760309583321797289735673738665219085607339273233348280214312524905839549107007115105877040904578906729500432319286487323776054159595879068260836151653955341480183149137284249258188652328936920689154782304806879711819168910645204015975872727282601337977619759834033165604336693055802945972156923551262386625397348953360075995976268414474072035181670356515493731514121899079690879927320943119204122250282154110638878731866672942748727424166260531179295620354701464347757548121343496909871536684642776603817606556650007004742240914913829143124393444035682450720281561654728613689820872434399359787337684494282457637061452702010079597565090114060420900085747687711258140789473956423225054168216144410155828926414539073812501966395545459894244782320338719508545450882911175380710607295437831528134467700762153391473613207642791948875998453792070185548435451393247899301243523841208245225210213202758518903144739134140150230164268340538970092236520584578249402042253177720817099196069796310013213263187721222807414057374027780391177142910792475654789265063121000894666459154788157755582840095905387944088441891994438316654623941277520420784585967077586120849842523541713738544250555215565191045936141760208006002387987583908234706298575996360783984493437046926843384708140705299272534264380933240984844418986820639725145535840066078426412589306723810017732905864680050624494818080372872019823321359720108286764318916904551256865957989846354003987706361728386597115742100274655614110170127819281780514010320687602418729769935546775869250608491781727796210722706987540725407897907324037372532428013173931783859535709158377513421984924978128438512586223309260965918019994285607726050994160146209269376618157136421424871211531562457487252976683974426773646513134119838820611588943805111469306965594495592232511660065728206971620405393239048215689320146315192025702695023136475982196944174959159370868591002130353445894818344021661378956649863708075354526504083663045967743565476896446408258983856494054835016346267384111597210150286941977159071542028171922181880516948233841087132389759660200296394842689813838031743629501985416459134366454279365280269259380335339008983095931048232701005651515470482101506007304010490023363030202635925702486650614691056584464054729493772009658088094323323619600097546220248081034285756296836181491936115404554367322057567999402963952163430496272028256448486172488805231681659980144239666455606225256707840186372420389544075953742171014118806646912874731986639387871181981933217973145797264569128224160770867119781272854183381820190239536340392308625581469729044535878080235896937658567109758337378487173604313730469712288951024539425391277735518039280549889265054767349029355874728816721985028816727204794918280655491821714192181831710999118038504475415614006893685031531649085922901492773252489214534295852533511490037922425103863220970827001132557276089639184860835721797811073463794915520324363117330461535185541347397295829405762361651127223690193866707117135759157819368381356670794400289745136212436315829791311542792105450805286175738585726801290382506070774666698013262938184147813329381558102800120279589623226737368779890577822132429507695673337884470552681983338868585694461732230872745071908250737138986251350219801246711244426523556106171676564415037414991967831343203739382104632290242849712441362168147304359391542457484422531937222114520494716400556828253112644564012542196350080087674122218600980826301755691828746687654426794951047169167625060697938580650376034914188060259713619065848553249125532177209986433083271645197902651514418845959797057931306782275597690642585334948835474621687911887216795319100713553369031360964940350188928100912164472575929164511532972910022412236797323367173808049392858283043961382873602139736183537788061393300303583282612067224672196103407735992236156608822920782819659954017561016571612426206270254000524326115673084976867218101119201266883251700872631923014531609491888968830730344018490922719820630723171419027996792731401770538425341289973945786101663096418604418203864012227213780862770636617003358584452599300077270272494769043096406919315908380507389971053214505190268161286476713971315360503442502278289198313310904539890948580231644532978440026889274865502216575238732639900464075832414378519719817775701299794553374826894289154275994874981551749746188078466921386646762419979530202792247988639942139781235871447255834820433065716650104794400338261295410146261639228035569691290419038027772167855007668315734219533474963841068669508165719178504354053274314867728813588623313884773599235585139000570705226522432685561508275165683008542614518383145385487487267309186430110843588485818696173360249227705022375654421142606184821958731058208801682166614182311097832323901142768485441639208170183485409216117805832963118018573627371698574050812677016647246838191799640358751490630359954848297557757194894291946113727143218295855305234811983742185499386949896120902494367244870038653840630316403919381833611561653924751867212005294095777802298058798907342090919308709103266246862848730979043347597364985341792606730361823199978355004695933752333749017239642264268026486143802531629273209078350478297282482618327912405977806573453918622162131704812236414722761356750163378916345059163015276780251653423110121906344712660406546485352148373979515126545803402966231372552137105122776978906448234425975814968845296561402996838764423813873037751049207420487243604025114958678135774366539242567713390743197283703576349100247646265012230408952692126010234961019717906914264421079255199145705901901691337093553144625367223588720752315789205574728280056054603799219601030513032059610541195509965782945870184669599801039968560376506822456872667954733850658213710713266820482598647310096603378274781349953833723282064379543131348229997127568804052877557085604377109827848468372317326830047128850852638182683454015393898860748255748145379165372108476585338166354033006283093131757642913394833575315023834131491685718148595399620518910338963983074204673709983114725462879103768158790538658501720519415529604268353957442800822965572840147090963391382441877614909343820446482781754533197018785540747699641400837502920601564993153185834232154273583775876412248550978141275638119316860787907915376007346308424033789618399542033483810921843175140226429686055662145302850242173087046287880751852421041899433878624151198402571766118582913007114110833846041879415205197754411874810143306462975218610355335202235975272325921617990292575927242593037781918378208509851486990321162576030392665163396889899101515618597942099036006818826864316769511257664999454255412054437238902403642218974453759581456380769299481641614633514449316269127964555341051784982215374306371839678413005328124451471736210450950464557958226205917048878384709923927198703120351941902626455854548312952704124491905675302250894046158659803823922536183266540757271167038063304061057547275441575809984936564969824795173992788173458832977366957773551312989694153986587411122725132216793624881482581778845003062647391312748338379453314278795243161311817252865699562561445067018564044500784121425663399560838526830278450926834477282283657706319789928243588303999759896330295840674911594550615898341737513897066885995717733739229939405467117104750644522580402942565648326496110130759186407060939262474364840722719199907563181287495732739834718035998153177733695231648910671053682755637302052652799124138715730007904420042409737281837968015571639429713188778977081613102468700202868916115616688101127617707136547180154236145276653078363802730850211655060413663206221581370919831501129815868009584102371077410792384668530511853814546150911440416559485997005807487954711673918770298836689169794288161783042618612168053103725055250441883727539756335872684275848876138658869263574273284862010371983641836002690418894547348665829884541338307566161720422657041806776654667583413864017328837207025778981588444237281393014123411647718878501070786968811770188079942119743826061610959924553241633236756257246857300336224305899276459812421566874353019127836814013632109076941965138743881328315858326483139835720218698020480672206696659944219902627121295466307643052378174181936987193823324623719181058168162319267569588642805483762317061435782675335185591918060071825230062846452606911287702599888605646644835236351313627700582978203222359037051370270313174960846951302194908296386576993333275405707378000841208268221537023159234290373361918937655716144295490580595049472261661349842022106489372233141544193442814421572959121143395351644793136698154688144058665394443448656430244989928196720429171469735894520555069791506312038951826318117430357436487712650815492481043593461028622384253782875501264602368932933958806095808113774258596262708962073033914440672011496964538104895676453826495616225813317884976334501326293449154052354031320172595209606920366931517771149935604032458339721956327911777905427581684137478890789321690542897943192714926929432629268102377733753260122905499827626301960409375247883235141894285342433033229383548292211090880965889632325393655883297896497578824130625081331336516649785495074777004379275619491929192506234080422702955550386568527673225178593828268031913577930153979193999052259091792295448188521382882350703902998834808711199649045918063077011231613180279002351264374051959725434635232472716636970397147591960839289609719137562707090882985251208593242865771765699433021953383121806163855609458033075173305910453256190276777875343092149069851267555800321608997096230385939313133275853652951036994160539403698442005460941077027375975738791841196228875210958997160538182068340611407731169656025266613400310465236323869606998629621165339018238383276753013328529003272914833484239781203368046060608949300269503358860873625582029693078693840991918068581355602730440763783081236150619355245265399376630769946260332055401176220887162580366013036545525839100303415509454348697667724650714393330574019391346527109597618307385110647140799032222286272097879473299089977777164653454292560742233637587861228720123130236040034040564290075192311209361730157653004373010993199385448563850443950639858926805180849723049997867301989200794486946486685633162281303747516075993663053371363529974919117670667779613584603375119715182393895008528998732817881445723352319898673158852847049348118865424105200781397336875086238141537194289484142923562407128001977095747724088883452305228909951646750189293996339844772590047301510785763703638215428375713669761150952695336962380641493199346315054671451668187901433147860782436584024356361065345405677147878193850945778515288541656119474743381898707324228436686566865565800680075321937283866342837449580689238482149960477352975303514133632087390208525485942363038803789369431987073316279428683399752253435267795786728914416284025955528305337397973638724542785672805736498236036802434812422096944080127522132381820184949595986020384474146359355828687460927987964774904471560469367275439190920270117922432974148528280286108034685296716490998865002492473270056301491454533999066544248351146199659429626786094969579440079062438012938849896304939679635867953854038387133607742035096726239002395140729590997687794679807725967519297201349664743089989690257905171031254892697468456158708566398192567501718574132737909139251690893990022470340092679860822155533434270980067261025553783805186834036865252460753311680881373499776901454229205804115992251790704943380290648045709705828146004168437924207862564270951735712331814956577344709986378402885369899930893425888261470207738192948480080852212272901252605926194533815582289319021994630018610515213017596189133456384623426317983606045485147653492871310248334439404035718932530692328304274106057869923912820383913425640117638549066120134332047066317801744443274075372404772665092944412338724364624597136483126781419979041171154105683420118173280061093123795527437736694031499905957329396087456348557158096916676125217972275074828674677652707240074747168938550740455252126676835507385937690186267363941934278283156256265752746771165641668070444412577272164456892852512787167341148171716332356996530532313343370740656557455669430903609701040176358873815470517004912980165790091276051244222565508763013301461643216008215818439235973427320160187687937258817170073370576326366144438052977574231301014171980169998772103515343843966635418757200528487499069009681481951845915549042276405513817607048639686757646621208219412827390957638834293922450245950077659851393393911140743310187514013784373356548776692343546129627773633764147596293336648065070030751055450682798059586407212089454127197747303888791195239296195858442412917023074889949814800241051939733962848927807940130995657560274958431807083815873559893555254248480844814008130960401012822309410484920746604738825832594994361282844318467919507527998092749760411645353425657645441705549032000046577249695744876204235222176684323191583024494546469425801110542410093907724659489116468730914759114353851288313185120028517706870448378555203170132251311525029843003738444896722957824740935694580820714718125734066639199816449766965263414375464201026138529070900224964623817513024794611839698358632644783943911902338157174159951854224918765865295313209325428269348761698407115885974266074115180990750477094598745766852768398784253578783860487520425151646025036299438695723407036700775889667922972251613597133738906974733204225641877860218709629874711154425479841062961061150569802864526139002381316481218566624422504648110823305855491585912584972853695259243105122466277187101968313168148987127881222453518286513653890796663848463447385281002037735452460954316143718042931318889571244931956361329004372688470999595113161375772700597876643388331627115335223587572854504306016935067555106131795649291983313430551531883594743424283401198795572558784813309087412090113833162068243649269681890933673189361388175432488222748394682105935120137484373368548772473373987967391116211099519166818994521412989886489757525905903130286271644437276217054050905913264799249079264323947019074988088293224071775452310639176959078557557990619957216175505671833691500465820216406026025751078844037414411839458922177698356426034526886074815970259614506433426467288799281641503950895612010754282442485853486704498535037643072189241704649373777365321119343465717865433648190829457033550553686363961717851805700880350563211066684231683700061670240681809128407419949504466914496820221244090885637030078720677638523027468695170307823224820005466984545584596361846352352660756395277056250729962713534582904268132440400272998125164487918398066775513753233688862716840062079696549006659528994851507460601985565931742337456361453874014568910645382940395713087265451554874940345360225784110356519297751760820932863222587547904979727780417256219541227436488353734221054153263258823740376097605136353240799055514084670970221192002372490998637888123669394667129599906060051255322764605157531347311734604015337252532705559872749295245224463727364350512793303181356195113362026914412889024671248443621176923225351736051620842132387205112621175817011373036956635395991763587526641533754312224859530308677847416199412177587522753794083494840391100079744021559138519621724891458406513580975077073402972243012208980827909293308501809667929361841918423290466651812394424395785848954870066170466338732588555780382895859562492344596720208462540003067087355016766609440049553786369208202552945579479468689896337501907942601522360992766287399103970412898210442440175704062073607859201792724314013107679876712604342170568596574591560977592607777014351232169008936686533426128870004121777812726798145642637092679516976731610256737030014431445185257176675126881007196112378224711071798007315279209824357286336734531127535624462973775512048341351714615235692699467684977874272876186131698795571796875665507995790408771453542597572930182662159337724025741885188903736634162719294999965035069634126302779824736611486495407880741345917043740974069251445305406516283062398065885933678470957890250672780888195782287769706498783275669964327303548731336839519178444621315969619647171289451278885490583631199828483284819090698479770560282939680702675981261746917008053382188329184232111779333130286421765043651848773735313046532555028991400587714797769835819621052616026835342710916820619517146637162631339986826755300059669398495887945401956247069077085882571477951300137699032090731153413642027470102115268741358688605598528242826446810359818012398793428342997394020647480983174757652725362380566847783807555116562926775557300337377559191226462915204047964403776822493181807905860792307823881631030589472634062853914859254440356827393557580536639195568836725432499006396360125119909308033678467271914078509911221215564183826875384067106072258257030459896528216793047684475188919484782717081543920613003586294839722881711866774542694679092574481896400992566073276769107028143444782908010813337301502051199188230217871456287102539771567905129871373042164731889028849485116089897009650443306396010660698193689232092284645546993597669467286681374346827860853216757866412035891957079719905824454616428890140208112271948289765446299324300496810599850029628339494414215569576700520093061322065828280329070630905750309736113019307999983452843320568333777290225581133473734527103995583859639119910151680647054917427691848231716407144197864417486093745968807289594411199184586970152869683216134075933923557610741037087740983053664543083445159580414290160575882046243253755940624025707582960685170119968221637090238515032519764623535419620856702760553653946002069960007790126661430397527873055853794692656693847649446563728970753029550420563462658990502977594336680249659540129687991363510197884262401900269372867276513922449413838148897118981769472392571013672550833083594722620457583990632221368647279479436093476158088583537690668436977997436164154442550353933484246330166496847145145155294325959194217431290575835046518988646415054377083372250679487140895047948023452083261788003148431334030949041624662841103325731256009179582798252176205327302534229116094022105785576987310893532408715842894221419501243234302280000234185651721778887764522748940696508564098183028281372309271568182805110878889637696967672859218335001574257920296604726891690422371339255748679602493120464620131363651181583751446593336045064771502476717250330502629022034740203912646304741324744528620535816260442050370568437192804427657547176130280670862176849464220324213429131070905246208781792316078779825541096741528709592758907148359450622390721248454929437429765688209373540978875485662890151018437185990239915499898060821702297358584376110880103887867041147135850203093689727832718505774232523708649670856814993252756523138000738917539347208712574841629677950212194768251786543824361700922638672917396179552314079324346731205047717822613766448311431095722389375786894372367017476770378474982665058877250684295319176531851471350415096113358089716833048722664525623023061260033112520890165182815440787710435784632023790317977025577663146427519913981564681440499815298929786050174769207664374638809944503959898745936262102908808692302043430179841884320836503607801456843640519686741887539988380040865093469087558480164466258657901644584054631610645814039177983579802059617665419459416015472828202663367059329305322635795818647428605813340967777863624258369942811797985242769708282491708644191047393590009069692393461964524936212063281406329269852564882042127484750642135629378584006744460287666340938452543869326883159825502961756919052756120745318998341954466862756617253954210552979490071423201725666915865729494859323029835426561190258110230112060585460041428202849337205486287140479214712152413708654735835165195765368154201934503118525572788297357887924583537246842617143061980728623212684036116181571003196268520283600807787463748313517876751724026324965645619182231293898561244415438056682917213731615280924112226089537321485825996755511486874884681206479922391848324783338170981311612760087056794835807667508364227951272947363806831005595778506315796940149441322500655288700032154546813019838946054230972273270605314016741419407553157105242385478761479674323636232945026797919956198309469766970021372011614836415773892087444557916834715111428553416755434784323929084999377911411230862883229181440766721359455055436556153078383476801551755409605539285374637894264438782362989468554394512606406085991241544177788091705004598013831186410308936716458876598635833755778621189380386553339343296733305231410450798582533014522190964248889186279360399086936529206641161344483088770709961170815785006044958279015311033629816572730660480209460686213670805758313472173127556709295484878326541098386057510839213538819362554251391600331098794379081097245808473892909803602325291570720874969688250821845494085275556214657652158034503485397458804290929823551163985023996291057733469608961672939756937147596131113523970369025002786432534618231342733924923534454183543278586472191985588758373189359695002947115958125901825766166427557313685506576966246602222441885364304031783122469192140158550504331365204387672331360274608939007657806241376594044337756757492632954089232097270318970207026352782475058480692467220812412786478061294827187234337407310084673607449386290880230819750959843531802475266595135856195628799109672929331878741588555321683183302021117935495138442416747708717180329800922905529908700287883076846415263026738387459641676339082368321099826238720710523205048955025307040289265125214778867722281009220311457310399013208740987724485307286694372883823825222629973623384407586026706643356434045779038624538041317439924054420216637946719605558489407107331133226852404300821559180589273174274245034668228498765011434904950790605300379285904210999006734483732744865132464033831090747926626205709924639865006359121403026876462685754774630325342815095002496732060987858059859437225116877628778097477440575278148174442947077014745347863277653426008768178655688756320121652977821272320433244607995581814914470192633675600303508842410089444756802384717185820336069415889764649800859484700797359425412001734293171622676615320638372718668814431653316110670371860859707078136655990611269630662561766757529000063027929427064911824216111336057113189860986772631169552514316359621780325630761100268344542567010644481782047891818692845217823712778683539849425366764139771378479264531572995913303366496860774891605017123390610760885750240905545686483815072530502403262178709290220979704967013062325192913641486698588795956006447130709575922229679823601450661611309098212493592075862656064639900807431788450836552363380930875338879652543916274542064260686018110920080019596968084027985024111710152090967532966836986079014708356660801380662928899100731765139184709088067243673960330597650207148469734313691143258782247460898580918983432246968213666618331695601407362489775534757298918623020148967861569126523531704695127694212804086283463236084858871897471256458954786099535465235786692726151631922663695381672277353183781764016290929502690312998420008441126555026696106297451902820604232018084677933283729114432143273493272688170627981841203040427441966458442797821794400998518200159394477253604765451911383754041626386882323365505100942223592635978738532946150954373182708834866072366818971362953419013855952172592939713739987625091260004904448212560892057518296598813172172613021715776866082133135606715307290763858036371155158110912044271258617348393944686977067390260678736299384795707109011144053734319011300893417257800243008348722852938494256918398394961875598545136629625335740449055614156646710173796035873340311166078887329856938380228088996368383928418025585375766195977852030694843409187791737809102133221729086624519595257052437244082833586861121319002992528075669101023591419430740587938788610605053456644342936161349057059310661127958717705227407811487286175879795373778204482551163481798264427997904771998564592171721468367361292074617738531850821741422899715110010627360945836895536019038049494817953596991527356024091680438330602966509337444639599399078948707837814889858195530365476702716856224640824402975484898808340120076026061582466478476316629222818456737878441997346374171241582750324064429009604328204829640733499402904400282910191934670877305561496509682692584480362859977864859378177505302109567109168232742801869118485216366509121432232396399679643687149464434983030135705755636961214762358378963858651207625896971936077183797869329973521126528978144920076723667615157555967726890302589031158120786972303013303241066128930499628883949704911736041771429814786913487497530540931840381226877691721421557253044374611530726885084781916937603844502141179965045114606944031390970247561353908471514050909807322194194576951857368075536355489735658705900723463780508634782497505776202268431664212667450469733144804242886157056928801157773999700137710392656004521918901111671011219134697168706460824736988414589675509310093114114093041540525438796190889237605838573437008023515827815036868600442746874649820007210997780339843921721588886736382313643154273844723068729237131017748123279640703252122016447502578442755126262850645510146673914202914019010434503996612871609728037760107190967303405464388420702801461706795651527565765552797830546558275791962945338034051235991392217748412008087984495947329854505108320616408545661292555226333240700048410106428655422303342640630114635597745565576088888488656038433766344689137194810205260109179686197207186810678271138608125190969216060273607688271951573631455276029591607901238985758490492239080499256844798646909534262235658234458633841152364858342538209036721382099036048616297126879544630590632263148413741492359751458755503385146692950191171612863525853029323620542470403710104258248980221542934052589151472425092618292521429419742105245137694210860765355744689505697280358508209748976690018736999375623617219936443828752661168678186726390986383173373443940122628290730235931684242910999240624997295552546932873041528172222981851293901731477798065069650200545351668767037790123260517141642550780963891241674230992027352089578078704378130992857249577354632761516015774950433430103046791279352922636482113638217278282618232697345472570798323565078563220194019819152494668651312918100687045270957473753300230560887969133559433584257033241025924345145037064889907679633705129550861454028072114415853722028833487915722071633357537390542396528305816067058264113567184103620862843240439759095226638790269288578231300108753964066106493131021125111266490137197154010607532095038492406037768550651310497958866077120448722298767005918075132356178851784148791275618554125631932408572998107433504116561576130477761864449645575739316525454977832176254733996382321370248339957550716533439858240035195620641826484978973461283115142411339613743084612949425562113269223548245360536392531302376669687365929604801098295632363610225942935309907241317757403020907719852153804326950715784735480014032861337999749733967990010679428687613834505854713002458016891605861741309791059148153916823092722449713688410232660034093110397034580986422079769341355492128336139309367791501131731284547914459547640535589089287011888934644720757155385129636012076617512034533379021244592172681575191045057491883396840304598587355658177608439288659224567207059665480943295231273063166305984088288442660579931527751344844767284241105858534762507242327963511830164514149283852591145489114578038966231965594288211366918126883930156084651887753215750798522725235494288000252281356270630327922594884814443177437212443054718494753676815426275436185540655431744868314159065157288229265118469567044178657286409265738082700251760034775038719158052157894749621893456661081930265030962622200997745678994435372499090326530370033389009880518640576931612181769294872831021537012458963495654264738632652905411136817411205218152872057398641718351235900417397173403231315344399336393560120211394599068379622076267934567084771390200160240804019411067560806680892461964255229647228044515044957484943421565997040145945203989804315238226428854545947174516736020496081917669073670604075901826427571941910389300269536793363879377770834355305740733697675745736661499032472527129156641869650920982253926806395363834426547846137957257364240145258572957653112223853174112134680873056446386577754899508051676034576789702446088844084900633218376822630850246913931878159328848762570517701695871413779944165249984649963716683725617313812097604220227259698305972260428423091972060029959772959102114468918081977678305114764458095078679410243130424877047701988697067269948813352958444535148128045831850685023777701685010113024926014545468341916212762360422749506247423534232621118901387676321470279550144809559545152119232900987278456122877362188926445678256837577620028359797487549325868910294580945932376577232745836886700512756233681292121838453859493743263001060431979153332532766881454130467301369155844883624048235040710325246862532684582663612785436295012190943184348066474401942579426442692951186866144262183028174141798714869799501127115303787668234915141625681576235375415230290250957517128081340105598979645134839360439599179114404532639393790141374473385977043550682910403820306497747828057127760381403093259024359259175372759099507735196119165988157156533149888522748006327364275829393572992722849276388106419511855295098854868208960446233450973020251618330421821021190627001306206344353592239469547543829230328291104196965815494323144102615389273483483618569236649411024427176300919994213858040674017151452021875436382082268221737119084484362247406046675746731125532426652632976939108913899567646282367576412918009921995219466728795414620658854774946191447603315749714833504011564809927297591483647627647680997161170861712716082797533503219746020462625356799672712868266886472551359680197027094057114441372332625554532319447419998987625864808664441018794684949683919021596671354399180839187366708692787819880381492915985510306744089919462057591339378529607530966943696985191632726900953060931800070514003019942937080111154485372833279099051776486400926747931182576667737609508047077256517887950334408797468232036658456104783137752733268372195136458326854886503411313210370061916548524096016094155761710377815219785264580249484657707334170886764541034233014123660348502663969400128920542232746174794031201471055737793426969946589376169598603811459896659237272885025563437082608717381909150955905300759653246300790284486469935435035782707605163022656956988852334406026949381122183949546548512094548369922879396363635837504017961741868089700181337609277613887921729286173083752383078803130452758161781840421213927287057398210921695737690011773916244598284017348817182181459585890953654833538787586668514777946872716570845524283858393555551129263811144536629791857972176017782491532517790277017105458878750509828404799976672210989271220391830073036415330510324870834182791744502006320422295881915596203906761569280872554095959462449298843383414475120137224528552790253278222766306907868629017875016121240128497369976470397494511124436141239668276853790449742410829377116415384462197352535913977288492378600433469438015453034554310232149820496465022788929322192482948585509722924731789270418796789715836916832044196548103719541429803021560220411890118751044258356373505742750205993645236253617508319816285923749465681921629650352126825072754507809133766579778661201104009996196514040129987976733350651188715678961009190482300118832074159941785348828997810918688154398082403221669529136344135651626701095349171189500846055671959093422108518584620252329071341121883145469287052201232082683150514184151993182999258684253115958872464001961738391108916673395695146563014367624507693577603272623385969549479780071352539981702752235123568009147290312081670621238096124269106376239647199951617192519527933105860786723389857131921920862158260649070303684424889029591995714723440697015820871690336793566821664890734830017686969062656893289854529564787322742702674485147422872603207183074256467042115871823010078979958422361370931705087241308155693178456295621072604326486375920316772048777392336078897887089015894401367711559971500376130685063470211341750320555098143384310547347090526772581179222462100770410483013497292626975021097987330542871736244091458845113797912223888772347046605803374992243746450843791151730201253562421210898443776958738603335795975739958557094158029982347289994829394860677957588907947147241844022202059849204027291252079482913639240542155782796648127245395885010143264672253378636666321800824057981065420472971166179026909314922292086336662276140511398413220120956906292520660818454845202037082428683077571224928139321000338600205173499084319288907141418964372240584871794863860549811068120835330411849112030869265441077516336558944418592721589730557238552057260143267739893347853678639111380071302697107031488523481618961856587159297823097201797750776568973644968364770368505619637550961666973846534070456017878337117371180843957346653577930013134126149679100657099724149182011537856948587290512251228918807003002898527625589917876013103555613670630827717981532867032856551854607912232341830003541832105022981290339823441072693582893136342760506110843460577407843860186705235078257345415314802300251249680029221964663106840886581217357526155120941577361439742181118090537310909756316597946666036351947440128349298781574073572837554125432548453065067178734499269799726903736649941635067623665314127327673547898154068123645418791789016048011087892215202854410457412867978663640811301427864629555470308431100728053810014279257355724462224708493933856629796470652002567158881742497840766827540659085100675306589619580369213743903611641940236416476207490864413320345741722842493949234880035448532481702644311299062671627368249341123861952148877073667783674429878761666382737210771832400938383825361229318306528609458003665222046933193091307544576554129975010441644401232389703593041729630708738122621197962494462041064826134897188540497553341376544582791712027712843828476556309549761532746671256303982124293399697678975531062939795653084614786216775870053012795533459498806836502556439317305402543106300007527407256182414645288986749158165830390859469555670204424777346922306793094961060659195047927706888893493960234597890601157817498134029713439837268572170383590887868158409699521801831917996630746117442491001105184388580596314266536381226253298211127918332207260086528730616546319825262725997382202802643596053516696307064472335724646234719866644012663486929243897769586661660748136335819177511421519599406296030773710937361382138796662378387367462035193968117241890681823039829212276580572596707297861252934675521865813687694188898211393329531876704843451698678667890342147965623509272081657750922172928818728341888767180674071050467266001430916879415372446967557946114226194008939740979713275029505209466811518222713456939193892273839507030934267319032027613167493199182725372725739610958723562913564844412179919946464089624311335134478718613709297359241432933610457770992407791659147184672710394582854721924701869720531616573161537657475017168168545106623650583145394980163491396770984451179737601967806962155810313751326770608253024964326757995289074047470545932124028573055813785041902038809865267040623328893966943022408735171295458148415134687984127421696548542584120400702857207605310016771970999310884577701850692258696697558854983387021127118021407944599102311573640559397534757633252462563923122086461844793140833860811320206868190145327696796960582102221408372681978810748075425919009149591492299804216353366430205445801443747649136126052922701303122180207073521295996177815376598397807711131958455946928463827753478249241029828968552805404754197142334636851240277783397084922004729285118293764563147705236773081074629722397679836722723107869413573974953412545879021809788871668628149973679668369225755155770183200057026472074812267819173565293336478887878293465551367679960273887171296704748248974403927917388825829170665537716336214222736271679875173281097023281198836348503240539405436996277845399164959938229774347892594874285578645783822184553102562803484054101874794832544589421680850073381241612504760656076299426551289963052848284989464636287542074102948059660149208956352251629522977629949890414066128219172041062864100631861587860846647711585994760993131664994460559395011039368632176331350121033195514221492745200924986760071692333266076820950951157759072367874247344338491903955472461923389207817488584477891067871829067550826619172835709637368947457246861187629327736432399477404059647872326535028864056092729374445760897989858767071230193562436013257191334748965865089708804577900974052286445185526457519306468699727199544545267431554970890867451568631272108931136454798540889625074007935771040009286194468206662873849731403612054595419149825561129243248953205397546878030653265641140483225598693531414714264233219097746234744096769152719828387120176340743904247924442448857975778906621668587640217434125168858794091713641777864297984038476764312206308364587856529465697893427745205972172682964091791747683699456141904763664797707673279162101137150068220434962902198632132145662038857056226997598971687051522169291050809080105820945209692894325479625876502773009922486249043617887924419154707547392144571681565040013765076783106244088749194950590234340240441612244587472173120923484913950264978167878784857197796150552944158703422030240934149940500517092591597004422371196954851227909296636941489953349644289720392972091170803105114107927457035257150736486072950855723882199799571219824936385280916950075503330369758707059420598278938107492398250459139181744992512113105316959408141415542999599841785034808118013199305309610172399655880554806606445201713672777426485589821456054192202418282755233548133072155245806068299600397996494460944305896714548071272453866512601062272927398172855105507422312463352657968501094325718004194125238714189418460431381458763540986573169440375906736528120764093665205576126062627862361307748800358702917819006346728970267140604169011082126520785435864332313712981279022623458532053939621721503687606979244542355113969858230384897477443449308330497811777866300101881033224156543907621955240483368879306479966049102302044020466045994858714655722806340156021659269421585807836412159996691998188893078031113219849085144349648528654546212587520216094221675634297300331071746427682424041218414817716498900786593234315695542909956360665082381402234681397463243654815976530197687320315692708484957739014407727608745235707851294108606222956021318495735298960932132601696651659516533237471621458813564660386266350173733825698447538654919714533704377530381844369958883621105176169018842601637622092053253624355569710241741034822825663331233583367334255008306905092607359788310742363119985060134213834667626192170271734957512402929270967869299998920351205716645310121193519427563327655800513308041370960094461292440644830578341557404309062344138390029319349928902164039443232863699233593266694445656544122937690161909549700002369310439644311951500174259716964218606647250219292400752648519008372235482082344303585226035274517832930126672420499240100254171760969706066283963811470614345399302986300682559463037504773416995895874416989957137261172688669394650299983657494869608868343061290565880391828544567090435930507564181152025101830417965798875587593672160449975280124917746387566366841880597780746654912637465659153077772082406499407604368986555803477261608756962758237611058171661373611418851313448924185896159324844582307899733191148448652263938207172733486218905632257884568195939767501507615142162071927162443466700334010150808283695549618523378694263245650353712547495018217763506888673180001949779479958966452763458168762953218430107629417488004925952643088862430030145850193821617092235150575607539104039855761009661358405903698462858336829406724865095222171011258966841789041590908111784711645128766494859640344676667065146451052600867729913519983663068911480709135807105767956153263844540408724805121229791330879033934596455542431874878719960850407240076554272094626489126319819416355265630998639944030490680593368523469049815297382539798607606101678024368904518752047635953768839469289475935204713470958148406175943666079002131015399682374724626091262093520629269587118840119310608101940993967721809751792055689572476683171709993860110945999226892472703643648717597505099077528428892578919851168300776537480869928403592231273138963690796020678242552488302737197710283687400908212319620005158251267960500000843880584826333394366193294543401514475129490452910816653162037883920935196208814627144701589711549116692961840294402535394333396436701523491110257453736767635380865013592568756252628873489421962838101798138314456461888206861315968022224770511323625619521846755474532330331708205987608955456501421890196356416913252841927785023142535667777247311234799141154136963393415645932110104220300193299704851937172232879103797827135237044359267571246640119569968994518495100496243845006120025998406585163394354562162576954199342243678378607851484966890623371348502108393353090595549243769995300302094739343817755319616950378432140744568362349581237317961283967039409632086357724817392718610941673728956186418647140018842791996873638541405182233323395539284420403506598490904675819734226972763391045371576168233319527994585602561993267208396619335241723043288262060901119689701459320629205736201116996423732181541956944990579474167833444640648146396672055178557613667693523751351684587202338222174075741532107929132175875734846670402886364160987488863746510003574952145048871668034111779887846751980388635028170854950613575598155614740162006797217490238199001377713245176915583899428586574411397272036088754513052679375881945451145832980313267967243524602076363713730519884172156844990929706654804556316977036507185117610108059589094065795010963437042320808564691688268440400927173189421407822505803890328603708870153990947917496433571533143726630395418636781527677111852274244111495733463304885806248572532840907068563156567918779044729176459643695406038648575165332935741296950648746022642752296001176274640739626773874675248914085232972905518353568526455491847086658166681214461447992602546269363857985134598698949786530580039246545685787596313159304690278518901696499913963530557628302001761609571658920849518751625891530987881147781616002083355106928181257264087440868900948442268804775115075604159324918546967352890137598707575061658083512265630689146109953527566159988070988558967303306823958596769623624521230413483972375112465727566610131029186999194362445570937401149113243169600744144794430336711367525756377277663279447487049010113970610518485070731771653543136426928634558020961032267829965633220793704440152822854690518634856658177171864409328122266257590375592351243598278672963658033425805680401700692320857032440022480505812205790303767449745503212541052989982542303058823844871799205880919211757236178735968286806651367360307876561023002654935014511665462059436504489267142849987592949784201003040411160947693037955737387532448219180533741399517503346689340190972655825835395875139122254481962800422241846164807004750531481005591624365762250198387070029432838577807957750665201851628363451525283365477193342393014387244480007987915983097822461019600197932915917209606347352971169092113013348470965258527226183973486226786681167457036829702526965922322322679529480949826683373355351312354893769841219843715363709010701759222538840871186484324019928738228590347709761783120724607791854712381955336756411071897877568236690199092538217009479180875072246046862254398361111592558820555514341846119600921080735530156078118076935717995186612490037122905869563411284122508971222202704843763264099109140636489620506969397680124117469507862623223126139085587776216924387390764618376971511411985332362161526469946609780755875272618779638548212169308514677846975067198877041827846313834552172167668146183823502917158179142961002609810480200876710983041766253496356098341864425878050948576092552315679221081779697683852109223509679650636112319964729811671396113470398117950238819367455842031117723218176098298178301274770627321941552048848422596594847290714924025539267515696616378069169091503209659420828277382395624224314833071227926682847955453809959616498341707271054565338310843567538850817720412689046127086005507695111859468555059794623184009749131086333742681999035258514444305941607055294336511498123460903067481079107042484948755377433725714206580064510444224651303044664636419713089027056046379355227675269632730067598246723955162853110560747930535252284910482299704955519371776165914076193203231395753968217136222467841395710948888950354607548072089452698680202560499511069584894739214429691486895527096795578489215092632444509960930233719109876846719613084473693497753075342905159324893016867358797833934052689360380560986228899725803574419542344403180168677577562612099329636912112089606019800772996288997533213348027843983602960378544921246831776323387921964297592838331247981152545046884837640064365587080343627728402747193311493156321914789733584846192884239918703933696071452377173274440932623240849251981255803002630363161378133407035611322179416297871499242468269552202059735453620174880581350939996437776012153656205362303280764538707430445625914981181644334971788143055100051723723745741656118532483634030972544174063163940247445398477736822341301038953875886714280231690141847405349414102703876078019734526706929098091183902795472961661051768555598498891487214473875315996995612954804084718586585092236898068473412352288736799654570125589844207365170907602683412548375848830695328326327899590907648976385844900242613703733559802928864249280910783902194646577316556855181798571398282254074020093453222549452621948911291331410386069680772203123253360900808858169032133226620005663845761470522117698658258105892603352469396001931571722730141528354314473984056189766824848357455821862791713824130502336857132491239763431764324973373058599119439474151340233133437072818412973525857215717019865106799931043387747491877024292785578543307411996363500113794185937296314759185975027131407243317137874926879805245196989666607868967388547300213455540449614005394968625855681772354855250695566905989134644647464677519070596931453257133289885897788509866218204701774199703174348462256258820134510624920499213946840547233724063076708364292654355425452491019723795126673044972113160349991681030414734276947507833735695777101026933569452045599438741887672109042907248893249671947591549465534101677874240142500544087870689135583011567709637025067976119821927600048449163295112523672085418853300513402833797550900007027406288438157234682838610950686948033387817182646089111755211530039515503734051508386617115694849895765043943439574669109241942572851868503061284841629812771192952587600038859502821137807124413680856158404353887286847440445422899976352970213552706086584258011478091035676044144382694210471271870752055429197500479227260692867540982542523734995923982269329472384461880081756737071345500086921665304018701803298524032069895140576927329489747448312085585439098885049182882657082700210053387313773513735369282693235250235066704889643078418456718187668410193936652515808746535976611264434255771895139003736546596619758148428618597943504514620396206011130040996254836222303503983335245043020203215997929358640520676744445459002897428741222050128663596261907147451926100927559659176369437041693568370264742020381719049083739997749664126648510679367171604339645868709379611241612748017955359410877916991950268635086080813636683784626783314758185074544332724824229801465560296488585988671859992869740493360357293776592822452941905364019696802427882362440005097774445380954200570396145812006590660450949638153763420853941308421863794637948694769917793313313103249007770236566859451600238391893775462835072552791922451194613128596866749705058863105568244659854743443056686015234076691702934525453688227666142629520404168341604576545869720011151436763591909707127849628772848624526127892482027524920274981930545816181201225675195820687768870476901936450751390034311575765746582992421503114618095971350689920677222121330898705004622512776787549573778623948683881677980256397118709520308787054504296291090282966739996023521734980640223108876658333588685089870097527593303472421635050620225244717529034032452064249521950738365807742972268299471928725416028006727512591329493624316897653216021545947885252817374197471905452197500341654122080966302671414003869221002286051856518741967543069292480791448675539023318331047957949472900022056043165463762088434766997426160663542013909728556932742465314576177796752775603830591733455107786889867618808424987484625895095857878861605142623846157270509062793411903664738851678328782690498680187599172094309695690573080025340073932789578756867394040103896244479354218257443326577266122464652010837639403760843448893150755526854207884255862620413571527297272632766569831218179220563374709709152265871077165682373359781773830790045388588034913932547429141412250220250120944448722769294222075935563027371351807655927580015158025959625572138898772940703832505567695651136372343751265242127406124625220775506742711957841369351482725341807474509423936168486216444218129280735294626825561495489428208615151324779114150381835851985436095265964430550273355524437627640212505523092799009891033290407752059788794875240389644601321496549709084485988044069483604885730770460794525808773168424897853488007458071591659159435928166860390822912965203858343998359412784022277016029268148830570193721030609686948988891552889326701820739328542219993123801651937836661266415949528783711536034479398502323189493149072415812130169347236000737703319333188906798940958697665548771616886677126766938691824492005144372162731661588262389094871039023278111951549413979284712356029730836454381081149341379845082590046798311325513278428444550567128453757839151310444222161042854485788107884593919896132877786747874489202514534697268145775365195041017042452045108625559971570761427826823206622114743950138581155786372226161303273018840296243793678016008857586343891255749787957957418392136392736678491809743857356002653223282787074759745879600815385107267150189249389457777057449857995526369691897375384878815792964405379539234730150704311042164593645884665695297020213262566552709795486542259337829001748215520577615250251838208944164769576578624666890004058255145358965909947706651801745199532771307738693110389371212859810871610623938825462380248971254030320142028756301485999455745572070435931448678993529006732409659382164296006561389323370225892538737767987121717564569874220035999573877238987975082945419749636680891433821316935148546337027558419776281627768457355648404485799918463159167619182209660649103601451802483273383068884432518525320667537296546457298232864899845181249567749564303216594384127966342766665953806173373859397606078230273486664601324062562959067947367694697851520774692422583990301681555348766983333407583175066418602863591137026899710990382548079909174853556901302274210207239370557455577791356491744533939109655511511193714793391209241817607195761630198129108702744039854132778886955623976216688100866555891826623338884545938069885295084272642460788638989885701497161796769055162728130106020989853936452720785852933582991209117996557025282797336120023977745742773815248305344468438391579152243941440069007445720881888451278337645895286360144299569327499650609757460068166810585530301465787154411810544299693862906585941532005277549524594389008503272789982525780211910009393270374701677282211668812232728565495789080966615737171963222095468189594544697688043823856633543616605754326551117942436442537125957460064498217639069719850661138856738970883628216584507104338295839750757150778444888865291716772129566870085726545283103646790505766349902025458163949449711232281833493879911324055544061334756378975639375335674257951459438527361940714040106175508672889761950996969610260755398328958994439106972264170669244117031619095672330050154223638869822249425090094633601333221733396289052338710991353729201454251182447421054956154850532719642254909079170036076439923617115547803767331071660118480356789847534927993475031243863114718798222602686580258735042831797135928656581930250718989534922595634696116927704956242590092429882197876214068488532247940743396372667999144776697085287064935659067608246321764598453906082493602060547920882798781190442901937525246352360283469795016056919674334344872157192668167406247537654205300764497660332884096548782071365536955728349981746265088383715480423927843635570027316668978984352028014037091369117615680093653532827603862018481369787355747035263734583744445706857810566042084099818174532708523188312574058573461505370188076839726778885000150720471421791492093746266253026131332723260614416070005306605649187021983795955909407103175068903341034467520149605433826155413811515036380036678164210912063056591509699277555468459535633884072439106900707173550114604715130615786471408305296785326006511287827738729773931763703912598278341959537890929939952242539688480099900346286212682457113760584231027675408797003353262873471363768919749859951477976207061508363305662905558244275464879255770898379840849630768728709672699240958845615886842278821912734575684476003557082539532196936908028796780566723397462529144773943137539922958006875742582399278632314876438516706494894241930467556781970900299437538174251537695658952819535900391744361097817700741383642819477568465619374888901836959529038924181637547387419850485567530249555243762334589909665143104118810453288761189161272739496219127782339021681914843913505399909716840272564174716292820949503737523703650899747950448686147149018384574584793968321250145627013773036165213650110708905835682761415197630746721805481975743932933319538697189741530988152732474231607528879532694375990583970491629290880866517668185176419772705905953345697525015615121304072011015837954090353599955539799792457416852751781579827672072789858789603470685441336776916463852099209427885151800309176839275316987262872581320470131223045043522688774548498873213578794347700978532306740512242969662938321105215831190253596231979644982964932280902951426976286453385666636092376844438330511661598476365441370860998353951743020190382238290187830616162992420919562481620861376912837723766349422935979584271136885048974446830723465962225790663706869540588152655964807825685618130161663492338244759518155511277710043469677440975427596679310739609832249464846602952541122970832565874747133458898716172877427805942912576093433372704615708905180098175144036727385925504422902757184215428169536138320485283434592632452224921310313362058326540779132529496668883263112395421655973280080780171761538870373093374208793507083266320144056296041810966449336847229433792325851489535952325718561925974422182599220123156997933076657513832358814879844347472196017665592415430524237191616491298371524566945824975370367404954606406814642864619837064664240380065988627036842499928176469163276845291404976973417740910017046232881847561841649144881754119369126741063555192291261155258847514835170693414734297763350769057432306360021352735081020471950317012358583746000838386908179891797223001189320381137005638545912827073548335955006586375029797722409258250957228114744096444744104052592304790809807244319427906437860963246687605455120163975695822630260341435023919974431721779051589470022387738021036139843730241729706819620774686111801548959820138451268981956028892176396919884029002769941710458497377489169041794344647893408510103297522839453102207586244289389507277060239407487566549272091403050275624505399746131041528021744802388204837179384006327370311206618351631801111454429643137785894741825758820954727714622500946011412715083268048774727094461935740545747951977552759325731184466337065770251112856958232026595125482011603598871587422042817097746004706219319139120439868409963246426744356353682879634780660360605530607731526512171888811929953637775950176734030752569644296672428991110122971329783863110765390049060665381492953915064930494650194069260349483544443911491556335878962588365600110788065867977330988555511827408122572699128230951659390127245687382625070519613168599139554704266145045019639728835818402150858215046674710962038645635809949526294627346047680674643794722576505857602232683647965861370738525936272803534275083878314148096887208416078506661348932635239976607494385864085133305897129795718880735926409698679682715152022623134461709943474758544687786182470261528109839717654404247407685686635193674932310577451236836209582895442016927575832766314821228309769747008216196651655988439442915525331857706137532791396518404013220121917183992188214328939381660469276575198322349055715720344990345994588912141748404452487372470874160980525632476668027775951202459740770653693011241480959245507695039271583214257342803641893176554624378851539854408567197784940317110113812683842360289591069925094560068874006346545353020668341845337385687605296393301100538582195057602021070436156842142788798536696566109220066869882836627144494638648118207809341145179013995956410518274553356538079022366669620042906941179710157321439877468137383253791011701809658637445684636549808778738197577737241985735362501766261934146130699413530828485109587241920621611747711526132431784445275465892987230929747217765874236107580009128727630034951489639179776091224923526056453795366554226870382007750201265535910054600589073416864967172680403099727125534431221895685154649141530544505327084982341144282551029834750869490245049037818913617604333887932367583446655410760683835732857322737111150554995065973275051958309800073069980828941627994657911529294432806374084496033909871777022144974779427818756001993960854799455054897079506104721821567057990184700050079438610244003143499353492209878220613806688823104487329533491879540693590234600526980727878343491916405924666740616791946341655024082396444478735633674692994227288490217414374093990067933193264560174345948791152808767749185716442446579514135898899217244654559561360490101296061185556166122209584646989980217788959354478417210818996188546240160656349826146174750144236532568408612526623927563395433993330697219391181815299824785439860517839862418212873356476958686626255221642544757064648315349493547432168469879982664642385698350243271003684214881477140201893520918072747962924552958530032055239875960017845431992074899296744719784419375995226923022346073824710775544776115201467556655663570208357686935565477338596123886369326966704418617073448577475390409878324784659927919346814084593084671548348074314661232981880708828877313670984200604715351610454023725595757296543722624462386751765816810817077259616638687891500473103720375150366634952376329370477339736062165104930122574125688644950952707982491666463127234874874577113748490025197932732868848065761451852989115414101075026350182127938447123675897902017516125676244007887606329080836308531017038874468309115319427604959538420745928006289873065957903493638810861735209886722670187765932704328394508446329206022800074006857025304902600688586558583420280536543895066134870337025597540059216646057853217120134943921650280770034632508460681905993708200682647268212035348472096698652269005103905581718171441605381215392616609970527574590420234366555519890173685996537160012016935679421033796430233557419222128663372028971304507063377784499718206261543005149126342511451210069350249851662228360823408362871750934136855526719645987753562214328235448079999121500573745967890125945597854810893731436703359262672267860419019298581596502184632401612534355951283912508044698192681843742478317189671571309973832217821727594690910382403542069722587618699947028166485643010318852597260793464794693107809335471163532526067870190270426981343117325343803491814802330074007303779805453992517506698915476220984631962120550288647002684429352479010617070123258335055865942939040062749286513063254951424278185632702284552663176479786244875727693893204591217042568507193973861015570327490269582955192168919840345752158706539521559355541366756910519963608092572103751932638815233639844220427093043645593453305054445044070530807996863048562516647334583342588917601307591880313213554081183246962136370053200757679068571503786918115871100836977329282690419900562520503925430982721309569105349261810475700773524411267102502517746818700369622552353186933390351775030538284646441892239081003856232354930161258709568942220426175688922881913428661657711271289604602727557236620370546194272601827267174720320064634506731226104210544764341923685203822289976133969912126589774741174933945131280868603864875227332383078295035741121730537802661614959818449478361253365547564014786348297961079410014646009334164535117785664913673998446488008132773790221530811415039540871235073608821295802751230542378130917141917889072167105162717925732167475994562756376603466140332664167648251272245841944099649454442173876400948470597629441290877402699245871175243259705726379699672334143557626424830031557141006351745034945208827431452825923462872033121025200763271842416888660334195601567588341645264229108907319422276741056698524393107802168802018154104562347503986265847512646774879196421763758129343716570785245375954611614560803102435126644723570700212998939084596971365513959901528624161205615318765624474865089555366211323530465151437960516588903187414471814414711484501450844482788408403404652784353388107978345541035808490406811366231495971020433845353443744494619950194113292019662223744654422837769855927689354856055046171409922615673542343847521901553036798423435627792557535494184917406698469565760225701417212893907194582452629173723596101608345201182754909192407558520705433266534187140994341187024769260146497146480942252388198766024497074342982941865340953278434473449790300205462449999183074433531766356346111930491324144302009650135670554643933437430532805279139386698635731384975805441798830942073346663483758427919000556367321000918216844769701085715086871298520680812135744953517587222382800856916522122225330224473891377575481551807467497080779789438923375313057473758821715299430536595470986346938612256920345603585567954601361247122025053859887275025727356917027080437927323487598892037643477315658481467647428945860893063896495038450691108349228885082873863883596243894657608595736791517089587343689691239292130729241857838176020780440913068482798645284492923627135624668981618676430893909402078662525939470118073614027878916881505851367655553519900981979173190639823582466737822499082412967847720545814610781091087085213417136550485607516270158847905200988531869382301199873976874114294495983960194451559174478659601699850223841343324775495806720834617689922511281524695924626100967553743562406864462796501482539623369666023492116982993906251436631422357645878078494722074352295564516615407206358770920076440530589845089480425228095894916142542079609078309877525580894991147429396204722662687372376510577767996021911396854234005198556409089707256020202978431801125279478708022329620149199844147135614725865741047389979918633179763728241350166735462958161491317660965477877533150049188168275531084334432081493359972717223649181124256114609021377593582079800867432962878589907590545043943392078807217572980102558868141831086624073277409989760614191415406372952111391509460158303773604814511600278669793596074569549737090278555215417166135043858227921450170262896875239461568858014500351401363371369541758390213896235727504990387169019576968073185219604871701509296370943172781709158827253396484935465065708694309015147663887019705008549643099089821056202167078542563021535389278057522093558257085173524631765129565899600180956627024139072936533477598012408882913953833661986228866848702396043271127635921653834903060369622538157029069611539517708598516075661940247494208502877450428039818520365153419460450200940654621141091311631985363507529916619356426836842973817208162858115755768358193410608921676864065830679570125521335095021830911403187948430575109777327939681740644670928753544638389621255918729506400888277005326755748962879534235326424871530383778497959747262021682969999289152187752398460538567020462681584769143607090201897270218679914852922783642937809000026256342487799831603102579058807215470240098225829330427853021702137898866198511688293104421790790458888936127994506592707844248338573240679533392436894119951658763728233132684909048989153926180419147734773993781704131043876434497407639100448133381857672044033441732964530485759706586408185993443156191748538732307770357006454167175395570888014758104360181226876785235898711057493668639907492773844061906458352251923102144508651491556981427962962470453179159233041013112476693037428169712263967980172249000392647220084538478689553681261002680002919044068320111101757534375824557125328650541957856979555818415991045717052660619006837851477822260133379642585105227318241797801546558476856108867091710710049165572040005382078188708055919955975926184977853288926333681375288982122999472447301787559215947473744275020178220180465820399002532806994494537019192690149102044735013387338177835002172210994031821727249678214561593248330062640106108951461447025664669388907963205473073982168582817430435008000022517529964211669545702818139084909500766796560029135131114427888524442724843895781382931180583926665257821579744375095661874236812276794660522327614957406403071459122153720826219873193109705112782869997256275684756215417176927242842573228361466272172861264038657498377079575964846458242106364978673966912431032223676855558857774026271111549676766422046485945148601126101745724382346449446287836125759122081496238585752769287496596751826384736307742537784237929959962485405594702523335281214316983806872738737033896522069799002385741654403491246981957707574372904114034580825939256184812261736606138930506500854416596783202748512733974769823880961313637927943284942926969256190715637612912388066666363424149783072007030582587367095037726908787658854269720451661991043949251155436198528765545452378969910289562376058661621938487464980218314142975188767850198708142573118685713525043218028175941203329451141633166164758206330347119689223780076259184911675292367987409616930999543058196108052059386074515419738128061674665726442577734509437662430188368787387121710935254007813683316265687149157560019327588834440683044352380114368545854483577869708469532698636680585834304730869489895127690912217162777920623366899542028734730686114495565686837471594670804672973389392612073715661622402823962957097265589799535324933388474470833919144394538699427927750132983583380404106348363297230882486870096350705337737301013267551618407384276604000178321016056152022526013005469445991059082536624642687069506439334035484093895739348108007655395468114658016126111013493470245553757592839295684293035365221124080284250963352996418387415841077143347017819140274580189685754501977643202010531744845447612658220206828067956353099219984339432399863887162108622340191790909579515420084482224196300566629589430937240454469938312277428079608947547564336162242603027651072806900861719609170675252156445427621337940190891964291831286856573709185272696588910210346190963630203926536656320530513568417152392466867427720022398832768846464967351216757530782671560368789298736738868217969957225282465159406340256409612034230785839470368907170603964294878048986391139256032354613027042392671145955674820748865315101736152392367965794279868899934060288099482260836839516223140806919067210556468385132732383498270335755361748156368353095227917005824909627990060930053278658250746070863199161645228875610097927382560668910814858227100539056896510225606594456670765632973807368625018712275221238990267249781282756447718685400941028513053804367923752003192028743113752501475477873398817976008411561923893109109538408710594330731325156745330483450638975668004030198096062190065994921104694846016457523467575954649444930676099323297866375501600931031685197928276779118284303343280900060857156357316865688060033313990828737955296275576352622776923117462411450255777075671999072120836024113209940805497231785692186905601785006878834455501424384954342535921085671672819063340233498919448479691684438992098952024929730575581096094856408282558956324885767387314609397183420489741692941804383371144179919521101655050494499157107275551462958523878992215331346277125762403184751096359802619397001450305330473472313428471423676343250409168971471499223126744252206535052426841308512715051798990425606485402257475049881680586054021515212792787105205074571775083427927881981977326060160875685082016323514657623277550723563747248129982284772680728166883085946702467177682064201382142441518657712598055661200028774170022256856146896660621798413276082346713241573732684142885961103892847973809643131291727423414442884796654329029758238498186071358925239925414499874421750742019341236622552194408779147418315409284909797116570747068733535639838778684820016258921894062054848271028416693157906818057264663330201815142551434040995734045307727005013929078651092264977288286931202828284908683720025951861882059338595059342225463318430192128806710432069588545745062649498334083093793384845304274153309705906858057268453117988244718814546588279369783505675110721798092697538296122819485317655278404681007376845421034727270677143601675630213423471123340998799316627463297553854673126285975416741833407240262677407111761373793432265992579312299808060704057633154488279630102855963440928054452818913942897820583128304873762757862013219954429645927213424199045532837230478650728816299859707806158264834029159004280415380855123998493554043774986144214467883344891433564749844886840030633023891899422153869771266970501769101490023628263515169238960693897751863005489093733860310790803072756250044320255451024436256771796829364439228334906478626725945568363160877982429247630863793094086163265763060750541963915519962279390731851385424451821114887312650623621891075905793886787733483300906844818672906877419828803305696767740346607588207676253516229314873646697495226586619064052616150258450940083074517328405248968865958492932817540236213028822584225375484460474421649562782347644501272568874184685983450082050904655443783699772108386037198350471237114493260504798539451610833395517139732795373308163076164425056272865485562725489959053365640458460487342856194339606189615493684790810962728238685041466433311985847600277249082945447249541943210151640308962382951524235589785034213811176495126812532722102950665846545991748324812224418137945261611243232587611154163975038074828310196636680569963023438233428938774508971202246132723571352497736473794650912519382278037286432786738009134990524747752723293114512276832272845127253484522920767505393821620110307186601984940522910682945061054624681231219393428172438477879408408535975369072815942980073663599317683089866867094160042392323199156191920130014948387457789002511530030702290722530432466437883543893555418850269052211636752388189704492432948768880871587056470285409253254687992583014901879201835193854306549691843718880321295617485718079023603101551549672501524971216506011116985085004865522470770687760609634697424915771412560189954704668739963193495713841221965341964362602909548703254219748299643166494930107420867472640967528427564777672109711435658517496808940402372501514933200314621915977155954577630521999344077636623538149815821887080332443193192066338063822583560061409583489536639505912656781003454913554755564272841618714110443187166312201382101246041997063650550568346796361245272580086605595817176392414149280458205414802973737203858121258254033354730151995991698679957930180865383100933670973525191727478328360357032865708071196258907552092944808335263861451384086114635739563333477686619197156979862580689872652662908292069471845101765935936450974844707421774043613639492261285726638566932923241631703467375937334459838163872933738813235506892745964730432532536343342789771589424063447587176963800967342749544882284114117474368865640929338666485396094781747935786331462339963080543586375985981014750451399901785180857817206581121926037537383469335076909376101327355417392403344451845875078233079834983921155305179582814227572028761754780952905683324813335287220487639403588037961195754417776275069392111098862223363350677151417737664823973098363789985591322623320193106237095228831383452690979885332369701244036248575043322620460932810530832807661538202482268640207266044037665720984765732420727421380105526851754330095067834764409120822252965314977964525253904289138338948925504864190225605077756011510317842983044717764241454685880627767926970139917477533844724982547531983710659282063028704549616820219704164606705768388113982078349748272413263244122072572329111256180075574555772493375341561032064403920226522236014706696033585899290219799491638356199920986103559377613623398071798660685965755785461818651241052527260385394020988912079573501215578554930661276042753298911934762119009350751056839270744284729626143178779655214735807234917122666836759870458690435410253602998076137618329839958519031657892693890479906312034629368862023274851920868068452934202308606049380025660393603837465662428134519659671021692765312731621224701501352427063614892752729924633183672490992913648340094031909897163057492926146653202273597803152864137665199389889334302816986701584886624043288531312690175481941258501553678406898391789697191783168862809726702231621527017744046985515176030368201500785837895240042488532081186294487444193556126403061500299112009379239358398167097544041732186627733418391394946529835099038767984015708032853219608058340844522469840903098134329876657026766851715318897037618458501287726684946102731636720688568946266730902070275089651445969171438365357057433835745873761675958933429560039422120694201435431800231793023199457814182222268491284750365061835858458624544581068912838492297010637473038286797353550341452306762787703364559658534485522837642118451282359524129127309973561035704273668979882636149506107197255160900013357781807532425800317498670520623522771405780540868670552254174644683150287929829532986830006545087038072775389784913021541957532569354492514451052094399181432247530104582268072212604143307300100313310691889102714731379755056610308605366605597948505766826802591395420602809635483024500832760869078370469565966893866735017585231459265540925666387868138193434404450033889739445076044099688285181077854526224003527446480657843965553465293012639723293793086661772703544643143685495880611314164259926206777262483517763247014991257665364701759592154822995025616770238633130552289992893037162049131307546457900168565537681456241103095834058313476972517261462608126174237349684625497453329713808593964214936214526475587447750938098252253484050877586015757544307250775979945596367477374927675941654819448541513822458012073747603528638770834379395146176732047423976585418872098970820499862900856149654677527798832306061438417945392459580893858185125046168211261516521327132774677287069767387148618860099489736215611023181017921695609739380276272859620117891855251885128564809515450983762591841221386651337468570304555271848047406630086998197679595352723510061013999950732106918845686551828918388173736398742340263111906799490888604753659209472363329351037104864044355949528868191843511721939771819421257193936279823588082488955389193691465927089305612426145937734073368060536110583477688548960697673312384575035865012575357205714766740354316815927451945753867568258327734850382285198664749484150045810081950866857444318783949037839697870679562572586010036680391406866523238147564093938920501122934086350201996100637333056857209781988679969532631297389070053849638297400121042318043785690648159438680729693641956945354787015332916194481215226071468473679734528169728156305819294995302290110119071108609198301401307535460156843996324641934027899485722148683251347996417195513177009797222307417175178206851746100654983345821344359092934242796780187193692253689628650555910565410397636914125993435205933536984396053304442127649700209855151079984571797938881266331668181079484500915840203722629132920904730350885289023384214786629444046108398855540332217067731979943423417734756670820909645900328110514500586186258695149154426493880744120647000996328900174705753053349359950373123620054366094377594200876226476980113763174250857503396640858212340313483730799870801267426778523909627643325007679129493278713533520270616859637168081441159121483379957091847203842573842643421322388294077352375681262129161954334976309425795043249158829956534779495674530406546446006829381810897067986189762193124052342971558409373510482567520944615296888249525214285225296808269561412543104693764247401513782444141725876920421460259868195577769232432845033587465226260147093960555370815296403725970888488062787207946971182197606921775065531000110203655300605406262604718114406013691222539420009345578990606393635592277077476580181555301912082296487097049047247777647767905816541568735920157294778221914588996157392964822160349808773690087107259637010822455460373112261872150858386942492714048750972006366353892849737020932482840344188802993248431223002716701725685777839661116464534026800652412208357178311963603951107102392725668199703946215867720971152516443176224948293609275821204835014647123958536546393207164357571374742729975146383770004117783959274407389629018352588895803343746408930340672882450365200587216502100704702242578498863151988311248108530977786575322304972015098057150919199192123929545501077495877622148136275757409400411758809277218264215899504262235860360501142008469146426025698236765030987446167472087500296889778252453393939254321534208211729057979328242315132692175969372570810262595033541825841575401077698387810835293538907328403578066152753096387689901273208162878894666412518795683431374092382347792998011578407274605951333358632727842829859831124281848690839804851780018114218626065043289660297592046828273710101810313333902444863190265838825283270463884208670487314881958601444575853794712252484826084286432663060676112840492573912508382652843698108015277856103363468359449610763599168954454634462307408511292657169188442486942854263645927337258124520784194664740176116586173082678628390169569747884153566497119848295479494284211024746164353863181123971302540168014598353037194817709421904617202539080828823351680487889470971337701295241750519240649600777155139565369195726605524548521010439861092538103033694072321887162543928546587484497074423283192614583936273509781165697538209164984907759912337808515975965973001251186255297197369730156369490682860744887242919678845204109474945699092560608163590495414610025868883294573532230519076086183998278333726869489621062057773187300263289710290977772908995566693009583735477619315014308583611916471707911097041446679259903282676893151922595060866311615724426336359328833749262150825507602161415809135989791840647001386516143211128999337651030515994641376051889906804677110110575477840051264537487350291908667303754570715200227968962366627835966611012776856903165774826344670522694552768087386475478421268818240626659316792884793240848251310194708297854411177682715655442047997544328083608275961182916482827421143016071100070017632455988972259486323372570866885836285640218781985884677152811706898212575848193867838520517365199956045351681580737132165502274059440802859619238538127314406259686104779085256883922955255873368687909471653252439843302661668647091822827321240159299394521709355526500382190195221173683887491220824410385602801883027936632758639019525890071680543423154031469333790315292917960239615518298957634524840325484823359707083984465137406136548029647374780007026261706520589379521452958237729203871940444856086562598267268926797276793665181360927240642072799561216535669872541421775432305282378234797627730149345038040509008813452670467785923706885963052003001823055633507056282912171169237131152675861443636065671972723933877566486584897878510080937841647487828333166098336770648405504411219896522303007848912907967307894935220029305096118762937650632747050793190242491363683114703263744319088210434695023689762214051234673439481130454740509175141871862356827339756747538708084768244882345511230374311061056799420500837137333077327437149753956889055840590417824347202400897408637409284231184567990152598760867817033846101300855585176695193487574443931052627051376641984884442721638459849974047310665876176350403162848646671315326135406282793463881403771263808922699261854660150052259412034236373614134899338624899255731273962969823652009468822778937143723782892734210355063189066526052449159918468653837966704463142533395035412296427253872641858331471191089982895034375172975723676847719275855104379081085707906238684225553443058298152404246751636929343357783973768827565552129037753695907995300681909840643472288430180812298958745912003373659139805569321213582761283865455799183440356329480562282254195764267213395121456904021203283311227054642926854601262262925323978525930172785324615190282628749846642109162699508259215919588693249193504503260796690071504034848701616797198397428345156757036728209151396935543842395625149935843494094005026778662209553028975664072682389377748680491153680404223210931299419690664782460647159931857069666043968889292896121094229659049629108516169911120644187719288576471156318275253558624125675371121886208615058125626717245547701337733303260195134174663878337309036487567615024317763061498621490716903892321025336546198301973219626362477476486968424941700922382838489985873935559191443741979151043540757458402054248668046243753869883272554394979425465351320816923572594614356651285097864343074908836269555020832204698988913131734782246842541129310463088562130109278626116164593956613650098014345270866850881402206320174842885101943266111483117335357901819294718992564517019707641461678599800746312612847183919818197617802002767045430910580356005932298821692958493240448881464467801771150624344402543571937714980723009448516020621762950351916637182953489405199815730146175018912859676195590619493410443617004221875646467981734308993199608304414197639177292453621916577608960933070233396276605704621107884485414551911954477284915185401551799779977001694140634667524570601933048694702045118680059587288550660917886971993633834079602904887944385961624271952092589258884742682917237282932254998712900033023158010415428217763636788505862396336443450431593960895308387014884066825371754540012427703073627608240931898728293936736096389489352299655922000649005881933046140176072072081106001860124139586101632526010592337222146834019195469610598313420534952315477293604102468901693968126029829544205622299500030863835041031529096756328841111283308931963910171986209949766255312358042203948421721086563598207921208170773822704279103539724836996159590407860996977817312307598688915385719411302810387985848644150419950157879533796728176252884137002591620571314140522170569638559914869531535433102291734299693378489068730831331766317750585638729042621841243647945239932939757328819117425840189565162357108098344948717290613766595935240455489065622591641261978726412617792648866669706553082605452288117968887364778387830236017573812020692597112812942622015890824934830643657133498996852534664150224040230796304417344681656587338326547431855175853744328318224045627955432204620373584182725091776039127128706915137907071707535820941127331536161648474187536866091318412125626758149979168307381983356730849895139360238467182167345512177302286258543096109222125592734246619787237056949928054450896436734450637558266629678850477040276025671517064241297719522733930018152173040456961368444169156621818536388922874096816377913604272759634940388927283875293714706084676492486813396344487826839262569779484312683457932407656395532556146677471252873945691823696739045940586204469998064819541764648047186862831124511105997099652027319080107954472925795552842000812473625317638646624697743866544815312842795405663416627792250206691378221308109864231914119280241667466948904994546454400401318443962646733964284081545870785434681443506299291005976885204097138834077733239212498830125649262583753090919061288712773184118119874991489202867220991605783733606605282772402577100351888170271459277386493122245525719021061806789513811519985817704913540294454307090757798027905479817668082302333887897255417331146354554520420917195902896480024797398389066936148402931926299231518824781181445612543493848280966215442666820610377446882080348876323242490644597351387156138709360822738829600812653131685093291123663067045362880484822270055124559173956228868352648662689899054067315723817425280477693960010754878962736353691187284910780774158080689189224751595855573959049160009210884797444277499545943427123607439651630194438804491466063790761061283850187581403913252145508982611495357450454193334779436943323268655035463125576855680051652053371486012504951283237710288990111570546728649962115355321514708997599507570848976145797497484931164455955118929839921745805409120447507242498515752163538987213629979874897044809077716543890127641775341921356264647244283199786031334657728397264735504543169715725409212288176771187215592206344536912107085317674337030161116472657376478689860096672488100917890918991967985554326133512382568731301069919056809459140666931991368013311192189281481499817896845090891472675795170183257158858399428734138503943669387658126835103829035297894323530956983761700972888302252765078102724401599772012800814073582867288659931725287182457234401812398090945171163317232374134184854784431266808512406943999326655796680101142357469587693633117856494333782042162245574570917967815794091123192189980771733233516002065842636154219777798227106819018245478481672519663471691559163602835879001394475055648023045921306109450523749931879914657082043111135368599589243075667074030392877872794361784974850512676769816240356796950158060876428937074935016063032322885449492601165017287332456394617568276071878189343888510378915358624956674469572546192898956226559192751009501010202015188977470685394456857657763260073737273186144931098089466791880217475826429063288119439608382886648726819645913329583407005683147505359490344567665791712721446825855176740431928638476482183651736454151791644773767384943699525300175586391708012917073411555472819358588887299134783453284143909970951703281378445706359810352407023533907641881267256310545825417151106427983796957779200742629165741266428639172981680990527708385713402669668241340232326990194994029279623472302046440381448708167119296994512339638832984641088615156194645967472981659651209400526930806209284300168793421785672003500433009077412792727631638507449735257028407690386652402160315641683806293395894121330667554025310224192834076623589230718487461929721484417298557710379716094303074305578536823108558869117937502469483172466591118842650037415334890288248728673062290602061462580986455151109635683019161532371468938072136444320540928600575668130695086911834191006360706391680671913911504302951707716511432940436985038817411979446980411642264707328354619701821353644469116237185405548607831133931860343601247392300632372424233438578564673786789138826404076182712277912590208257704526812931984570673864931764396502037722404423482055833806092536364134384601525193176801827939343232302651422087856499810334371955337334700245172180851663216915513739014971145666582587892410584987322202740922039221135428487422843629331868121250841339609829788736974969083549601316146374818951210474446405264857924548843468220739311948373793544236191686520614227717516097566075243046030590133112057859228625154094502520335711108257491497304147993926648904493004174807836639666684178214928688311308181803004649740477253377964415284837161160468626614647116141768306840860418220875545610225205926930442740525639681358375927393354288274467034464093230692395301671213188683282982501304803117557675409932400615873263304460969962600738052429038907558314918772210913224592745766881547581392970886132152416059255836472875051280094086761079899112999890621871360381120468491821650387542816556402303687374981513407200922886072479700370252978907255343240733584919482474829988920509427848878533457092168327638776501805107119714855310247596491328050461022820635394091982556549189749444666590624689905477429354729469837263210399895070372976117531874335180868921349652632894014048901376375192421411181551778744805845495529369733689603106438286833846236341054823893952215697501794147173997140925235579868483504425149475324458944947879025586549049807566909284032093507270612748833374331452153108759470182913789050451861581339889936862047069634237247856977119209650737496714959094073837079863102510693965768714637095968547410259092992592621594783999515772514859819560789757016314628482109918579484660209834974885163591693565762285368917365417086283149928316653783667319504828678259938383211094818740159226661177781405883841172826433082061259904642763494482286639706311556896372586010178296112687430474594167278897672660196318988046667983537310121353739418964440623863063689854118477421596339556689804196353678230295488033787471669433928920686214213025989491892358288336750396533102827060452151875528417744360382515590886018418262536815605522173453652920818455673224165760571777372463624826594122695608387224889234645096360358551506175720741780248193599137792368906381070582426505542279967759264110713162886603032559748119164651931156634017121978983936682539177960973412694860179185591463042575982209931793725745700840323175303095095186821142143320803116903053086965413368605190115354172329062213334137687961412949425245353589917157210785511914032286087965048575873878171689726411794936748339908284812900572700560726362265836243047225221300194507789479513441858361442729654390782599894138770934321830258202869979267218142983715239222361428400588113843640521665211887964014485350437586476549714950008015174869685705576696540109199587868565046891269997033154767353825844345658034212595383366988280420607139386311903902272696300912939520818896583198979865406562622250787346112211478611721917191889560777635576032049203526153048466076909921318099509290930432163373295300277797602056931132694880028099934733760170785823639288286028002598065041305128698834585299988735663150631388792181676388380734067833667424699586209492717639918305530027654155408152541692848439258615924339760661535278321144391471268713114256442608723039169488189671792237193460791578691455350767366040992471463518521111498826163271679241004061974842806799784974427780122263807642858520109523867192535655643556786209856192297462732796612849040929387612414183992633294689612847067137713335517341941921175383010584068235304297569347970371737399244971328293920936589721641370454831655396867772952636269980069570979796617248038219045629022399437606984363157305394495379720811393042376851999658581420825633684799103911579362098514335235885435524447374950923243188046401286267976177038885267121585796450864910283051283886226669286001495574257958116914134737052014588348649997059153843697740581741118736526980261674629451892866764147288718159531347146045803787726933870186884898336950152487805742724431864661072813013510462855723081128020307783075686187591261998308493905446830884488327441292736497170379653989685007548031487444465992242147967506025350769026695029792433168953342792794410150741094809218973384578700442189192700332128830873238871035349161285516748716851455542089628980352172983330652429101128954386332873486584655774127813408173269158838774992541571824909359428408270869559226243665842845783735337529538178261455453063869299392986447072805596263185673001206053379847867454400151173174080318840636795382183162973454502059495237043516496459787738784805779109991300772931826883379563364200786119126150303144104814414864087741333325776934861729239933895133933745848954451710547358295542581349224856828690262897607760427615807940370878660486423142317873144994001839890297450324573158190243457262023042915553563220721989409382252789581866418225057099970005798707279604465902077893105433969675932176850782661451022034124968018079611019657059470654219804641163983060354270261919514205202560970058307724469866460737848921880987602466119653698393825288724203940939673932617317202307110795813678898296086499767810650957478985006581725140414165058736844081153764641026127543356210391916745496230856882831698198066397036658252368244635861131873512726672726227496445321343815319395502989498919319088103201252570733644371068283587977159275575987807018843051633447740807625844604302432063605981521096394501165251287513969587766305435141411254243264497483735565687622835929879682750085004412199519081627275013234330730989535474104725546921549596184135484765261482870161800666735940663030234112694068773441917395405465732679751238655518438995300776128372120041286401365492485287495191669320034687717261246557304208965676403318111924626146538864302851113215363038966251639903552289586671854261601890377970168204992086607496078502106574924926431800344602420480310631751559752989107961710814929027440813480408056223312950001965598915040647419642451811640806281737190044398419788866336685041577750791348059246997398102495749573026401487965490795158785141412235564519844155208218376254396735484587213154897393189023667440645172308395411720572118165536198813468803378976039334040015076869228868412450559216290222445799769009452342140729609196922162261949107720160005613597536131460934916341873245964265464443519017698498340572275061150792022836241058497566818789396134527807906712586293993727169283357239023653929363994512354411601883940790010308520592342252980695020583444537573477897801825766367527595512515028897667534348221351710257928056849814766373001234560725555938356477513116805757135431778901552349657652787404225127231073005749708293173134561032695280247968289680851841643442713032798098705417327336732354314001571839806291391065957476378105509594714120603504166093647861531251954314121740163418233003348671475215989707262538568751630620721102332810838408432545048250117636665208118978263713711393465017441154348454462458500700240776664724537523989716858244573850771840178685342492091857066104886770009667827727256074073912926594722977273148881525821882425546922573459503924697661036302555684526361716453406271497012793024519781087890926888105757135838509458336707308040057136562538037868624701551293382171015134100395238089515386417168078439572173628592725006089976442160388079170194696826964408589446289682639574268192434248503111907218236339804887629872745290456388659621616393464580309347223047604814113269908888827737395533193441298178932193302934765898666259419729829497128059143947119726748118747327782571225217651358586786173508094752663017594938486887184480762326307019285540502248868088134238541248875044762979996952956526735594412746829565818715058565230682698176361902808271863979561343760056681428453408206327200400814076961404083014524506647113960620167240649338523726124823213949176523554270817099188731436432472479869330858616555749195075339153288870287972719946442235247063951260055129547575978562254159708511559625095998265693954335431123941808791741134295119514879285382216057583817217483143008572533350655587922105278054194738380477186909803055909801926921148522792534577868613279573680996642639733973638079575884394395937709703034286285792174020940792006716563037425528420129137011915066750455513244070128319570381594389529202056874008246162426501483668138589130892230603157584605053403843499848533395727417363664668053894399842088131970965574149255315480870488933084131871438596588111846363236812489289669738614999128145964596053431484112300077059315248952676233798518289160674052998032829311457772632455830699377207722046069462358482582263272934507723735350442324362859434123481473622877334105600636137741869005955568324239133385103631052564780269747266261360384674647640527825182746484581145170283826254860881557277683516485522395422336771821752595884126412781163657285766353007155384099700958830360777324653588945889768287387766427635285880755857683461024851707175737621514735390721836697129749326100076638766724349034640958760727716190524948735596388550886035635785523029637062078004761258550883842607845331818015527535892672417384184472461379449252702255131790296664453434330064408592044345498066909363302989451014041203420478765730072977978016117131070310435917406109675404321173931238091325310026978710943181309470820796346238988125577418344354518991070884378425880715395278167135844352469680179580170838870521770370150914131159691336360554257583056405677132185412434284370771169117807213957552160547543057885619158337448831852953536892304597863562274531697347095728121467851180537865333450572677877801394431430296006361309343091654857105573033448133189033288482841678661487650438301296222331609051489965446003796769111396964579491765243294440833916578887408041589140572057604243293286198963993585932664010173724420439497820279798565425701563572559186795730875468193532636371702595226335343068044385392410434208404316148889077231696645372530618933386360794834656650915969661453660937883777793412471757416060555956037675111250806617025661638932535567004947030262046066305057208567747866747826170763906507756301601768026786060013326135304598699252644813997083034771732143353596002815944614779141653548790673988684613203024966007424787031817765906308426297498547096327500989463628923998850377949506567132506080032371148841049857229834932470844626039711259654375435932134915149512498972829313799163159177508563313913232796631539331621427906095960247767293962342771478905997874435970759656853428729679058871240793608565208394366128238297024457605071369778260487030915472587081185991482871090000155582572878671710030322220175942841776064544195529116386082230885282414683375498625824795923630261801118546958456028875156926586902837807444287267970667710100669895650028463041188516078749613435087559643304110213202510704168613772441615194593035447270034559003870978023735761027201561682368106133926376930194511289931800159283605511332203412312419334605705972490280472297682103902229382785953239510990361838098642057541156246276508416222418903242294801421919599876352039214960820930614763938751318165858458784449575046915838482853949612567699226856710472248172537526815908608235641645444375111926189499207078340768984660406651108198968351547427085311620152240531112416890240712742468588366310521012882538880797707999100713900258651763390046239512397836337822561032978087227223182299517767731849978630588742952100213242532705430374599225721781193916659049473837346759651246892473713849415956230215482418934225768670937448494124879596729880295773910467276395052292652360734144764525350071391662545128595040811512378766094565140472575609845802619796304723542530552994075766772705343851402539613427073810700916626515569442797604870818743950860529272045661496841781186696923522461630202059599439538143670811614720545083550286659737775539929587825541315453942119785908800003261249646254195446246877991130974577140819739387208590366953990746761927606965335253870154133993026004830160272761052428854416243529520870958448686162682587911085932649355292843656891868715994909287984239901350235811280631728207873149381539245321011853494957390508452733336713686454066806541653515406046445526871334260320037376147001104357230331559057225405608406373267426693096673626639464219880650633350064069579101187890148255127617573289059662372802188806449292165188137012520084867098977092655811597912253397206646996382183845727234945275661979067480508338716538806640569106217938844740091967699487546344371973379670421684299456073699261019328031122512177490269300568544529923489250479936630122877955682846776126975746605952191585003980121999554608245238447327924152767617585823442690867079855961197428667631115147730887055867778760884176820903081389759123420246438976957709960986843140687417381632431466921356393311982449819735846145848880552559285351517187589361826049277377133588457557635421627918356684528307149142266252473825781643951553586068134835224294210082625125152978019535108844802058306756140078766884877999996091864868164380875171435163521762967822254416156884062915429916075093005478690235230967488005183813000744355613078664457707218145679273196696559158708275663574443789699953348692916197028601859488839060770702962071822086878561587788325986712982216277286509520764290164094004186823818311659243427213127691248724066629414586428109526121221496101123428066882175874190742878531286829666165382294274226101516967402271550723428272576513961242332735197804380572786441635814698115153900741667428986515948912906461177265445344452963453695652808373292571822619105035891159238036572900536105327566688900071068412327206015667307868820497562565038915710068881027326552122292989937734459524020285844257892383210518073238818028898065987572768978755355520544646949350630996985027066868659282087445957081507002166125895261188105139911457501708187808062191894159852409885002093072570722178730168794326899089832348414020644210771936896640422877569987285004827355244328064484820369347069690393969748746261202120934295969043127219483098331358551407631624998091145489308439231619608118099128200329953960224154883146019989681516541210665140317817670370864124951042231052503510873416310437939249602699203941270298780497174379583716860079129340839033416741492576689807745317954719246047917584602736333833912579163119093199631573324492473358207219252882282566847217372201543132161884726072447272102871262116483425339435061983694613346963865255994660846886569927355850051647814170197604782562890212941364786049635362008439700912594292066632388652692052437530411111223964739320974904601968490931760502199502923257401054484772346300685556678322122309141720199204321692662639194835719841172358285595969930075739999515325079678853152488134883491611132761357809149282527838405261202631956502153496001942380007452911038112979616401084336638695475867921888534575021838148147167326178226266108488842685544462758518043185632073127527410885433078481105178913341342820201893901539196240927221686624667682206591940926257585749870371943515039117808778423130407867671350960306731258448542784740966692633872865613318526825351024714465931285825160411672189316974747477462606282897999560137952706846023607172470728953817465293935596683527468658417187798192838371479602735811010719490985620444516966949768281699156610694220906216243667775712001475074081505291334171329784311555850083764666289266668496890544076378303048511341981260534185853399431818063092383155544645104565501058006585326345588368128470616298362065669027207844609306895663305514934300602986514223466082280824430444125244598174837317177040827732929073732798191466344037526847493633854583488970039824082149914192811503094069521973159203775033782320978801008789832059354942920128762621591225145414492256159128478300613893935031551334168090739692238930029907885183656445176189338380787133407532969957512454679600051925162699656519151643461230656966617443726469478594586653669141202892898197415683677206774789930031129640272763536080877535020886800218325791968614131987028518626345352170296637323077320350623341987800574151732319029134290350176094307657743521740625661840968279975159626170188006843697269649861008492694245971836861021317413981051954575353468624060149103079156440835830674933264908134979577707972949687529539061918919911290870787365083000691261545360802270942337599290343912747852980432144918662631755035097427582769660533873479854030631596297547336165172479418581577138586940194621631078160689176588122730569960646832189498389421932803436431533506282090113999644681251633595496326204102081766462098623384375439958129866725915700164220175789364531525456120690090100247969646104255458725561658141200061404005003530900951964745237821917055496921896024900744461158861586084147310408461026656231940330822486580667569885359738216945653881273522604154673355937667465114234155340942250215907298865238680866478767143541218917943229881704945285693240740889391067043320561990991545900720931257032456379031761414901046896177081881061121366229800248196116871359475568579629930158381058705487213696715247559460028900546149328376511051986223248572886654468592845749461016264058321746855907868836791509282880402491072328071261642577363120675682454493937036034977837231054570512586528238570779422802983572714885791979226291039468173152671388714705267259923488968269357655346905527787165899302362120689784826037824944865576016224855316379498592340669371314172889665411041116573176533357529094059272854182601545095333028515001830633861370777051788859074422419139784831819346988653546646721676113023566723164241704179675113090626661013397110825362039675114602670217356838073650026131255635641856791194034553568940189120602997575320512070901095056086263367575806289610244463368954764110748282723890909694182230647971524063689760179210252542142611469086883362950022980960878318039386799454092588149010378554687397663859313632726677012949818424488532130293184526091896019229739494922735761317203243725086106480673987618028440688436961553721467124042329444495549881169288947698763371323588074785838564615797868768528405273854637943769450349970404887268665290553551806969005313075009783780870157105961754973150640355652470460507690026361743049055678922839104990981917755907081770159038904071677222475919796605971799332762250401416621406240153698977466248930684390334186352607727607358114834441840748898323644947429885098608542327049665867081918011843081571790536349163751209455915724834829783519977710976733944329012702378663804736632769899203764300520275213631853546899285584679592131870260561228505740300259479159009145368362167008550814398298120958520197442390911428759169802419327460991941331762871814995921060297943255459019058570375842744682156839770606626054308191970726835363616500765475746590871690998777426498352490799856638939065936639633102322837280931903959561989346048591257007111430567142019371015691680505025486594139552056133803511565204799718308777946061018540673448061465705354298590367253921006692272038958477642230747881096651913973006993841743185225594527341765130737984221365357332928177517833429809211344285831989749597758333798138623654215492473829844172183305589245237969281547188136418952180375623497964983215270837034364158480429941293486301823824667243523562209922079468776770471807041800566960307978236431505560012856873670071898333328976275578598813453100888374761309307683565668738592008726456118195081108037431763840056778492694668706728121969195683572637446185506706675395499956137751493940188489940348058565761978679955644158580290533112350107607979009773260312673844859144204462834412114876671616434451078217615388113987809704745860372555324574395242169121309798516478598159806081201969730294659245231198903985389031926335061482421781609597175970692809342273951681084843727444716860026973159236416943783095321407563341926645094315992130095961691301285523809828096779303200426169603938858182073518387552355780218081311044131153249703133486844807055035789910325463386811938945944565992451243830021371292131919148164905515739645718956353002321623231198235172038601466514201382933264184574742119293118213558386774640782247034315996123055516410374384598512687214281113144859365365794875372704799200809142532421055831201834971898769666850167823285250400113992768502803149712043661625829703575789687107780640713466150829981204687147571861645267101149044526528215743220538096673371166404513936295389639464538544667182802468119821167741666397432308319744080208776845450062527805946734652486547377221046619498741588234798658328819676847231941286780810993181675462288429715142103974389754098392450429247496903327205970529943205673514211103933041106770509174024539622651829678073565301396322212516286226959259337665592522957499376391669847895590566527496685819872823672991456209529938549091762480040774085049146227287964710496260767161493492228137487550593980062787945486423512681305171718791064039388031265620582342193366583101071887925424580571057728214192455047139352710724764054965998541860174089856267199314267600822398078943956752029411850098642526441722074310784984288992747635298278993658352735271372564964915670504500094278752780473777293230810364763756674150098991725822913835175283764397178647180273327929080555391430615598763832879879849965107124045090374556422202437525527361706408195418189084472411505542501754979472291948774942077075947089724622351388012812557113946555504228297470150733833529997891674005743811690988395398027262457847470087369201485140552015183545660136444751579814283848992648673759955783955707921081773332767746487452997448312980644131680720487217368306061701831456057765383292235551149088349715490697789668791996977185050940884684362680555621905117813954722332879320713293615501988055742319317115472452079522824078883273592524966291112809713105508372790989392612610262223592313284968495350077064451126689333106714052764960618551266710249743057937485442258811651425403495062434630121003649573560896951470805559211392347454793837098813693384101893491721173357904674701522106712420244125147534990258560474802172100778776826436232036711506608654537878563768601982919086181934920224482980293165086730450666101349549155272737524579799353282988595248785853909343209580355025837899551501721554047361494753410494731258665693434792868145447831747210657251894195588572354347897606183643442785288143696292803887836844241451055058448509141343060840395061843834197240639574930010810172026746378312433536746041469737053840337102174923525924677321975102278763997025401698864666489978739563355285041172182055180900162018684464656252214522610671117721998397694964986668415414613299473701680098490025150406559394592437602110946764965859658463806671730851754553519610589466287986113072277768867216678109069464862382534593775978044653559459405780578625858174183566127150865902194082877099304733319576402491192186140999280942354222628081945092087181328517146029097721256885526922690337816251781403770008727657596217364158678597925700300650072175295492059143571658178702298644407969889935971916360318786258639919264215398901193055744309821320514973191049661912887656196080597134077513084042026855422928554304284698208231029250702823105219926822168545996963726032627523962661477827910482825590389183610084047294128399964490862331449814565494023580196637143226019964257688971875652689307100207241330289739106706630016600413192118666937155448180722117597612291095891353194787972457148751241447200429849026361966720920995538769962034573830705631844411831289102955213080010184179596125756161269641863258565520627538025991358128502264878999439820324433942613282529691670925964546283007606003562405611682260088331673292127512899337243814997947117953097762224891272087674672426328345203667068429196322633321192228790971749439489011304789923946967403482224473736958514184796182126955304500624871132143379370074313496114817789543376385331332581408082786881424003667704038348208575603599401980059328769015955277802651889023920918955460464147500714322640198216988120915416397689408777985068983585501340516606360384731205837461210914080895533865546849264871683838146073872101652887844021300148052804143028221276407804004596641485216048297839468764236518938396326561561265974329422484311738051941830854966343954288756626205210536936565467016324692956296597382964834599858029594383563631299309281541080320782088575794001618082096581076776153126921377555094390671097150531460949465731295984666657911452486376075547293832812505065422805106616067226660272133159289996077323151938806679986505813843727649900492699883554611656959680285020539871280052053075544952471015526992748194932504351863869798374547632334049124630689004409256341438730786699380063667511104910915893910774462551760486804025655945086828711966710812303713470735673031333283664934487390734218453618653449548092307292965337065030152720688317272320853363378526335868984424619290538093009136195572775209012790050141901176661889088870320984232552935173828335534277927969897764820930642013571117241590424404582505714460642943068914132901552465822663507342356849049630786963186798240456883289371740001962484671936158690110138526021844183695225498087406939270874482673122949204979112540801279907004275738775781314919561700234079362903824779122091634326458363023845550753840212740522186573587942910511077995528554208500604630244746191538083123741116652919320816844366637517890321384612649964992341754689343441650477251131388227039035215514229081233676653472541869921416416056830104172365719280786546399104917592824453810723098326039001617799172500351664670805639113339438040487808044364586295029884146373350222466186382116934492680119671843647640870323179667489823995075130389731735125588375354101707634355507978111537818690687093195982020057563191872417160955374980481589468941876741949922019236042077714512951967577769286119922458467828305989889571382570036365662251773844601695770242312131930305887718219052583631132482644015802420662775977307230719511584676110437605359405529549762237920112613601550367905570830087930600623957163584712681384500450537968741827676059781944543653475469391958165366363670937819060610648867234213680047386309154304178242468958719827985397252614894806792194236386285127047023082774372847604337218292230264060648601339716379331695996366751823765608502580232615891996993988277199088916283899415306092237102345503932708815863011618741474226431516749649702591209929929406558227524189892440027844536725949451927476456704358616373875501880744882138875701188547511061102609068795724842323415564889590224332546552831737949954600368940217823229433188182063401877931227991087178190985311658257485441851841670127828637204948811623593313564060871583736427363221722784278343118183649053111988277151842927154602702911628705997148726926391833325331833494606609572346284327595655336834683653853446212253994337232270098493000145971352483830723450763156004858011048162853980979976823730889070622458109504028092965022263910325654941622856261332913780898903843866975284526056174324079775092855980070404813058776667530731919122502752853551021158715447885572751255545305682593611821748894867876898896303759454775692550167408962062794652644187174462841644700646920910668415811734405825015101765966843406021424834411105731036028540048033382466746736716764304393541535992027487049063909301352477214908166755978766762978233389521891237242959937658021591186174024877341891306681432220522211810753814633761765408855467331136593957264221101367186670826569614558018640489787841326941052495509009580186861477425040723456419345702445435703146106125807951492796162726316062861890832230740964132088816828789656610366150065643687213597930237984596982883112224534325992363465994190429280526790890947942517387324185529006191617321691896704053859933324153146438587072097880990064574659673372182603932606760177109209345008736798418751429255387418619049437526894146415122891616439178811494587003017196442175628427569150404251147455466397206859677471952416969293205294839020495655776539801052427799914343658960379571080814648460885129894528441018637987100161245451745918729598121258712689527453548863077864186445202103910147562343867987503114269760853242658242098542752639601067901539691861685278836336774478807886088279664099644527230574410315081768000373434110775189555095522723818458408016330801122697392916720800443390363300770521094102068646933942357793233907541445934560670844385727016182346267691293072005269732365351423156587560816319273407089020320351255436824233712389399877362070863107369284805418904212298315130280870222107610969880723452826605612355860296380182582607213423594486469324989643641350588516657692776865481546775346290899482698930381825012828023618613143199664342843048203258508349825725191022028184725568975854643774296584337835851444590689968647811314194023842649920691865749780715885464729832222748400410200749905867879865983106746761843231026168017774553153972549484561203587691271995076775840650026689360401352966391749615648031428679609228266027221636368559364448215074527991805091202039915411625007705001603698542303709077834372931290653817709054444875882180056431916447921549567066516765323670384806159482171192286431387972165549228939102505131688597623374195394897988273709333570179512765763874554103083659807626527825229155604234126254555077329880132985073676159424446952357521761621687821218578990870093761672511563397747752557519867962077702987282505567600565219667846517754382135746058781322495669229362217958747959389735346210800692184649282752159757993509526246546459578535228478077705007793981197105971276284696655167105930991618387342781210625778483842298546145945785779654438659467277867810062500789800664256944438369954957012154624982973521256387571088870684532303924730323512882035823739990899004738774668531957427392489912399714045429230924703865368495836435030677314384199752235268673584673452798332056680442689896425152407360831576883048404283288864037658544965449834277857912949609683067046907147127308999421589800598743293214046388044197438181582432958614671427183711397468084875050417748780326707622064922293847723365616025527513295671781528292849532324372866711921975857081242814488630402855319476999926317432809839457686710538225053928081486432043331954424297096371477803445736196104539759515541356471142580837918131435956633144581098351097884571755633626184387881103420042155966164151322650332695751036557110180574982944305004170241158393391759016717768636796232459608138682565263264525789886603374463793589953850596137082564223987633369236665653319191675355473749120095204176051536896172075827344179189759958514705091827159763827021551122291824043731498170473423816259528138723834740795797500697636501106082942321704028548772085473546586944355103763333129922042561541723721004849957960237916207715409022586084411871297771738607755297044104897036837900231451081250408843991340367466427886676816595865868547628292296371619219431435292135174504847916338481954643325812886635316958214498711963138462539223974665966806147034348118198499982321561764261372293461290349232382237012132345450373114969858395737986435866157254133618968583016867645928165913945487603064191312371208180044505096538677309867762377656240457543992287342476665567297034478224759668367952283540484860475017661624654664449405162550106001770652204468661826574046002461703194382281790979330541475642152499020624931577409743935373439160346371075030949519650093387178393771998151162406556535550253379955827265083133462912632420573641401671439659749005321331347078627698496525088260252740478139289223607587171669556355561712248905895322070943165391592366413787590709265755380031174380044196983726678424243720668071717728865481436739668632841542466808821482748338477093993157784465915287955686302395747343324265233780965319991028930749392463922973343679639242175935550088734434370539988455472981899135340335760418810289291147850147543766743595486410932131107072799635188502222469537371058583981197337961933379725909421699338305447014695680906067991608248294814355943102212586753202616878963113621115429480470457340510183802468291478971318104014668378995469830523185478309258999579079082366656957473108497584116491640846724418750529655351693749232691942457320055594938191106315765657951982662514281309945278979992154550699902176944772500938469058381673772768466653261560237024881736057476139982564648267543481483910030068333953206648493909920614927663566149180345726126299219394492845991236027569776948414926400051722033193080764623128154725471399093494747178554126710804548965731976672767574139769117875209736101294743889427111793108505660093147973730396891573151864234115531845327768244019436700638030011655504786949558500364157736739191872907740384229776405880778039694756563508416001240908743249877428049082682594463553921647849003107028276507986651050053292768498374126667990690039020030953722585052050854616542490575310019779238535753375488961122777829479557017498888255724950406884299508880878127738965805525798525307920328550473301138904450421336300189195200947260997101502306188241663149829219255046618800352319137570442842298066807027044750936245252746147050610063850564180431044109515801966845562873108548222462604854148941556549289538443085515255720597570859296541680417068568809847979200170462267250969794817412520978698485499168926475679407778486910555143859243539870861282326458252241315238403796799442309370359837917510163589842931663438240208073111275660039575308430885447479987550094089847426627515615924701914266681352935183283343533417016903268293858422889969320664755848519415344065114775191678056406443884499009998152835016338053694882022119481300660304464083228078841681986474771339374491936505116808452354590920511652358079184988861651969443303188188439823761250887492019726557826496503469805996565862913894748088662034324211004193973627183752150633385652821065017945351297962398754685783391832167378238781648841851000527297773138432762373978414120892178520537581398970208600376627318077247504880245029509671915179340980210714430257858847613586433985429660502558208854048267544994744909810130983466018838519479560399942250590197714818362044926903737478444557226480079955829470702533197358932737435724448516623630939723668772043171354652001054126415212165138807763798916008679130460899702095024650801108959415573521990745250770678716408497417870281976613079685041465023683480563988036158879341423696182587069525992488736694262219113288165559933212921004705769815685453921238017969603861801555762610707444584645876379211661326412147031505896501427071600138493707375637343041756277865308495553781211076451807172940997768842302626373323902980815926364821554630944760372506484838837227403712845754703146753787291957222179701880425749293496915147702707418072781149088261916527128682627887547504915624189456171522612455957159486536751650539796794007782561388843020218896701971636786305638954556154305337160569648119284957793509901399617038790943115494823522745104833269487687311292443518244299614405236096691641358325816858547165341341131990646269004765713166743806498731995798963621466751241043151515192532794015711982809586229631083861320407948084979274962620456409211296300491368418874583564493559176378700659693068114383016819336175033269093238444488515074963404308823987440548627455495866173916485487995929767221181550382532499002365126783630428034567197215117782335802948873092021788128694703336991183306216078378316654383695506731733274116139613314857985320393946987311806476185968551875020414754728505739496725102465660010888931221197267763515095011769707880374404904762733687855484503257122155235676798105645778835552736418826845023558331717527424031435368992091640721543705746367594785391399208383016963816718804635864890034549358473620328518055048622834669447307878857018444774441779246019981010875381049296222583204041021412820653927923357732334208138719237706281477398717994029511942538775177843019512489121572477820868489554199157000673732013549623748707615640106414594287716129549985027686258548576367866952836781627127080250489116752127022471987711989741391045285913212933852570955847721255280707105897542616578929095137346930966794177157665850724650007521321403433249388496093638543013682116382080672120264379297148295515605710927425173175637026467053177021457086238394501698121550656676094283964386660693937495345846461220183513119577588606501750838197446969815211620940268484200154232834899172053205620093384297569272384813513092536286743513457620687134874955608885668195787303753264669265082825475945774060166607164327097505720122390397570447827055134048045945544601398768144653204687892187728829898010637357316941653206612378031526194932516872823307041025837903371459111013305422495358355520428338279707455098596726137034372451033266496541205253786355405973658055775475988161415531450577883154922965361070435241973317373353810521910881706400891005751942324954648638577969604473069085605770270911772817282189892257873236906305064696893006787047064409245192522306028875163447637756242838472738783135742606596750788544211655458779683669504123405920454052028829130912614757192490037703936528013878696461174913188438226849642087130691294514310553574064204452979324506249996082150716195469682319046372487807079925329511354094593261561407416749468784805769013134743532273868258028999427569481268219435877937717040939955565113100469099452894046375375596651993149253999720582132125791629714984107484023488130094509434355933140208661172922402700475595605763926199850677492240897841859517567516731894777621980353569347274117524715008501293275712865234351281085032043617273156840922007286607745968165546759071186768173069944988790925718499490929574265434692328800291085731126360576418846407299416486386570305594055479160353879905322148755057288775568042965053837276583762350859371821353756028690929076702701894151533120783569746002689968166297371325524361318721098056490201900757329529019037463474307300166015743092211158029213914342664249086566907007855637131361397325095786656758253860350033411296598384484766813353270182325569452286140142301290598746896501882509653407968534373154025181492475812623406216866761084388326094838464949555769642562207301052054601478674343903955273190153299381164573597572560987012939312596697456198779934318506267725927444333914637956298812195382624903787992258864306146729907964331669293629964660306763943758418762429869280479880244659680903498684786111530891503585439069743828363080724702933769096949807553580948709497644230660944870957715723689545693263882247664614588669147282163861691955017907306493436199657663585717594305811341129545507925392544775190398658535843071426749187585217925144335082326491198669281341680739810219942845915525004214156314211050497307130322081283878458974296691104942633579519987743093683467459794324681356989474078526513190831806539533488347482399880070297129718420459551930301000809930697747671835278418448791945439892835401011971793413008148133815180307715468624725352748597407729661394225926287703546729488568549879705363063043702855316571093695716447982610518131164331769433499843999451472588850678039352750677567925818920668892335670216151617136290794973596560891794991150527237396690386239061840132016938824490494667579251194860147477415375867127207473616605542856090250639971411772284141515020548062298605270108031065924946820907904276555021014129674125919367454820443190406395072444579856588458279007751630071170769224462209610430371490537991631045167564807330736420969001626196583251887441917960198685819849573751941294540735083082632462523444868732041115223940412029522314580029124222150128401943285387724795258714736338848331523468779479299596399077160462333404006600113644022873051330222587615199137472438191149669090732983021110269575731317960263468587561484936465758831254437787686239714092170528434205304664029216928070806689071559264108877891509075181420560120116987113032028122387373514714521196237365743909337056551861609822955723109236943175940958918733555875903093906853964998279265816703048195241539359164650580425676230223015504261497865492806623808187000777430047556440483664509674827609882602604736617700090912905413238631597331548941977857965737030029531041088614089617411331379877098680766627590351599758631556721568331128775714896784946152123784656453331585525718825812590994412398501679344271536262707637057929038448916763943930102922677043323937834246802195093716316134772593605017828350821503218785929412005869564282447198773526142135566897904768841158675431590628602674055173502953703588730663051552633434570177736705586102297031066783433821529498033500183386906830719247350497010303725119708438980086083484691935931991043057181956902650739696855542154135722851876306319564736499156196585747409245737878259694738151277279560689584250605715254188505217504380244455470137882061404496398870781994256734533876947044503030558636403898605106736450651141534762590463311861369980851528770579323974255045497477138651962631625915590946262537540424754491591434843196078334157969324134615843045239933367134486036179983428033193798448965933769369740564754408143839211118685699558762383178268678187114659917373339924164450894964150046155222535470555093475635291921020374731540511970067759453955819945629325527931253604377096896602102655619382785113532968501750011332960262519155016565569459365064709313756945702234019756127370764862567983368072797093007769825877625511608704118238453878232568696024364910643687685818166454917893332614923187840454933000856670313826062446247452823721492509998231843699351456347481912047231935799152249397700228410804044718321349013286361636092035420506234653170934406733764876998434936162735623852459374359343408499208894379672667644671747855169721366241716607132535508448822405013513243250333222811270733463157993410456840082978954571530561668480218443912444470822798987107846382220819663691647976935225770145523988992344817249333148619183077583803887543422426975273717224524989496867182948314927478347973711918098304925884029718528739174509798421546349512433133129061343495753063903959557174345018825403719625117934534975903441245776700282546089247611294956636254923135341123973905076538953093257558967241228331679571097603096573350833260628583445448361608244039810174935783551223117383943957641564616734806092644375193741935539003396047503534554311093114283950239165610042587139719827393898258149918491512670533869266534846551260556318726088806775580477672725551687589483535140633747162504318182649704719585336361404349003500132709570400679221085091970866312272634489146776023974150744766094156914377808474397889868853197134761754642476929960249197012813653865764853706745460914573033423693700283105805549927142086463982218132999631616830270061873957832989368800461248114002012586160926863475134631838216810477375519662295301429176107604488374220047581275677170696211615796589305303758579632219137140923847307555723195858936205048308325637661293467807319561857857043208852676741455024928050224394423490311336659936992229091552119333948200008494238532072714995546117297043756755158145340917577225231432457808285686320671825386309494721807562219429675506521005541126401076120286858286989778220174950183929572056718039575526909371580123379308448941777793603336381228025649846811171262793446097330684861558372771488018420065840534995649994157511636147148810658990108619466226928453681823120859483573149378482034802602729764232040629883501001071491817428190869238992499135576792235227258051188348110889086467350311467319508539917879031410400828793794969591200427760120987377731342703537964451448634566178335583159356796504946671860075237399157025788139999905052724898941317905823670342901980659201399410083183178265200939936968873540847537232114090469181479620248602399431135194778518739581010423156562565945802142060638499115642165084174160452164561316039068481798421667289683263636710000466156651263794025692416089640015215745786124927341219468980326996647059869208679155246770209901769676441892631276986715338077055186295555816926653486260512458920382211168037367665061995527364202877165962025293887169005404077210833496873060762826613365334727876580784378295909345326407176476422242390665575836791008452530977721335668132937312142522392193167032615014438853069651115228862205234708597845194717009742697766588055424830144697913331663551683620118725460360790347839735055383448012537082693795579058309172612072478020304119969655066610238319149017762256592139669527193579045142523715455651422447106129303391206951780824418144429447651904217774814840045418324429686292739252501976007136022009897752754442518344137900439867794231124972887136524896084548876080680434556270403463361646102132972589455382919813158923190268368975530323735606465691317817652023910092309975634278328035288229225351720071668062870295814110530763322660693463811933820945273355853495834440193152915608044127528706061665854727689333244901675556560139417150612247518345476192942386810005562414294463937089811947892769681941240866668476562285485392663794461294733560235259278388932232302608031990580358984943269817054373813720428781751679495210246306278567136849152657773935655454793779960812738145136999992116207668839729226422811792006327065799271218683898676118969143241882042927592685930912395396127939910351549628735619669177795317981000632298253341370352099102827984447030404147423689399672738225607741337033254266670681851794946459277530571809408176052570123074425009215478205060512348216454660293111414860291049307074240165489937616747341489118448019600593412104504735570714048133983826381622342025824600445924936102014427586576399220585743201170402893611832748720292383893778071709719551188316813778260437730568246276519772211372279843418803599790326323929383673915244039901295889112304597194457659036214285864172069039686615113066377713909028103981238362107247828050626570563756628971370869161401053093707292819296170596663253263076738776442628893772415883337608920250607987076056439977179136947490110515525910800556028897675563778944268805337820212515133106294027373085017360695041382385314328240361596750061209630444853150643274561586686556926101242506892659992585871143086219817714570289858300182119088849362809693366549445537978492638241023087304752583765650761357926689940745659215367775976529259968586208940666461562638550774625248119471221484838975942268352542391952005582374552627129922592348950465330861486067610438830465221818804726409117204959675994467453099324726538485479829149735315994490177386201941055696179784156764006791193683389205866369041092928907083529202470788204831758912045009968062352540083962881296277642995490537374993563745532447539068844424867863553259098050140471297836694451982782673644879772267775057782143044057572148427371821710055614487928243510441134213478460357897297750271267192347206231650745756334600685882856568748166109503919919853984413863889460897846659926220746124665216300008415170521063309705853010305578561017698296597370076142305561673306226945229027899194592367445327778648813121185151978720521706792935874987895377842466898656441796416733279186502328406446994596768621479701127324535506114631387918488191942778782022257922876084064777939064276289019584168019278698978590206158470959309557565995381948701729817810662968641564636795179353168897733048477975920232186870334376630329117401313715509952686360357706793074517596264153199431388298365955869677611870604566368347791919728343386489708395046806125796464189596808684533129438327780934674757517446254286095343587471678438631858255093523762367671779290206804811155262181537359415361048736186841262048468497027580460176169988088871116559603054536246139829772977116351275965636531276710393319547328638794825972164127827057546477443652757572000289997677933965907371114184374417140889486875743742639804229170120419983522624047622362156441942746174503634814669034702968492605345626248247859475249772660297112755332544748310866535969988683791546645278551100420966193878289619642314137410244613991919901056805913751084691808931013477851030059494769814893696347692333471364615993720139983411812835302882022493591897018529278198594909301177515429285639239733658726767966507391290309346129031164916675956894059196503235808045053406919496059902570677608602991579683338324557618074846379370382092996123398540541620461150277212324576184720270210020625806686997312125780767499286410993694171826916793725645426380819162328316691554124204574543620635831871656366037721429876972237066261014445887850756354424501033366040322669946050852938899223138821693591417999130270010152229288747190728571673721969070466123391106609179500887523035484482822212803389729526122800784151122422141791479177642918846963120117597666233805823195738078425485166831908919199933749804408386442811128997703691794180268186120641446605079031905941076592224692996368265714349558475210934176389828457955424493073840531195634284421591900116228704231401860762886428785833397659113729616025236393171189805469671917945637370548088864205922761505738609635386078200862884285120650195154829809497869054142368621799675532028428877614324606022268048657078542730931795555634126385187771990702909002590475317670012500860607218518604434056348079769734815407827114846995451677883040930469945235282822337795827028569557268211110144245482997089656769906372360820028105799253790819698968317988155472238245205820365046263840534474161940395766818372512312762158719756367864648934695078700799089213757555497214386869924832017012798509051879752030075199293140669684229168345362166353869737389466944445531824171467789650458681663702365641133895640586963450425135151934603295988058556202634165617637854163090628330176808813620525895645405145330672401745661690442141163316615660372096286353820943654171788577810967546333781345395524779955824980080213427830823056220375278654217653455603386970161838689481230761611290237133223782424948476131409104303341290084967887482428862719605221996062814025991223504414961576782644211448695715189585707174744481444759570087663592541954005783002345021692648892319153663714170240669612130756534417366956140400294407665474803262440542417301252450134131932068967027783791987670746000202055344702465740492907294671855559452402433362769993462185494082086076900176311235933613285048606548245226907427902557279950252258301847933084291165700119957038581973378528051555671008256348295774002106225026867753422890466225251755728591353460285467861018476297523310058475416767445081469254370347594469632560470573829911463924263857555081294944542498800452094114944621548863997475704179321795048130968722189459131947186335811381428669418306411536580844601428051393496510254994035548521378638060529597724748829300709797925557731765256151809240380611806752843599834291691654889288417001549173397397909317332409330048176324962667458343214419670810122912878780878747953582260396976558681316208844199863623095074391449388140125696805376792702116140392968445522315135412984360143011898630243583608826756832098159641125432584168245309690563979359460220073904209789388149851662021549138923992946909492438087829429830312282530964775476667098569465857004639565776398807163155154588080336120050280792596214027834019499808112872706875380502733639582357844947208563735892061465398652706584614586544395248223647357121804114507941393482425840934497533872582470110890578620255255434831363240303937884995377492556145218839132481099483321869452354794720650957736607918681165978900341648935897969128240895537703820458757145450417048279928206702116955466352926534317751219228980762363021767906775370852641826886445715827417678181493398446474938695658054432406409718207962350767253515670536704826046653262020939607087180585385184355967765672703390516161572294786183251443755849015511468669415478320489860072063013530264067517881635601837190375571125114893293162723617742733876925483954065156950563947629556476500911286761726803108888704339627077678218942588478697467714254596761890488173920418528847538491752494114472213185377905493390918778776610289816716598430290015445727695577220913684964903708483271400670286089360988144619422380859375480259843436845990944332675828346676445744613188016015053843167094205885837990687514988093473585079935032532501842302740152212821791893100949081747033907670755357198743826124121012716351016585679725855696536710041923594535795260741376292564215112618375444061269556664265347491574508055020593297513845672728605427330619137318292638755210720822912598371225891687109707532910321930966932886310435547856148788755136413544732739068015902289072911118099323630714683681150632007953997522504597400056501269407875616363269312668277810540970729278163402740840781451109431732542334841325634192984798316340231926911248394748332880770552558541689464648515178380813262549837087763987010724764432876400948319886738345109132291683924733748853158515360291855009144210235562820055499012403163075649287359686118978908612679388762030688731761211922905301588313892662098754846729645082933078060032693812786044661074717327411489917036961146696639925505459146025206333267529976204661946731680643322061882974172807989478132802448074232624666373847915909082509771057351796594971309596568715911763999612375546649212802636272339064634572325014796894973833507861426473199038179423797160202440016452071870872759406456849008805082293596341273259307681231756602662763988873399782557908289939170239881083694330713380841998047290133109867433639832856230417611203484343207999546893058672629993299736970422316810214954804116009482760819888914540898018043775660090034958513591297830928249447726033909854785371155933692245888266793416140776355500749549810445527620720305435779166985480808288696855842012334467934137818130199551285565690036606888353950599596410262324836299421929493602964061053774619384619422481594251544230279111676766117126179394928632849187142493796294023102633921853532884911477472861804172942039054161735199059160964692165168564414625755830829223328718600319268033314908194719334304456394798388380703747871749890524613257495847283443027884976683595233103946822928366436391950353125465776242085663387355329882766267561171681106402496109671767516643557618423026518605525233563507056783801433506332709726897098943992884725847425470321545640415315652468467312118915666365544086911006402788956327504950681674535007988839354949594981785598020304220731794747877249736234829004775457014827684339253876843041115174519557318424438566037927485271005287866017757781974561992835998594277325617546255122376971039364503765069544322484211927307170146228330555167992304372938655705636095038837807945698275493676343070218099923424447267569925868985894944476546296801832032983614108315045374812672753151851809083227534171497485337510042634647864571976384809722895207618120618086999808024296072482438800196829376008070623810564870718021224256926261062617902141779172672662559059308998021295538598098597149318036270159675892184074538278935366951780930643674637856682127154186451690378738177548822917218286402861473496783154853985228500184679746933356816460329260263488823349068145492845531475331764131521223654057185064936584628541626866510435110831290912883399645892581780649183231504431875221066359686286399095325046862279852611214146387422426291154257010921929847621121183474915482241442062532069650453778758385524669705665138108573351699370025900104902266471074344698983226587669046237855768405882488694377856556993001012655540686887923644347738078107249255865547062725213610443997704116739678086253265780717950336564259708946927133964790988987497494438766765262285602002603439884100376727222418648074618119357072569615632132803430154972904399423303720721638718948400646935861498396462436082801728095233518775283588068174009611416735974785447927051101955027380596361474949504336709875556408678676720320224349186839384666515498147897863510026524820050256638677901773025717184068049214300262245925446158212791454245565109606078600786943545050578142220174905652679565463147043346934175402198314333592509964891516232483780126848852389392989052271829467822135948558788142667159862451913178678110266034248853782229192127547638928708080801262628767025206221036338755407211919512729686839202733414072567040528435037205344984074913120281505454225085590749950866592375646876506339714809628921939082497950751075741842000978751574494155918774993234842518132630689279036434300912246580096003373858806636873532865421151946194224510127351102716523541554860197088782847749613870362267942657216507294417638654075036498449073689921866155790788490168328266227412865532343070562019772848937166290066127144542888721458938517235187796028770126933463500344408557619496407543413384873820432125767687592210071706204170088352844270317232540710122597674329218347886495456448434060956762760695965829184569932696335330230077648625198326944743361572660988013688154439637285997973221409097424173984304007966172023692948503944934403419795962552553682000004704263942849884010046548120287627829109417932981335679672398480429661651615443012897429449075250764516008574758203640712350719953585116609491823163912604684109116143036557923320429753819482914156353377873267174924513374816840076630131678131493753550163104146933653762948225677185763841552065567277357836310221505210190505418568500147523653260977718856059181908865667953866917765447506369884471926961101560534572721402586092829113765384752204534088107423529504703740648015921832774013105159461921079986032491071049456865598385741348051192378875589877859197244754735110171942739894978131707745832480877535252013247328225144898363954686045025509052510135652633213362393781538687140450971507431554699684760845522971043616308934281168349938874528974862834509164914872570079698865593177527294772424773051032972718256175230358372247027608714094211221629597753579956868595565230123475548619083711495264675297564797158390536845039463050627016426537266585743159887556834359467368517763067839537318151052876294614119877823659924195376816031917881100715736405504234411246498930947685752954056808615501111112772195320043205590271260160847097712044081370955100231018140491997913725333719697538529277486890786771080882125722927229982046045253123806430056433380424953922079139331043158515815177292698383656650516890172416336076576137051263654049314458640382794393359435097306373616601640459307786106899613989127092551478381335203225141740282266670081405943314599350629367625372201248544505085206984934753787762979020132257704697017089243307596452005314548645308110025865864850748902821204077398240181485853296724109812798612689209422626174059829689859203742124869220270767466085447001309559566721582529203705709802290926666296278352180985586690559221910451260136538537946035363802466267440119760438826050077064773397941644846248337585570916175175153503678320757253296185798927658195048329412605469160786604703209328380499385953924008942841413225968254977969125778508627694402621489849685057924808506109980496835035460662865609685841420086601451743922339317476403430760466305050777839451119427690984806334140573910712193726273212188915152169995046996965422953427255904418568515841764609373640871454320617344606565566124102033925229848461777233455465796434444383539847248880511801028081403506265223041618073356253451123847504414608037756024977654125866586237048229318864724090436112504707907178973443768368467723541108396116030832705445858142574776335348050095998455255243109872151976596208361555489132528221448821851773904195291843931837719077897647238686162726655084405343482407480550692772491658070411048527053139209390935497867966895180434138406324303649863007099335851098259072108333006571231814169903616856046604367468996813042996002484175585199996584012367623095548702966117237518952810823410683680498455404216257175289162462767111510636522093404424553737812597102118198410220651379806362717549084416837148121507315742616781860546701951013353596410528609482051308376609751854550298476562397694274456957192180961501880349657364331447415353091727755176363004138390040925615502911018407922759555991587335981795354910888000230592908977650999109759805829328764934154813267253560964167283447468612796522328617547446863115834091334585609485575392368140521017168302678407094171907530696149923398792599773364671375773727385963147855558799816356255989778283843193522214447808402685183800870870794852401487445287255244981157635653328124456315525426043618195682519576494586613353961002734586082700931104917967857792369521759089224547745047115155819166636519585816497691687457701986688811061644515843752624754364647229434242409456945065949838466220735480870226287796953750243273563734985115501593940871126684569870799334143574318466908972008849007006242666282149590930196404930079388428890083217294541728338869927348480712901772143204834413637527448703754049683545364354321801041131382508022808011884062716560526217489721847179354469455442774173516183061873704332910247191506227920911705867994108819065518912773101945422625968669512283931731424022194946110203545211482912069838569580523971104452810646487821114653015244512736953099859009952458662092740878949128819635977990520774944666292502221442951917400201450719683910926223353924985955094767758929731167539611847528344701574401299938765418318731870738112478294959588929478346353877913091929376572041055985543563716569409548484069189068061789782301120577571407498361823766806133913208576735230212221880669027082734008760128220540387892385882257773272786855827014796725108749953497285983980549313394576709115621640617103460005976382457601987204554299557867232870664093793350601022893270115108388245411341009863573067108905800179096181262494328031001339862970592653444784481545593281020484504686544131214779868702449646988744403418587344339841105038268016757042096838103676310610711593378981401006435378186488219233046142754314824114347333770300023666572267001937381108170009235326414506964975210834954446567528776539921068378934145111695879116752797555349572843092841316293178080040712122570972826246593389678842383795789423289963498423126802317641046046515152279751637720691910453616966272873285937822938267401003430484386515901876563495512064240966768470211798868146695971943924563393718026151720082285585573001677300829539443304853771301125361691871965349900251131363127908782965124548549350405561064679367239370920536192039713282344445056077404224681382759344188810519123962551852489240789099959762405541093797361606498355052303227039273797763791162729319315238417522861635040276447300294218751615804381326309395686074320541828382501075513769199862192413078448956685681174187231585463388087490965455818402671112561889546233621532208255740779411710093355808805134854283050583937174292706071795750418863943817280379413363459491369832248866600022857994192868643670795474940583365279423111408749195788123933336603914637863491579204132540780244370696969542147286224182347369644154639679332009645386513546121655153305507259514273647733814152992687371309309068068122882502420874907932256537334152370393079658001811335713283521914499948288177380849492103402821806873920646135140833398083802378579332327520417211204200330198575337930512043676545662952840953511238331502228829899517061238195398510790120241745674622265572600578841731717648503197521759423788646429444615284998368679477230197450731492965764538794825592940664302200266789290880199910254681517885945833280691893315260060430903378465370214527269275334296650698798585908618573399958605279647382763946858831348330275895684395591438939779938420736367119025958913626600221656635195358628081680739473878736279869834595705225066417108391269252080882143986838829861438498742736595931364375201070411342103295841832487265215455772473415079237505057569446549290543754580741540085477816434229345909376173594506534881491865526969116364887488964708049060267982088015411808469799115206555446599761807210556268124299217634829905782977528973120028032020677972126845714073485464115095931667076602007913958872881731725768244979416438111350178321228774555582742420996975387588076680750558918345021040893114284057971242950326931097244259212007917037282997519054902489448124544222795520757063493764112635528877865489828448660195324595087654807763880010666637135227458497317156957747086894763713117103203791826264091260340938137054958293981488130903047014622144318703641866997454742054933085075010171437617112780541318507453512245009051656128782480965701542814071441482509313513727553763325204682021190529455851349734345839835634637877979020367164199186595704776408398864365713718052564863320462050462189286663024082725496978352909898619564015165760523547694910299864428483118374240526416391515299870232193387562474654711783938804982422502885707791610600699369088184076561442890974614180522645993688529192591139408067969465442949485754200720081258633080224971897315563223182631484769584143819430574623354973592100142463678543892810396987127560995773062807926631628126905065974622238838327153089160636338145696496798028927648676248565857078524541680006053461172002314774638397239229827958377764094444357822269725736911561008522624907333867211082265652636962118656007126987202847969393514237535518885472162624519653838870031816637724491113598900085351413516537211028343828028492428058826695054660063367044368413335683483304150133006449488109723308611613881958361144929973509515943747744147387997756845578163018343334195132258696053141328769743738122930726092422163750419269293814074633826467521228333302459249284436513338536235846738037745849124589750847794710732348365300765407429825832941667635965714284958831427457166631972254333646077776429632932936504392351559953539151768421850916789828040360045651911991877647234946466634268362954659701935663980507940487476170093476849366771452309615944720077173245134838994224247244294854959874471325446858978454654366191952906799238074899675650231095373257090377312268326031360622449134348810557141977175800414253932886438322318113134116244822070170939369200485841409998519622168905228079074645202341645110902917385920206904267386744744188130858818789220988694777219030067454345447312454578565356803111949811559344973125251057197206500858966612720949627511424627030567719855445643531616094799327669443789674493243990968124912832178845607424738023180581174576664082431430598807575459144798774172556572750303551652620354636047451167149126836437235054976200065171471301927637226253983834920989055989535273138754472050637786982854465262349318864469070309480843960989977167538729341531687967572664286003012494990293686607167002067082864905198502569621852623617780565371726071912686782528916716220766962114581499789352376358464371918045120258783462913846588791059648228001345001872898538547719734087541791477930705675823604384355386002593843954427019775860962758347971586532851556187766027159789397699806790015492819835708232194834709645376724828654610176533542120682545030173337951817222632760325668852895905375092621927572707398906504639476980751260510409321493985698593153847519404008242977165286527800650484291248972348374595642481552332887553818529899920051397473766437115861641571236468331260035087277018586579062668657140886345677514800424532474596346937839073643072732033278661801976296555881056661202111652183660790218053293131082840491644566171494439400946577315573983968380639860482781850227752067609533397500270382786692908044196373985804058711876374107958807882012196975233455318591173207196121729631546700195578854551729040566417834606156551731562370187438140390312254154790600727021565675284652451356719381081878968125835956381317068021845274420581412679938680130925452449137500809577320205419519708234940863198211270383892354778195359792412677198266438408002726371007285704503986423850177951745099337877783895893972360349418099487618380007491531428255999384193941055933002215710727087943017551951131898805800052177674204574643267422682549047256672418626388528576765771698968099241700077928233992948145959288886479308243376375360274362462207814485521688024160530066320573831833000076893880540667113163429283427530614209087442107007240334083962123495237818432211508116531022838030384119164527856412779277084398434763998794096846202757093384021463280220573299465294103263915238215280367610920262540968069915091618386304999407564261746260200584405265124919466792194024827404553167077808073441144151084330141947873772375966978967016068127760158195393427391541327292295325975582425781758623412340178219233628503114444423014226489119004854519919595389650378691258434811836136923307760203579321455259445011268338823832698936981355290890341571934534881434407871201937407608096718207463325657959986571456265493367673105998039971949727582761124096535098488668983751008316166390959674397599906938553976539452690291979192528074808851680303678981311279560726678213620288047211424026209264077467049177550918325643458207841984199277686015584880012499302182500097119811982096504425733465090893618383133253465568163588039388701874104164497755716261161903239966218018066786889100929229898725228085490912750650724440126597151347536630893793166935658238349812022675379586157663205771851330185197655532436636490022937417958734193011117938776390703166302927938890489858670251814047038500699017459650151090408021272893983765537475421090066003573170765504524662818659473145513422157832951391400806026534971778262272453135340649744735866828786890910954605748499447159317065676731356017753179531101670266959351057469274664372639941408106022004315472063380631300527717242753489125822993242045545411134987859575692116519420777065544337817090871850906292501827693069894405749434515696076244712207336105153167199344600690944920889026893973898959443862069075285804605921742304187615344279119564288635987270703357540624641372303387483359162799351728618617713536879739126310148007473889642343687155619341720830964783634851801150815348199012111721986201710699182407804226920037361951707575840002969423587530178908398623839528117941830955841778504074511769676083046780812997440734239763005019850896647546997124912103368442309869156291983074413741655729056558268931002838789318391423736702158456466818382441896779473089088500585475493112259718992106273054817134813192609024043389338141824755652058085778860340339865180126057457188078326310974055974155771834419974027687073093456098244742977804138529632551610591279968986690030449452815259471646373365879163998140377969674136286416855410980918651706157983251966494346276284169127659357175652653635972587183435498643166125053909934259702073387589165560650378873519308846275481388753696668722123193967019394542413903154188370851695977181620651216874891353056861854723961393475185874560612239586267788515692966882737198902318075352633884920794865575361410165443098070263659331615719861536038271460301144199831166656546748500911007246703864518870570162505805615485468174088024773502202669072508574462653696721594432966595111540590022712731303397860556846048386419928773221867715449762152079931648478146584499119008397208781752417277384550179174319305636098703385243818693321421639538249686520911881425214257201466178181489451905728828677549185060345881359059130316734513175674888051151646313753757395011607064417396424962150833109493176412899843159768341404388452750518952121013564386762746114797728602207649508054287556036932807931715098723992711434986320525492025358122019243334821551319677265753308627043741688143544663439922696642066875695789159352462152317528955996491530785630678376263971551117511554966332135173147093170446537513393103406630958398216617560480314776553592207052116405165121604056912585929319509684055384831925597191462551105252588570057258939420111139204263721766379405533678449540323073710662355918485545560820418853917665673525063945239556567405623569117248850367115629683035247472605071856668229010288935333574138209807091161896287430578773169145956402533410437324927303897699477810679770473924097890570393223718541586524031349168485404057724708426750583308180360632717986957214191616970309076808524156965448900938386569746452100907435169759460399250475380675963439981588402031976175911261598924421319132832801903005853526640282519620319311526201420453400393537352874346195561960768633808675296080749526786537971298059430987344482209353253876332112777601870951268814912913922481147684164521691835877993396222818455747350864984334704263899193467328430506141339943570203689969193322952286269245015009434724836457236365399938971524773567208889758728602193226221295151565224568646016706200081233376771223032274077798513626006355013690520249008348824481016061462949461421865253704270843275007965056125274445067436364285817922667596510915516681274102043874542093890599868255637768763942094432949538443600638215915635747647095961294821001761449865100339998809020763217003544304240028383080132675907145366859575915701267720598226997940688792955921966651600975410633554218431552562430110397206161439197175112846244626986737369826708292001424181641625940644537579871139392775570210299871357052839349916032560701505036974179859564646154533196229672529449382513071340110720362929662373350499061440049936923568038308206313654125322437604431506929737092502354047670430999542250975513210404539953801084455717294864261980901754368430768757469814372672051386334993782876912904833158893195214311729374706744058495895546726423046666551859800147680344422790724941744471427536631376696790319961766946124055285827635110353827553261611634624086179136952794982895828012190443624059425446042659252962141254752854914533883088567005933825122162579240111994097832460325782765304480071401333051861740873148086557124798195285413295987205685855677073202335691744664547771521376388527660290814974515942530279276743568592032825187245973673486354751172626254942171123890032951714809047648426595156509611648591717031638958265294018196080714152497025020891741418750001890051378176555825325785483096371083541120453042657855070675326914542071640491705940539551482739354712928864376834229878747768630980900604149500592823931619981915901684969051513904530980935153917066653753451823929572154300722244516574187237851624153742631544419047471045824098634544630615604050631321632850691782733286415419301423759420481564204957058244923089492503067760167548977725950077549489021637659175055255117875043603033877126518031165117465766338170842560436862802567331398974984372149621338705722738196925846144776452652215158134097932905073838504129914158398609402841851706660817358181814776122082151371106455135082635742560949163882348246625345594120900299769974201847601295274926227232611430079768784410759840253742732133762539896405103543919443710752449398448493875053933100431717111435132785976740812112036233664317688674298943468965159348040770508612979045239974729923824072656684986013949417181161050786542403756805052995100096343263454583579460364775080752429018268153126230495062945485156371107593025584245535616126716116378519965050742686365781449525727329847842264808079109970246689906972647537814984042717991104904425123957736144815052224073707795561202714776742018044412231838968550899143496429028516853551183661627675754764870415876090230506554012449409746400370122529193422514408007962823999242842281025239520281188172957844811948816286370255816304696718608128039074706919051160244342294840385082171343314202159433556987970627659029208663196499135743075533650236775265567748071264347098565394268770659868767491051028027787481604424045013889892979760180633959546402352214926486049002874267043313201078768068490803101230566289092872137148907520334234862542942656946645579268458462806426503020987578131258426890175786813314072132445768552092333466969718618592362321383805864450010562087712927907910457807413418621876354463893667863983918757331629869010430172970347795015393752256648059065769176956247173885585645298533773721057804623521155274853430742701654781830875728499794983954298209878956372545781050595530270427797302741019142600476019302545572184785839973601042626484319887453774417058116364038603644490133494746272667263018334662836758857241964523845343999335043521468612700465864244011925003177120728893729738583469559235881949092368548375103908123240480960864874063792745150380635951850459044696860500782612639983945332020354104658812021742086702581832618883592475424908971520941765453172692857168699990762354702290907046713846260493474702871618412720136204618680063790331261230990477248515397698032598963624381645437799007421524089124879283087815643062315576033086089472750634968402577618471534407825096309845306746893753906570338204094800918657271826596656454968439463230715311355619023922450400015465200003208972262912560707146646631599767706562032396537368570619343185908672558892576435630407315069290769347035770197308220693514939051633094751141437288317443572350916651690049876688292881774146443562537280876630729291517803051219206394672326013670026268598893912479680160639866266905116390045829505400907915117581739018390278492794174205559285911774201258826790643560085155691295188910395873372021639782711734312405170585730641837115021725721092514273269352423757116997376537979127089753649618789479264279832147862044303559358925240794766892377134167645758579832723041168097690643316774469738030368458175426711800576138804139166184218027931929365899247353072112200834175340007637585218673087032539202237553707151438221393523138834767354246025950533882043625523728842205495910608666193594280125088644606404833926606029689288998271189022445538941347880143200011460371022683621305070608241766760541258304943469558033617991298665027179657189316330759825978730415932717744305882371762706467999120456922266601101159885144111214146543771453216887671132916773564323755416847196841241489939793200032912542734376444361964444741889163926070840125710486567998883014729312016688250207983462784325729498294755129652409071626208545797844250616137937520136077044612285797503917856811992699668348475461268202124205982280779671474261673898759020828724258502657076737262518089823014471217940581836758377740152596237971964830270438204736291360339327604989741366408897870144529092033782403371786369958607304941852846742876827426011750297595975503051872188643323515363649520505239925933907275141480442960428897750468118967789215178726259417930150805145929397723168912781428561525072352508335037181159120940315849143772989202698131913323925507245563778005586341990120856172497590308138015963280290892434593815374668430758542485040818973942257361624110943980792763328628922773294479380001442497961979847482968926090003392367112316965465992040107182573331236024011345031276964499842611322550211761178802427924196368108373936473067383536411370326434752122611784275313061905201349429123127205483180254507852615984011655122986972019262618468128946717467320399870045840641119592218999997126736829583079767885735495874200241597390486708649928791140250915729860685067637230866885399455036443100461783342491500093052268900395562664922609403552374901848789085212354871264678435260055443631977338062780053705621002053761207672587081236541145282755616740004048172790771847304487899368662497096132234618371287529613069383041810886156996806788507939294156389481986620987012559383607578919018270499827660922236134111497732526552264598516120265800690544466570121838388678591234760545966522926012809003414685143987802832065074273050005402836567539589432537358511422785500939525052813399530686092221108822266951077031652203797732971600525702089595901877378788350360211001389547055309675886700731278422692805887912013524542204131041602950048401394149477982938615091904259397080495386550908900733377833489377752952561440744141567552917714414059043205779514120686762392263178861517713364833645620731480969643537760351425049300804862089581589668822904709424807391434448776841108894512393180187316849042079939685591567394784706034489048484532998486138233120758793652715778825053054367838863014319881863351140456337111143769839113119654599277440565997975839765450599917740469095545347704762113882789842711088356098576648388074187972096356610959362623339173618773686284596809676435710532086405326924261845047408547390046127636186073426898871321312994916060028197956154057975920941346112117859484213490918501697083479792966296397431333851549869641749906167165500927274930124292684692218856870140280119557020958332366523574556567326539948132128069946719847752975446897693723268447406781946576487108401125501730776729547000169451788940138652037350071182773604717383037417899046120989199083189449436868778672838570499966279397633347508849793273472023176489640764270469705257995953277412487645347406224954762757588797314926095188492237146031249517094901088744482562308521886229067452116997903266417520800994815075892603097313135136933133668147891237062646060506451538172671741823772907681250243497947193378508377877340835059932712537057045486518988138364816373560925820044319757069430113052745386628673052998377295810294865545705684631495742125796369258554989086437312835309444584952913674174229448816693760703925356289652665037203494806868705994371974661462518439550743939900149045284107648243546845328530119518731289148005883524959163157979455266374426464508192307005830127007085520359585348733976776096564537266418482249846337294206262684345170750539699971850364981942144370822451519279279889733157792787724887513568759277350063341758634790511408727137422123519326466313765007559732946982810231768554935657896753966090865243700252315283183386566499470017841064048859445993225852222145084360685368978374147380533016336584333242339816442752046085132447177965794453090898429519276397755191979289097114666494196978237047817822211646261295683895456713011475029698125626450899885188191476089583621727497071090632939137506729757569139971325238799292040201125191657461109079044526992622344366090637559362098345984317763404516744190463768317802476571611658552518333764308989105789987569442263221741833002526583960612566573404419349530540225964146022221972108966500855927213223132769677542697986524300548682078134480612037441683863821219813670891586865081764642217244757620322130366884840689758870943649449126472475863738337259711946684267052767939694684794880022339988315942816001180916394919264440653766142072158571122065817847378149839470200772453879955322596486810307417029492713487629789298434862048019974724591828899108103885251292738205234103022893263298853377769935584081456053103034295641863015687065661693439615730079316215370595607990763970411763117657411330355165964546124830150916405508913376521222662759338532676403253721344106674473860992676141915120205408867714792111244937769996349593847251620953136454947605704430916381334287681593786710328171800755826716876515599316071762326793025087233390237229852703354874140053308096818826466530728674343638495901724228626170373214188569517641373607059574737934898723795595978704620678235424748864350402410344483036807390159414402807364068923603726329100693255579302635167886088553676852684067497962185386488434010598716352005254354656897831086830913384689876656119655839076636783842450422970506048675669133611723024794273593463382552516945219244929895462959392357710196033793279688827635621614263063528546179062065190213444982893019001018049946378329261326968929584798900302684105505453123529836119192711801346406316201161989095314582349293298491149069938296809522964592996286177527354765249442130625894147210281997528404382137785693180138250134212668480455795592276140939612305608089756471292415399765846640666444622738254410414898656829333782101859858437312982322309194665981397623805569051543002256049594008495750273273304339412645271208971044029724731333087378927918438360880498075066376909738121075252503878817132588123377671221035071054948663432917939548917347415890273340650038803995360755686843109885063536471865842490089931451596513005577223189779599385582977146767958879588935209551711596270638786810713702618009947829121276029175275160936670190142617616024938635216981661366989846421529607876399081003389892843217129301688443105793389610491672120095949345760931857808881216474981203949454159384458995999007154600100746856017249237836949383352277760360509793299880857102306798311558454189208821182276530043045391074671822295350506321595174776978743833691921456729935229838727806113207794801686599852645996370999868030064966439142090333847533216129013626353459506637201081507177322847414031474686928026559539896097819458937630546724294216878213943862829591772746877044916521906640512506413084654658030393448672043120063026403292775894012395479147255225268150302617296693101753386772766366589633423446193030609126500959567872861648438626756975121572618475016115371149774503559938151606835156261667225167471185553493362478920509545131256429481650957963101096285742186451414621463535378097142657285510902218369263858223156748516812681732586986279481910638869415498098849780287472839914198442556227520979894832742034559165005592926726658543126370763926533675010889408705224571944731532099845175393561883210049396114462159684071320558804637466171327713234245118557876651742451497797157426095713998775462189790234724943449803410742665696768853923670326435390245297842166969355295258953414562319261832656898893308128146968280763464212973428782045365645126700483087064280344328134591223119578844562237992213325996554066662646119716256765573195876200741843710714122905418314913516403185208547231899194603108177495630012876973556432226150370838722702007748956662264320065073014981140150632785690719421233088492898178325687420454914269719067328866492092850598520769518216864117820536740574002062407970641802922471359212480248902091319463161826559101831354729211374074606455971389122257866135927193706616396727597243771934770702849963580493580886347291832539005778407775245733061154948882627187475947533657412604276105634106737181668135812900825203230895278752664768324849423321426220689069591159959680060951042941031275771187042402353913738903091808132611558672631483897554460480818895991556427667807816616035762147998404272602914403703598140435943853399669545315468703622208243708041395152588207429692001413259242695533874640080029968901303202312857587747170594956829748754304006979202669890066709597518300944812351492163507236086188446850217571634301927346591258721329541067648551417347715873970164731620425783238375090749345692042055341899150425889126533948594017353097704204747641794544717428274820638192040712238153448556893047430201433133122478741419813255802932857153441115536980460057747814341856208582823273287994456720509179731995500051781435348939106455945054128933196349882983440004145287067560085089360405951397491442278981578576931350301000895143914635336884551071779721361743528542178287306105497018972120100624474579827097797660131083797387132220184217144815685058078795799080467099344707403101789368065926119752566836131577035547515005859571680056339570067566119326975835949874987281492404416214763235722087738345752348145440513470801332533895117155666898573934906634148438236243447425167029837552274954440948255374764447782809695260667519693552943082914702317273655038427309497234209517054526423429202270452825305506705196180446040359120795299240937379089357384695403259181340944615557823984538236101935690369142172465103012230137119728602705368425352481367419207004826462812660613364443978568134741828911283523317412344479109161474997444201758787349646110157532188539223134317929961638207682117263661669346631382968651023510614114837589744420041249956948412824915902520481651557829709212150812508121733278604204195602126659445959416683538157644521011570629128192037188320424833882872195136457893911347995008615277767322927445813624732808466150268060739063447831491203891081737377894556350857718238884919202951323543940616722069363304896647852194837633641496355601401664347175407305997855871436789133474276706843799970427237995995795247199719917644658323132332383312161488495135334449748306399086917864283947408982749676197644197243221461154417045454737775061394930396294135454632596100318296810905367545422746070254334221659487012651557253470151463891097973048485278069389768833019909841974593781780606006077380614246054786847816444620706896736264683697531371955904132845715703764178307274704778832887722902580754208458400690665389717810947870774034584176056719261097539179981098267497808313135723103547464272947475790960368445139507018467679567069027027514978060969049286226098871800607694911301805526605198773526641759972667766915454416010051817093944087512337332127123388909619502791049345621248691483640448568405707102895523173467427604895802070554634937817246735783192207876795132007770902665927829727379156734678279803462122285052581368896206214329793497305662605097867966091928859609564952493704380136802038346789231718684508386896164087536238690871228681598643050478288906927501821877378018724417297736317036392453177946460218950028232529879605552704945233363847930170230644212526280430115224320991640102453175241096159381621091911353139960804780951790473418418269585032809948402758762508896986482338353460976131093558303266190434154890183750856980643181063487387045621693808419634489623424140501433107470617527944394035606182055272786104403501848161960551249744457135093169747879822548977596979186945897142053089221537297677578264324561524189475898323291851774792524430876974507930710802319086737042103762766475706758475079264127266664955264201904405471054073078414778793259512622009444298493785401867186702441993152290826657905044202322858600756282688869659503178398001434609368080990153836677760253084582140612006001211057811007341403722212628641184080636608108960298885404536969879487593831627865228694857365165794022965476806728965324036506735934162749360816211542319478321473895672852114020321656253055231579886677754065875072661373202618165860924528226340619234622569857713527881806515752199050083635578308842104422228717638332723784410018215820065114939242230484893801201579960650919482161826049449872312037680550578804575707648858696102792252453717230306940661603593977114571632110278017622407882685290000258249352944051678165501815899696862898334663116402047376729051332384286377880476618954655485053289561181216049706944061364910022295172318000385773683278707258455527982821508795096242488636332265454118640916507056817995696546777593394454555198708900073006492378926301879489540729061586825458774486473523917555171749774197614650292465466996875900751782641913308581640786116961467977339224639718141357100639097214446701193915481001146831286913945759081324350487924455956354799152255479776358803808336662927128485198239479110319698354509435874388337769893038298070784372828200206589592764360556011208768793773356591665602822439854072317490958020821712639420594992568902593734397536384803553559383302557049600798147780490743858181955966428466684804760459964738540007699920264019768867736397356161016446617091377855351007296309387658331963170345262192503265338375558558548695242213379000186790179979357167284790486890694794911474221148555662317337113078032648736846638084250590479027113986256436399531704246042365114847113138015632044619502704963094475310338435247723731515916302011387818603640645232532071018610237022922986404691244763523638839176974522618341359367965395335217349727207524437729610771914001381884916389179897178474792348921770067123811512916685585987750865928428551310419127167266412398627430464983580845721116426202343557564223748998484366084829918179994041552772781862250515363312677320860597526538913853919733495077816036247338874023819434668758651768395208489426364648949559813436526024144603430627333061939207295746027894079268109812473117068853956325180906834719467563464724477270688911259861008892475993212251561741905529103445930275156690601760148354918888088193771518482202932094704562887907605838446448803914240350913816966259957583249986118429239064012879905691350684778472441501417099672702879552782176509194712989964184558530107976472297227946602569287752173280783700475257927326809839286137278934476970027416075082395478344982253239374885395680434014463325898714000088068331967841704924477786702867515898141458778328300266440988421963090704497377063947384729598101574690515747033774042753918451207750005319221217735879220085042677069307959798445725457345424756127898861693356607043163490129153682933841731392064837834499969959467855310230600085920634515108102646732815511647497787530205756565912842633895352177594988030752993866721164092436418457744335249722374743806642588543637023675798120066830547881322401632024568134755416043094657323143540517564785299126033984129400891300462013910909822407545343802420697073504793209694774498379139796712266147554001343748326712943040042342821138843094973721151315438446944543832295521426439466030623211520458389940064860193974981736632146263547579644101965720605706333353376383581593863192781578279161110831696374939547421092335044366745652106639904450373901798459911197452402420289749713128904635368012468259133956782908119357274755989369229662012759684293166276530253479843241672123442159081471674863243154792141158753611320855686880972287737055261610689377591066207810652029531049956298699822987943032014905234008234188945969561840966497350424056256566532532854768305330430841315936224196338348878057205118944490490188560519699129457170839651262099453652807688230766683663212492509043486094569553309569183632485194780362005366242002481128875956979220665000731598676773371990251437086678759942614374657515209689133906189950154633637708548069252115107499576706100261847266849684754238077826452273751873464583464920070715296763836677687685415447325449707566476036198827539026574105278270294080646407373465579116454529532462968775480138715369655777641547509532657852607743196200373480361236170360875993463371453357763676115134259252073832251220215202064593940613579258529046641162030275173763786687190703587942454354058781259286857275203598547852246188779350653440814963562110031592291555189850864589758529720779241309320948434090260793289917003055784467513920390876735271443589572736673251673787584340065952635208690423201737197575158663911176233119093912089553267936283944815694186262436231038079496528830638639482656364160656180190975071397196281349403205018467147145129125903817403518992661574181261418590090167795267048945874315388465506863668782979779148146225544905852867312557963970244608378422602336243413050465039418494538030786905046735856922820502854098955867034669513979090720130210398578445758207721093900289454429663918341254737574601905944569556241032503199103912132031912143851452746980270029169287346848565843539205839503946304010970655390720234388666758709736235604166252690155694202551409156375571693212427423470161002158071760935317290299983370457888968486682665036364086765897617118835306616305965253332931757593859220688344498086199754892669208143926245028285031966703986382529601067660615419925027024075142205820226804244061970768291936549797882127133691986479997536176780891786633317075658946521954266295001837856901940690018360629809751510841649306860497701492176379403511228813558287293218449715230217328066252927538810833419035245498415566611641868595591289535637550640895986170901265806774757851605558047743729181799717605108101871329346706606635837282772819572519076026771189717894837422629045042280736978531092887089038400383797031255780331524113108993164856947058317359741053247610792534927940246858434740373495742297859087638814149497968096967535906129482363410114991065341617909053715097162031819206556662221179507251022725875563032204290665012459966456927439063146325838756735824973568784143319615557662064408687988498122274894415026991749394021327554958911814044170563189541992921347389770939723781073771319275101830972305815362299580461407290351862932805165801617262401703513582808972227095895643573159172362128822428115376896844001939346577216514399979855955147080515980799774840132696663434327757213821885175321320683666193671826332262499737678834082952153973539060340141377067055214549847596955851629866533080101413397943363402158596903858627941451549195808710143991404284686906822623280355641499109886628557855429484620328651815228953891189165400803969117226993367269503675380888027354831618719801583928267576261053338226058009136290699454238744657888734007742340540327998186139175065667974535954354702899557050548244595257871033036843804516695427695794968832834601923858387635487332150289541749280999426560326755837574925230539078694421372054347589056465449534577601315315886794300277038992866908761558568624759243676986226272834706728008226339332321262257798873618771211631765667881460306237050887604756408507591597534107899948043332101566746509282019850249883976360033159555409151013471546795165383972743645357790678150172682128086410420877829554517448044786188345538102206219030563683970419674003486305480938534868083403737678779486806497185438518164836256070550307729238883276602504654299226837744218739356582976342654728366328616677165340966297140854619531238757192583373567782543969462407999767003944665007084149090836916181272308488001310804487270921894100270111556184847116229287489228472958891026360195346404949727560111788586960062618509785021052077704346978700166782474569884683813089621188263741365180736565992161583094682370228653008615088618304192830432676809825231394906235379628264136340262481464616261579286282061638982761783812381414238476124811354387378543543336024175983793996999598555076222889931119782865920449221716186456919597730724084715634801302361502610430988536044413035792097313573144384647782816180260889736990378004076598528765031309864131771395245443477420172307790997786049945524232189055385661770685178820315279302625375558966016681846643518372901104923738477779136057059795931104625937456754841887895680128402655192294592723747078535517139821686788307276506625503453655166165841088267394354764650002195886074264985446014706936147154165840584842009051580104199128749963883531983799571626331752752784790871634769668463171152130416101337231844381031213680413956487640766804303019988462102979653248987317361363158776988752691348573081150881302705557176462889955373618635857150544969346412536048403037056674773483481762731023736279729050836524973949727536028907060248154138045388942856005951583211833631756403694935763397833404025392983779622293141157976465610643833788184135211190398198300844356270823265766051558481408445438464110480695007037683766821432090926456863391375373714041723348954653576899955696370675217806234524973640432335309755595153176211650980658184483353296704419101664647675726031656141614611705429446480672388359106289678808946597838429351665337032448357598104276259054284347219825639714390051847969561001350258804547274254773166617912866253561625403525262707062368163725176477706689384854378201705959151238142715117773309941787065163663084039745544350542579222742589741919369198879614840980587697582090364687492475607496400683388009644358177868247164211974315317328710686135912380350202769426885280028898736104700356661537972149818935626287647627722644856418711131987578240001394596328521960222840487272317715064932051580503066713542859779238677595514642452410560009666501144832926346086233004499671539258591933968169111681761085667034423510024144614976903245942036903397375679483639272305988671873462339145852068129781533009372394914644667880897872640237233562159955407232458012859197036416070783597099922484544994842701500803222109646977981461671879448273094747246384539186549085125904718408666882101475640244372684324958777390642462165553266274759523136230643342085120513449693936025391093689901852084980563519167100228622609738409288495801787529157542979409238509687153035283699801712308353191669397727928404774801893280895281919300666709660086434867770186307008877585490773796950059913630722812815871425332853463933459389523065034787952177457128992355665772561611717148378951530169919873579809823440481059343511840985581739217502509413505831045345184095537058770096205011784177844441831666443336688742307714620901867722446283944136118662546365896869132332281819455703313430027062862152698243589332137628681142852402467282030287926520388959804885420742217410336336317727832460364809153273645325680590816897164712307797276151931559948190148423877954608823665284169870420532808709922996822314168229145523585755020224171333686165838583680608068272601060208989446137165689156442149035712689040827628204895895785730818120652877781296132091447244274188939551252049991530663764179862903190958269835453234671499918932554563694149300669535803294868037738308852436299386620860348285540804052365678700986335892744819158482846468499827994506717720129515771729020052379431078421809421417048163871896492616982923027012382252273682243343566789669033040250541763978899720221597401775973273427636944327125363959587612802762630725712993051338916815053557894132826020266412669244453639496955543922786977154666787903811043539685132375649126828234095750038520711598060866964223080771129690474398205935265738962238104080520764716041388425518794363344361313480607609841380509707036742030081204069796622328918321989487367273149352091556071728125551559319323946379975313958960642296509366758056812835744699285441032962327765880487398959325874513255641331591058995749775543527799203155970022869535462102733477335919657812567579485988976325539651903730051433814614378502077113944900911619710487136234816761137153962224186947310193972867615663943838438637537186918840065027938257454737408918857794549724324301981298554564117449248276551985948692969489619936822557860489384041806285417782015773713447930303203074859173769191503189463789160517265261775810355778493193879654651420245577051371884395787535657521264382645377385775518963716489954857950141694739312008389436042140403914814586746526213728062472047268193087309050898025691840870107227160864501072451757337209273963660389883663364003439185638274228230109448698924369338865096607175265732219103511713144632156669348721308115499812306435732291216898355801880564819616242595460638547094152823905714485751947234640773068929362532614334052232786631978758303994217417734422047679522327870466629811832762742374542422965104456334986783152908526846676026590699188677840486470081241951140440096835126983689136511390130715210105566635425530879013557285892245686276783347023202079286236458447482221735228084122558691964231890949899931003972588307392779772377952495180499984785006588139410841499693415235441197260031937164994841390908829776579941188694397318184299039111398193439764965580126564342050517226460437526906119929248458109663172285068590951399435117158668346886666629902653861944684754719558172836467203836514272956228144163210121675116920946113216162747855374309401892095209045778696352404738829608657696967806730701204947464906646305935026525171653996490222255149114872143962893716957065112207470790484432803259994753630793587184297814693099507221193739007789455621122702991510907401524234830792448491875194000186020762633749320664787088317814011897649214929694156065159665164047113153171510118819405542465246336931732034495261489838725045455309111700188203877209692366249882115330160527342452419918056867899227301196879381737245021288176027594488931508252983822178698270392091873372789876132572466064302037280862426482490567582702820101695419080060881442756908282876932141118160303788202948585601825320128968345810589614907764635039812723833426015694359531695911631603917732203793370765176022772885322905563807190806022831860893869933356574318282753192916334261168709845878725087446703982485063168199400948681812100883674445058114282852706244572427786135899512788311116964070055095240519247031534177183417398149881148877956230553364419331344118597646854384767766097312699044241366618975383813504408873305549300927506951510448360833982389123584971430342724947864380356363541347271942928121914801169214380349094338291539026985601931955454609878323628272362646194264522306329698706906899523261473883790269851117208081522445699841022091762160614592472369182921802063085456590729589939523937218911970803758806468040395311112636320840094491872713424887246786940943548721246735362277402972166160565425270239122745227374979061719804160771791696319085286788357325854589257688769539582932909015229216380439326981870905144044366458249088738096675692710204182812847949592143283308245192829931213548958541119328103315233273284524755130155219281055233492026132479909787582755011792236019150636364667379271705783660266279368118885981961564896268199140159374997414469264549774246485392184410724813676912433247371959723070800049065693174268172917961988782884672304314273048289528351107703153937154445976919496668970282689867136137090737051266608170587136141201073468962072742418586198528109011191955134256399036980455503799925053367742090188468815356988649635848681596284004208608228975947991229073635272146011680931466995565742731642163754303636486098224711449601239449428741856564292480352781296972601846213757155645157595498081629526946008708355774712413183915333732615781418215587790431383541136001454028018803300461941033196158073991073209852967476005936463552831090226044546856326005684469927874977989658959173591942244977728055502789588190394012537526878350258944177482447456327287441083992336163555769262295007599431612445987358775595539190981895172691167515906656310742272081850189629161388168063325797313026916682296817477141407709392354134714004478119713204477847288818644789374370444905218920606310008410074472006570837060335214270215414643704736671798425590889853914830795064494902437727701854348356645417834648864084348932604202814862444953134778761036314207499920668217428677097180636202149473731704828912393810921009367923985346980349716607887656683103067878629418072033149218979767877834985025959241888194995189904481217816161505200333041036105839439764631206082511003173311355973367763194102581240621217278593016780807933402564884382122409253732685560774374297999366075349642683697016193158111975967884141335330803785186714664240505890499937114041914754601349960703396497918717057702459880594687804466214238732202695958434203802463215587858666468767282282513482925054190013219189682688524145977298010987574917544538793246947889543060170871181409417314188420694571664744177655022926493659448111164219296619316482025612392269864159287388739818245964304178608592273448194067076363012087195659771270466626506347208546468327208263040482476515544222054707382219137065384389681302265225966217089079866105516140177782737569326387208027455364516817585527652914990656229567087388584838834543083029338298833236112740569039312527113414354198156636577263955876096099360159261747377141324049469067087024897902834133602408978122019874920078962792948003863633483565395514322106388532350945955193101873499412081652692365539513124710695577136872003837057022306763467733196532632987403695816542417294297183284086464522567656428368092392848426507901413389416107361168421797228209965510396121036861473224049858857454601740381688712341835690458752448288072377177623414336577687212645478603470073786027199111807927779277099081682784365060176248352790417846213645981645862047211621427191891676615668954425281586279220038561881538316482964124221747754042558642884446239895976759994476921656050796098599022954138734380133673208943344690071630230816380347354348279586918162700967031314752001814600378312389677698439479307983979300394663241363933204942807624492689640414181624898596202687265327539899154428971198233767611151071646626474426680506110705022975279709411422236162156372426644132908899508132603415228408969143596382875360949792151939542160494637640738713963934396186773095956597386066129096016075646438573008127742078398823635166163770165731319561773097914997212073464260928872459568407563043507355041436261315406624255390810384203739809330187814104727470246061734285236581577243683123066330027713621581950636609777120814953148166284515711830018046493524478697125739633009872649385112553144411488972695955054259224919910038165855699329573880554563910172312914551299560992857312064281548334209897948994889850024101025245562124967596613971510690141457287023836417864677697743359074878494851958785700584340625014987594998125565119243449295298069232807418657104078040148188762524934444944539605213247378119791169137234314799738242232207228815032461702164583725361000138582595779235943360428981816890467768963324016628316228487990543945872877278440699900795256728141530037017581698095412239505725311797566620476027330026869205697792968264535327827745405746851754512448026826443714627049275723562095137856316765711470745828553007230859739689784789315624964802902611419448500961455662027562741237097279673314727256321097483154680191201154366893163825188407194335976501330865127887908557148018391989748691449018625233823481690556609322103280778506597789597935561083263172179695685782478167427683878740726655799475787234340475536910674304071134588337488688828767551951517138475229104470999684013062543210673854314980256459068002703548616377256119352680395908525907352777443139758070363716147843038070143155255557165656270821715586580057866919254000401068593631544465924423376108468637214889753254450163469996692753289015306989885105425338557378431217810667861462503095267088036464621719050567937530089621667247746481477279337049927689043744659086183543345741386077160175846269932219290457579310193494979851689630584239070798864218279411487161026255611896539595278800030736937789657210968105383775252066580514455594511548248363234613917869089973895380069682426067746792800582930037519097315100367836849225582214595046311847507102789739393816156865898716573638543324782052856859195779952564067560938055139784158439616093146345636626512318058250016557028246616324569851916126958737060291415676384072120917732506402563705178488294035146920082372259442552282249948733060124302242645065032988034166696955767345469850789787379109631866462355366232586333263269211140125883053782124150232592566852554418462080981189564158235974489379441347274236914865555490487112939089644295575722193243345203387907710936289019133045476807717121265446110328401603385072951316044654945761561609954252706638849280685166739755824193548314092445144129846838127904925537443889885192293334970477042029481711803610564263713044993097406930850262958445850029681466820102131209751358422116675658921939873991882047747426675306183165280522943793836235529729729626379720068795102207018997750586309289596491870101426770956614221751306596402245811194477217509256808079472717206298664750357626883673363968214352494305048653592152217118859546926908878302270514646655537647855493109748011131787148797398132245391306277048520543203959189706206322845498942323207543534685573397348905925008757999593797927268464966528062407734806410052336481164141895816180015500292573696169548030290881247055106723798070504392685143120683725902586286670964203682024580675150587897627926204879002228719012353638563976673573514762756460438469606544289323968664904735201160224767825074264875755622676740158606243136942285256965684622269285102133910390221340528721461694444841845280401120523875845698134466710923693759705376691284856636864516053787099541570226869431949000301047281340251383611175909098047180584185370254492970779928676438243450870603616596796388074970507869216179655418874712409401838701482599348585998649177718909980901169361897525489631379784371171499083977119413485835125418211813635373298577240823112913869438950904617046657945321810642734681976572784108481445411151093704367479224829899253051513158616100239820429937048681567407773603794369826988093612804551397699509084161598763797307540806500668770878162476618537981302026603339201342476384725154923235059815039519534522696414487663723322057464034458974607291651972552443612342419507877672604230574544970004228628922593560683784675026007820240526005485747501288749473505346301480561212876664857148252381800672613587960048332576006724836714583926106120793026092352894728446098227927527295182609982002530588513856382169092708504352805769694404820860364683888726813580848972547070429118985036048648187168043083096710623143413878936635829214777609835856798337787047416597994822002980441114666056180843418711538408990458918884935477123620781330212738532968118061127692407453314181737757897012222992842784437483540015117042513801507449686584569279438463848459663471254080219537758154722646679441577799368470393098888313975596651362147920015477857220747435310353338458987458493735690063833472752240104744176997744198372626041353795999447278153458244019439073117673357746344386588795359656511788887360330069249651564775690627197145551433308910901034317842484525370790129465202218923222848163845923054143713541957685658760790768400099490832571106838218056285543098768204524908364084763431559280172679590926763006055519919086111821644114556880218550383718446667836670625715785945988852529551069969000191647206368026674412909011573954329585783520536741405122151174681565071111243418710036683609229248640595011041876355719730545554808889545301479279619715551805331695793291427651450417966901592880393176944681176727169064749142624073429509855687448189974755636483580876916804755573791303706937764305546889968741076718909674045942314696189373744063699393915129366847361530974441869918249829009591181623078632450280873401885903045433814320248995220779635209157809115970750746442161310417203266086056732321112741369918625491478035804872581334368265985855333938524021733761324914921705310286139466557474721955669440388400691444074852084180971256088985342478809206396354012648446350168758532125291224089678219681459223619670236768450265636399522873723322317975393429535088713554845736626697343013110909932672826742550208381336528045447616140003593225437028050494809145981943954098152035500675422749295830114474117733791998863699591547721314372864844918932128484494713023872413802357628014968003723238792247311012953869544374342035296735393362081693720321866113934969180219396128125299130473554644391847645860487139531472859163619153091352168223407125007171563289320205607827357094243988460602935714005325435917215295049543652431098376817604256425532539292086190955497684433682426506961189498809116392421140663187023751398249067856215005508429998908023686597261645440077384557000758017302655815787376968630483189175564761686393035727370055801214320381909029740091131973887137598516123284789588125240186842846914935433209515134687950728752911225889174354906242764221002007411897901236462158570854630335383148816943730078558473445435624773861534067206628594627137153929472211567642132459438346596038049292493175598504655690138949259657724512999796575181640411273151678014503082702915911905886051636315032090365895246008828005474932829789043143471545651567574921602646890650600850902680818202498293400639598853439784676469298019659112818598283409878375093048116338476900033754084350830285808490757927119347030611695844142973814644687775311488623833232097433197809286119762894579835968299892432463170315124111822869844411259769434814930311276901168609075389033673109186447924333047388064867544081953592240829801497195057388932620340771656694866759478086211571490683497999606074833569773777749858863634877897541746853741913445621976674353412175908658564601269807602760702258001507366222198399650448905185472667853718247677126125815120260044813455707957901550002591511414881661281608537967234906943994510502555339846366305008285268308693326985172310243757929681206114258684458388127745759926970966961547783168429555780511531859672570185226630094630942822723458396251883447837968529809815605340567805473829738598574279702523371383165755417177480818462635790301525566622848242997222234000213849190717211976812476709656260994477809319026325379198313734319640620984984006213180279429743940389462523459640104680964063379865135967060945497499609962135948857532006478090762279562424947825194813757373959188101770868450112806713827593377241988023912844197836782048406450357392538429902156588814359521241515666103126426888758000809830630116191029813099741319671676896232718869357620936974890838614898038771625269758840930426706806863413534660841733582750480858544236325589870792327558176387691615364387380652485896989122578522982962898961223541672488916149323667073944168298512748824123556091315892939138093868407424043252740981867681928400964056088011947621159745636040576280044796588218684072391966726686822113431791654504446989069562691555123948202201423807410672287910996191948636487041192224880928803630403758346403007779378533094347533407480718434562895354651506009133114945680816042275869887913195049497405316518900145102982708145912529165144184373072520392281354373416982488743037455341314696814638738399669626653091131022970337125124053128121195021785506748400125920199260682182725875293086003004578219706165348757226497928805026299944766224421175714258158735838972545230030718405744647815657350036279303604427287698838896142033673651578269328970540689738433387273871626934869429140719793805933274133126289778440803904253548185532224358548756585291418219709512104904086189173543221632738072902174543114102981704546242966820674616434852940434687839829229124402756606071779910417983241701142872085939827871819062966491688574425252412183131564052591960219617817734717755602042741731127847652351896967239204359081645291413038518746098290484799727698007841066211936489780894285544280528261139113492150028728918550922348035098803268304254855038112577622704579244977128454089653744584491521118423254018103077743810248924098015730874336211868106914493033197632716158616920884306227679387452716511664382162037373367984184437630162676377738215168835912734246137390415324639315367846979082356650886032383559148765814536467244104484692252545096324095861114014780193766496463346718830515481575842240514973434637209416055187808423206458866877395452529844610492046629195214431753084559176325112546642008075060568948060115270848054173265761544808197408586940244403742940082963373960592547358157859230518100750766423714912617020352977049206441170529719888327279372333882787230704359517841522596150722673900610602129964777612979796608247428044346988851842327063671320579291096997641284818655791309368448082709066054640111709838587192954298415809861094535524382880497727394252346823950131457110200873105007436830892403781159447104142196002144612675397399584569282743861020792219086469342746277311176977295301503786930282491080132982408149730407816622565565123082483249355244828468949687380890396087063608839656195861197600077579412655679510258966525102069786870152065080978974045146775734090087784874955156713578395913068483662425059812003382499297459315855059481582042829072272559095820109511166719983660522646828238967292445438885367511014765051136919424758452911439465468042386262847327638633879332815923031191788948843864794566520041638119475148086347922540980446456857363008085477383267249730341586210277106675117695157437939406662569816306144873551079692637466296035744277630881671881534401046498347426755448620136122931764534937058317762847084624761416833762168140807264360766922410117728946527868449245011374535151137586437206671350288439831044680763011074858863145159756347071916843437134615635603200633545968897996385478160606447435953269873690405694959281122980790918666794928856256097801717434446633875007210241804139563323217818958077123450726582710981314376158562529487452562884499174652423509426548915544247933459053187590131067701759681942066176846378477142870367940669681835194351293875265393488605706192823469603954665816301927190748737636648200039241586628475922799692456149398808416275176908438000929371309861454033464112767855978416116765153332814450083414519836570144893596913705633623322858804986226253367915896742529233970854671754284479138404715277444089361741121505719864517105737899330480952959593006306056201670123788083932052551501336705372247476319058804950307221570297606858717079063454395288119882869929153538335274310860756799771190412295578686535033331370446453825614644794955989183373130640247240661228729160915523628363379122345033092401533926801451410641930426677869853341368591562289818339442828502979451725677635632298957522350567388935753111947688012613023321029533544484047691273374115263071607276572999411076244339020702315798921116929293901596059362123120082220904176080128609029956692799444260441077512165361640099675370688557385607992547507774778942721713718125959778281881050597873086717644595400514565896474499047635541104722552953223575396712185043185060479778131304303310023223280596902514781177792649315259572272473488547427446932020738302095643497396308793169330858175217327271352237482557015641378123132584792147547497317304394463104678332219216454072158037491990526214863789460788180907629728512944292057956431035260389631036550572234440402058777915623653747937702919594580373866703240360027123555859204428818509931477739942420611760162145333209171514405227100356818909807183124206637555903212559922694537756878129382020325487701868089121627571457046998231564321373283995908519040693509504700091079531877168054214229220068624346330841667219200474940837364674753983455952948777581557625260272841277288411831158144417678347401912398552115904850562910910284102111287074141053699608864139745696752883557367827163227965574869633774919369222736774439069905897279511126294916666205529166563523493598062579531138291999911777541766136276466776384390045654365561660218244199161726230398298555402874855081167864199303801761671212879310778408633940026049964855050271858770328196362586166452562672707121982488733191907236170643027415688108713394555291309945835484641634772502333587103028556168413394308154701919816918862922720649728273369632221356560032194230696188547119476654975108700409739229159071548020325734596483897105632904306945952668082665354474370379136604175212537855781539828801440875909640042251556413776828731719642290045591464305669797020343170879719746807008086310675829242379794285893654306379465259479133075986219679335158600412407636179947389807403681460785325431974852009358259763805674611254469374317740457822993669976635211781320485619604592660135955923994199263886385464970796320665466658336668315360881287777976818378222685599924452562983512120459835291746601473132559931245434044498947360146539231022218793008256019832033589723991996786247231954951612321121722675865795709734198529127109513289871828563598070566382139316907292236600664289510041095388444983682406772121228260610990437042869870023862823549741813411017797371249874511902278981194212456825619764659939378479399305606711177434903398039138091355620930072047605623423802956363231500939962616293331628918642383594530762860195467179651762512405811197812144117862286318733810555398931154758913038801042469022367601584491826186968890578209097499150143581522531709076752013775294560596764027589117114535893570549374547550617501728008398371093567213612670487621808740426773788774899176214167906397453930127391916492148676344353032149706699060224699364632016460676131108309215647508690013467882116083080607863761270826860721078328672048035470791314569486110981516078125543834708324407551489347283187237690298183174582521574792967512892702484077089400049865085096502839947150828953810098466361377292500210775346468744285757100338671785750808489704315903662970886254885018799119376526228881835151487485943429396268241791720498213624925610097482782740353967165813308971788844972555697345900551215177703987447263465148740338524414118527722453795117065582183587253197547182388893677166840716251138961039477636333373773436593898478566224925389248155490253268622412664864573272111373120395146810968330685697996103811496470988482398149090379949906699560476661686511223705267486771979457951692800549208109010489144505882385470399766498256972239246520003430840274325853257820907194011295330534946833179299090866207036044240291628207255587369475522076993062724988083823137091588347614600101031922749718810998135281058781107861697857803098289374089963367085631956049031633941891606748654941621317863958088561525773238446314306280073684690415137450233559179928669357644467251348017982086523076865465247180986462841155610431532869320657922588737750048031180528454876759860675551237521801826882377182824706486888026654319467405545060567800413769800188897227061211198508931355743674259591819847773331335198746675944957255770426344570129062895564644871928797804671560364314668931395662877248851125400422736645412548954016812649073909966880921164419511150471718142398110309642250722155605560006731577345468410837677520529365718915396056241846365529461683679264592645228709232798231839231815898434438540522226580070219816114601700066955893211226082708983991491959010567506800780346756361951915264517519016111834028789795279513869707363110282881022155943080441517898553439653396837163393167564934608324521262330476056403469772482303979974678976489693115840805370734192232333762962237643895415059007569121846883638121424918581973241974327243262043126726724554430392510932681863591266512646378647306070272892760606732676158202093864710104057638688190785011240251635688081792864325708119760225332114782878769024317843975293297965138451988699680414586109082196135521936773111392038440262578157754001619519262904294388851333705239659074483696564893061167913388478877838506713003848999555084004625239044133289607420186389970409122710824174879607484702931141782728182083160234919754775580275703342225938772864508732624430175575462500375621409903729064673386767946583280342202510744471011495775367805590569646231464238415247126576968439883574767881076438269716798463860391050165445823132358370278218150468657211950396311896913091446834228153771337843869659302765892627021566955658271709239289363706192224168424026618882199451125797502107267261299691573923718236742380891932459727941610066231523733482440899791153161088013106416165740950416763961470292420552978426169735210959200845890314123686077307707756848887287597305008832698826934996792598722929566521267404501112870967960455800789212663563201808941896189116056902421295080581014825461939138866447876168772932051570669141378211237466628559706677480300991618131924077088290123720393301231627793512236971124020416144391083173931258210331579074827815905189873233028621723912442756029170386786828607119011418544834307470523536268817260730297344767563376202835329349277554653962648527906000771771780827078362977147273868223090085733515893489457162785274291918890297585423999257758152441280429615648287023458257849068002197807673743354766398505146558333847169426707393592527010003600738160149710686940336261234280420656324292309743704994980042820130619400274089154535564611504939355261668486946245761542772428505540838656677752171196745867802822652846364896013126881373620895714662611623137961499105216463349128780455875274035485136327309207775869716187821264478354750286609066606009861524872947331624816689988060645552853196424962626021148209730740785557396846153483660806464590321126336487909925800175353086068129736320226776821065275123329969340655391427959191726275942705509670825315146369405678280082946372699288619710617928438279269392838182190663507212682248114004532270997485546454427277449048379641420836839481117602755594536225174019714286401331035274350370192278760636314629078014588980520267392376867064019598737772367967662728689941132464830150405041527260468405341950119798220794029944541039232253662046660130648864249986490064537925898920902223855838226472130578262764702869628460154997660775916311005877977673279083992762530881371581065690669906085781195464036744552896952931088012744877790148455555148650844236284281499085237634663592063298535609407505321074537504848022759956392650657399448949762459629259811835625904099216644584144587102051737415091730987352301545398980640604174520018852196679937911751527595901529178244752421389754995855064862573406969830258232638017240873216146637942715293598946176983529981496382044457595268822041507954541425752480720682474745188989838508478723658981627268498325275062208908013105141666675754089702836486563530879795819160608885461758525154177693408928076720793100882800652279789802000892828441505746295144014783831598634283534799544821018415351585680325654667949501224991039369647601344527800274241186185144868924881455574718378106493307091637564940031192714821435704771300707735428442199335874637009835195985404472210697114301044348024104399722203290092674241817675375737804422649248332934698559048429066967968628336765113847497071292207745479029187741529702883314423782122502181153100885223514895475142114927690206890809625423214710545836209797109477541533567101773097908147536300406797236105283729521774881897285528201606720103841351946593898683718012201069308538881721254727968646658932244018778674433129864833329724231030044689736257869908130471729293681818766746717108957970397343534081444929689620315191285537392756606859626304616956110496269824504398754535510496727893612359706115163392645441442223685146662175642734958536699357423955817986524158185384567354411796340216972325548584562200644485823633346974009538066905779806687681031986432066851071983041607557045879039342897605628745572663583278011298786697064644793463675242949602975435597998822892243252022530327829470031198407524821840449921558513930033168255047844326760029385931109331032215996892090123248011213338040456226978067224279846515005356375323580600401639861583796295939136343655340874692975388169485053794995080344264749491114387862697651979732885423225964206881260219294997525783302950332690358239731249878333138331408968773500451973705523197883397075809219788517969016123478541292170423892635031222070487640197424732846914168288748885615956574339314407407726232597263543787206988632905299247087221066994645883222579686381304356975808401930647285639971582756246455789956903587395012382480680865340275036609398448421221659621303480057248060844260383377929471273774906004892350746682065282903465585207538358617954841751446240387974035818735612573931478873741660981686106691631450826903497984779179534502445305750566372351217270174886944119073829227986318910197407909523830763211195049271647719917921251697690287560156581493688838268136137947371280238146677710645688758052447173853816793516554578404912552120965772317795740206836378616455186438404922311959052022995348100320728481455705271506362815048118741370956702568361625263238803583106392142049653838584465971631478140355250693097049729014931122493563083653139164173915963560545893792802457029957418714135954170566278031197655397425404917045396267689210353998532678750544034903982279109413634598237665130143841527846418164138811347737658399595183957826265295369807983047345230511534058613499277632342864476162940434545302098428999478330672391202784761118446120921803035402954746919949269304202089179979589475144644658432199011783794367445539398451322054653025843245653310505757906104239398112389726548628758990239332730351566571845481206386065494677959732773841195152604327743689491904841898405225709247535518531340068566793039415031066211156258938107440592348610129335384188435619942941088367057119998731422621499408847615719773141931444482620196616140049231478650794878873277923726413844381469005450717028814982745397264962514760064183496816564019534885086261493375451349348233153729717501593757597922978520607907745248729352395867326811699753412336882125180350379568147934240612581178887757090418333437212295221089605456644155083368990122217730905880194187197495433607756825121452839692970523822478651326016828475379318624258554644953005472114491987305944834267010452584312630418784985882656335436290535758363905079492799108374647166756547891622831818024514717039937531941911491561802983240295852312916766061225552720032862809878596909506403743919814551768913678435346077167119606280094576831214342501145828004596916318497877999456732123793968650114233524896244447117131205111131699665658683798923591443868231104415515610354663906403552616116665734642275587728298392035843633491947675356643331342406700205943237132711552373437169998610436539362322033869722087631204272429509357570152213244381384873677787986193248243115101851379023066296546292173823954504458472067681499596449237793436652398725220714229805465106576997095659243946439403159892501960877640607876128519087110085483629282944655172990445805905999053195975260305441166721748787095885248200303432798453267056299491492484737201598165641487008242408592880664090007895909258107980263194472656139767520236315062909431259356455352054082442373360060335437319744475741141914105287554491266224466789626574982614244104773284852683733616998327677608901662243122298460513122175685045891337843983179470461845590144676521386018736243791929196516205368019703694191790966589566246264293428496705169117142684363513129246509488782258551573599361105085030547543756521708193171337085505763325050939868629495745369363096580446127679312951879486556019391812789345140249050982131149963613258726141989399826386522560423508711319263482766073692092576875093647228373534200807355437309340567337168667125022308966163555573814741380746641343284299073495784048458949451422043899971576810127431808636917593259518397261562405146347873839842384527452814115053886251947779571904429897387176619770224739790594634890109725472309564033797907291870075195289523162280059361722069335010834513919159597653555923865981884037876411044261040356376961508535121872656237427441586586664057578343054446038857566471230269724040359379680045773418937389277728117210468302196283677221285731564708566970035802733345109846960787670003061472176914778310907455332020262002586938317540114924270554391184191930627401207387695575509343506158647958817175494653732459257821396296041922831240062827166268626646101182615361765522826031380783039107711393416421222446191012980818019507646678434736483330493207423905222138547821172072228586160507668194255505217459896495917583839015529275176253610088925367484075368205921519790965000218558032244584821360748132414372145988717321196402678636919642788076287527721874152929896585033958208932991731591773877460178076842841891090629050671545333731156325416850020643373305296754965630754716510364966050014706773931896809498288130108579689549435542013437042007109287526031538577471542128262501348078180066097063406975342818067589013601430009972964404478031743304538393399104819796361737342266344025205473443219561959179454061339515655863542326134235789224617310190494468944526575876351712293511435178479111966241544948221269162045032935104654741447679820640714841371356823211121545689749660028897348599017171284104538844139731474605555572129215209752309640453532548327410697953089092124347555663817612776668067703719819150600798005994230446503484691645888153480426417210871767608363100789137165325720402840160829975087318184198168177518745209062562401932218199676748085478478683814619651540662970520125724942159652196020818738110908139136685291056625052396330223397495568040093057325289186815309439323649529058796468692585638596718472259721078334305425872589099602114763170831564655980537766121565108813250751757575977054213836458159058601793640668936306544399475201376944739749845515441403969427893849994086288345811492064141257592818473423700516425210210868822742906704762096288066716897885353491482502473426499674837189033093752318348608007229101478928912264467790115206780718529883907354201072436141636891116732662359226420379101173128427376478092843657370530736967949864711074639989246675062832398924690994812798170068314711855069809690640039563801218519122869450615558960525035005116369174441706134349618355678727575872697620606435824627311346321776060106500982457825288850078787875845541235540915516969528978369652332667838987793542228336804768379531412007054813641654867926979769323104809032165146008410133908528675583895376907992735210730709721851610635682186188615732481296748443051983347800040385089195057629374868725551300859952336778355701008510150108343987058243416216514154257731923539031063007832290602442939973802333683670682006680148830687314869802826528207351455523271528116188584398808199650629013773720932138049308742359966401443599077478866562899436453383768520548361356728254037676001564859217885055269534386742575588816939839206495545531294640874211220088785913514727983890768069905418790083598526001858529852582049386146651437275814836471161992785094444246036321995296448783157857857130160557007533024898146510146128106912320730958951821754569230094221219679914651867127579552701311398382588495758346506458300401915892088635471282679739763957526506206399378415995814191015563672095670935948391720423148352353609809220329259519448039278838407361762859087464520595599189333837566764022728158965919892022537661049655871998898459685038158610630005497002981155905326611493901358782669617764347016718627670499462592612059351172514381412651246580944750070407640896797938845025799048666788670369935313846121034255237629445181821580419393729886055617306963798886957985687530131108839596991083359069998217536804594859450044133812039850543336598856878539377324593812224330926457909273437978492923369441047191793275095929594932571325653061491956838057446210345080795709370968331878456103656504339695831871598744229562418705314393963743550371487824891773337120552610956537695594910245942559081363168895040842067153743513608523021375157725640140845036292505770958449573028850149488295180294638384209977505129697089963723520411930499626613391039960057466844876332860343221638972732163159035422916662763399578906081566653063752514686896648273054338630939162093398328366513904268828718722065223098505786651707136532015423078084375744429764137904043938601810887220473540177671087221511941736947168371116712597282917218632976360295342244765735040637853330881821598044198839902426863270502973151476755211530783576632723221520571930323434536950241614791617074988195623441855078170052795150681504787582628871551259590047130784155731424721537662137407550746279356092343611561501134172994082383981378241856076385781649222943806075075964215861827450892051805242820227154224523921971460739185696655759235525547901688047864089729107047347602477477770287011928553193730662677209977413257611378276167266967186857629237070283480311260011067051897664572911194209754362848548321647649441271291647001657778954078145222568495992909668702284941747360865795871458991652119947477645207304011619472231656074385658589170490596242313445839407250779498590145447636765309115235013815337199656697208625142021541434601675963156153497157805728571936951948868351187057584868641765290794908136250494658911480810820496069845956366743847793118600057046427583493589158133090559669878241143993706581839420646497468937817327269840733235114230287881351399285323427285827824852329400331879729600383891597772958923036828600032555220472711751518343016361026397853343432072844951382800076140357877747392926951213556412832439382683362992570611667827657461420226411610134512305973731018848334197958480708973537532683235254938046322684143248093987104565450144535574377817389068842337388189688007248538601673026743641267037285564830743839385716433020776594258828451450260381527589936366180639949606866014782954595567650925376828073848675969179926363655884090328995107317437897003571333476747836720414513286719851678941388902787424887643607230437282734631495540864128123783228345032790240373142369436247219031014172529914626394854787778319804068214280010483544716458431737683227123787680435866549397522745415715815373029796047149322724280909115742499073695264159569785085743879625811936491172224423704749030616580477246982368649413352039678146178413523639490928761650021747205216559057490910911264264256674215981651753742957172328960371171716051400192305155838584763936868888315670365516877484179288864596284896133619374115461888392993383592743663594155720700929904563825945206053599781650551491355557410201548339533190878954654802559776977587317405909711842248719873455299938602987388327651000634887735906987744769923940058510531756182876970215671428500336950944639983984595115819135122003692753473671155478473390912353012599401879425071299734344884942261633617015211158765446162047475341492862352332143843370080645676428236403253216787115537968588546113408772833830805456953821207343411749279506629844924578367767685485933962692460501820320125864247631222866996831924087858888102436771111349106846137554326727219467517499916624901720499350016287084632321002166312396467958388904577113288543193538158100582345447827203600000541992616493166777350777865879786181996139078752534218211507742559087944313628975278477712520073580769226596931138549589786500793347368787380449687753103535239034827678113202595583788729508655440962424884180091123327152052781173128331141366729512125718798160369704263496561761764848481577385467049414613972913409997542619146235619483520545035694482376106900417124765777396177395524001509251022969015567199453355423785609512481556444660238439633079235665548434493755997773497184011297221257508162329893344728419684574078915647998033304585410917432263563681889241774225127307121843267304279664550273543378060782535650435065760247151101794728905534461358594899877097007328029990154993506778796150593219643527477818911720372412204789915744971397836872385491448782717630072709078895511478360063258639551475735249376110622790937396819270123809847898393075388969430386729802982405371062019179591884808980767618618063661182381486918749673867641993776551263576939336332311220307271812198335690279736494814928329258263503841151376654089507643948720896303595472873114116819500992492537327774354882386592572590202677621130132823886461964602408284411964066112226448356251847175665381110340209135019693167595600368537787575697535255256654359933253761029671063955694224277148608407801092545580328291877959874189990329975236325853713309646000792280734209990034681873567875719370086347484647348357840264418104374706495767239142855796259027604805343726991687958897604801550586074390385714806808954578401055845954778352515068547297315158196728356539329483696899714130244988532525036397853869035045956160917466055025018132090644064310763963942712654790427174282962224967770231072054897999155378770642512781073263786015644437337518695736102108744859823671562254050860166026191439324030399277921334277726615855762224256355495943856687423377936810814272934241843111977251369609444057337991883716706624991804957355888587698529056510264478800009518522619206979616683008961108777858004765283235993732631778382335181841868325067909118237286446510315743115837855568002961789197707582029401188827676164099759496583954477770776871634788268673308601544922758559727211966381053468107783520403549143713087446039452561863108625537555711770117636965845458675803645657031884386127437863310956255641953917401588819650818745534087059185365002260135307081319978285395433044801283257667888421341308442042339988107238683619879037306719463087992293849713224739325123010214897198631084316069170972091286681256264538848114744626615193252184309871557400654208497578362935819198199231871436307562859238877528170900219123746268622817695168709657930426663151212104389357586988029920887983865285504087407631238238873049870930309904957992373174628015518532173265376876028464493468942163671582086019281488807354772583091702229571348668384625118558756992157155917953723767043199415938349552715508874213585588231892790912773560351772518213355438954903942355751260376579335166484355372918962147641493808094367137420502273843702223106249888395761519052126077876970193856866589016243791265111840702273252390569911700000969325027082713724010070555278767472097992548815483251294704263156628881863634825464240246256270452605474982865170717069815795372307671249744053228285764196150779465306171090514962569009261930122996628430773004125896219218030646874416436091340369098039936078902753527885849462703438144287150788508834676194792972860471085648777829832832950075185774326552971295673593270944886981216659200094534423268789876551795047079405729762599485938722796791126771043960744174984631901999070053644022606474329808256277158857665145835018107409495934667076781396171700787438433003658076403052132330026196841377338130601773177746409428267773736107587647415078192667277681596900244380572654343166932322847205403333024733062304072553587214795450314933790818438784306497306508282313650996422478763667022115985296939823317238534047837825438595000634889080465987085273206306957319652641304063030718255138418983647697866378018750863162157948308519044240807441388371913517580940719431193807817701183539959329716190353134082844901832331016967797206903874010442579880362120326810502939449765406300306873904825890606575486052721336941411036517825817700519497794380647376210648817507775414748810800249869110214950194652011667571269316675680888205424274373353123668019732507344110724248512253579847189750792356220809390973866305247836722191328107977614935518861250587814665353166008782672240103536480052226805192555567648192298437491159081735225389068063838562397600927967022077088839297899935861987037376314288626419058672043546471499059492793020980760760706903759634604667032787160973129271720108960983077125638798115769761529029872404520525570631224697530161677701743480399149256031997376340279960662902465386255435738657330682870310556600593103838471805739745430684812037046370369572635808243620623774781413332836339116735438293152599048107773440135829279449079878038083493422174287678119903602820931460957173860112612798738869647586726360618372911323034754244701144316094824614185550565031528931746530036182987427073676531842485210943858808746662068392388633767009309852720417077482897103708908556845185936501908939175485324296007497560487210726436808047200641107412650393160920289092780085174598355102761590925593048250626202501937303991411958764073343115072574453540450663105908950124668759018172037215045019436027350228772150556118515484887455342215031392144605047936609213367796093318651601328045128144770602328210940107551234397485985769286508146217084484742702854047294330288952579065328337068239204609736176332337994370098776790465061739409396250727465256567012348225855896365473357009556099236390107237345344495659310931317431853984771988857595695152240837200662973244255203883244875790299437285604461362267891922355129497777935552083691460074792367433267068649039902806401711340963325536975993347180007258675839563882902219461441712347325930628464673181378091770719212462138228991876492020722057456653228878951210608999443547052494316036627063493505362270862791430026132504107055880512302347287352475179173790782649398535048697094917359320199636698035118149343491692954141421033278440641019781984062788590116663937467347997601953929490219107094905411639897146101351233371119032908586571146748279118097807438850178684538764297150296352900116126403858966933685772483428515567080842683529893171370311599387763614814955735254203766240337675624680924556688140558062952131194671637552230233350857206611152661426520317734399865737043605855836729817491999490388183681443129363616905845742894359039799148713043710020100302693475632080007785128748653509220761491630580190218980183640844444192722737409280943353093373874990865982231500604626420549544387396408977467262802225165927006484457141287185655133697699139158792722304150981366465928608846975931523052702939314099172071081627055859505812927606961008427570174825259856072570663874543328591863621052529036755556554989288894566925340494846190415963723463501907664912321335735714119322232145984905083524045935459591889736381433705572043275601600129115052971265672653096873010593071535226881681830721755066887054891656910923482252721266444601979008084561641294778664178553261852397699552260566193004169032916813559308922734339564151052257744050907148395613214049290682252573991923862695832424744519294117246645404768553289926298132068072579159996896708843277677574115426826783014939135808099291561279923462645917932675571962211340632367833913562166873365875283230398369053559534434199999995234115111480143042590977131311080674012931220315883682999101420279417642494595684113982042836170687901455482585401692938263499691491494581254949251024599890958171438279344301318882419117653723404330549849668743537251554692798859558226253919723728534659297058418373394939008100129257619233056978846923569522836025229070456141253735776372055108939633489873743110377832467576999093717298133030304649494222945459946407939040503322379972752873936371200534514087686749004432559841265093770976758636020757352376820136296845330855656365553556830236420463707895929669975068306123225338758671166024650507963059757968449385296641430307545748709245716345330829697301656003992503938883832589773134737612619124035457683171383584594173133326865269002074628421075654165087780439882336824309284455475701118713480641889560713487051204158786629567359896563535968634464992134423950709090767239002809845439243082324002242734980009360310424659410914656534182336272368890501952300605987144478789410480758104519968542115105716709228386393499739353072285074477984783500883304775116327151261164516163439943486980322013307927563346146218917855581133738762391096700705977191057490423522490557141708802035451439225000600469979917569232991386809722342715623917498818137208584807498340489527484794704386241461354603897486770106154824515015181463100904579572835787107245112612542715600837572278475575745531379208198027378323273324796298101109517161791811907028059358888076965527723036052581937710254203865028879769730569434661875778023066363263694080749741503990690280730664860052214265489431716278703149227512530578076684953963481318512708030685313925857984333553364753512737689924627080227803895481307398982876621858754613461774941133632502730932168983291662637718760625807094847238435504637246069934074209878269816137849802298020705620313818476733581283823445637221936548770416645756978186364119425804543179188407216473300756437541112447473918378071198273612476128285055144885044501384112056936577859138506095530213312190288686360354935086705400345824519529870751469822763874529121232756083909748721798222020596863242611305365517496349753645971777908852086220121176079314399156185344845797795272197917226887995367395632976124412078332910314145999490782249596432375881225464337455306502931811428574721152289431665798600644516796067327740368077135798307831866937445876979510871259568366242089247336217613442590932078045137296470148299812662595168088828259896885283465327097682113895006426875917004683634906570622089579295990196907735387568203320086031812121393158170874169976706648736529131390716449865357027597569926146203093195165059084455763072658431507590697086020418270118405064024328779017934353884609684864499385786745181804689097098652476166746877112756295169759333682282384347474502066220575902582699523767566511550531661834881059862849085255675012527886828708815176060930929098516590139808238512226028937827860997080751381998669442403711577047109486993831434448165336768056515700048512922781957088595970337314116016346388394777966155368620003376946982962029114472171613924254968660156951857229687660354350654109257966045158282626497664987946592527466289903061940381605546667689571188891447428584200457740878596559545496624855044735682425906835496557693953329585280924322661695835861208974823179991687837794170755638514552379126511140495067270427647509904712231137567631888095025268130257395746465727161289407855497596887750996140441914122347642003462768059884556386934975900464189227400998656085152538309969195497681534357787235857984467232027007375959340203864939641127442515713726762736121397610325164316645590492661366130075288746483848105415629708196103125337496525537823683580819739740615679406457822255278458178295572845773442227203520344526238615248423963054102662108414069831127353998221500723526807921919394211302934943554552143074105574118197096064480047293705584094634879414180505070251264851187136439130669875025166222652834588274185032161464568537731095538785571575315960060652402875113446823830383931682741386061567316607211576235630991528444388288089879041179336812827027564119938846915965421035506552899412353587170667731530620569129547955039296063019831469591262439142982601550346069810352636001348763929662466019359740124680143548842186817597100244807277198785776595400549028158137390250134262736268194894112228664427733927686963527756698472659861462927745090308721447223150986275455406312151173093910571757552579927917160869605130229417373755405228877076625443279778842264430264220178788093214178709043258859529885597827362375829194889038388693296666430659976538110434521855810437943946687916125047165171822582261396561015534948534847052093875917697662207549113832113633240434906328426600797666063996975195267518738053432143777407745942857171482149929131112883961364946795153979925858327337222984253374923818029036529354146566811060084843523841654118079626540350616960993762957823357635374802603937461913403905037823202865905673559734219655066229653208438900767700371844997432399338227941284137045166217804020008306248954815424747116900173551414197694749764309615157242726875056139175902708466015841063509568600873752830423172320310027064379902121615732949583551551831152660934036230955591090281046137542148362300700671155547468181108195954026597765876913719354816237955283259414251932776724129403090595988569319541253671086857652632012193118783367136850104830908045443401483744853080237089131177373020382652797140201707639217780294350627082345819755471028279513790971091828719649585407936943882784902977462411903182494344225937345574480707488648300006878268496446691887088241445672661252220627522653909632707486080726707593744034683479436053537020800777651987277165503292531993921291761212556144453273773132723662607862465935998839998465024745734777794529935216624082816750003801103127517946843768491174371650383628602913469712161744272997354583846608231118464938354335138683807152462292975137190143262056445326485612838996722618227965099064595378627078356561874209200073915151587706317382645758786404124959738920669184693918788185561070976658219111037723975235559897350797362228050154322084586464703072065572038052379043458477729602350873797953474859002392289336770801388213385398978159354980893485478350245659593881789307850498284014660577483480650214112068677590107758281560669887598834394324983020587920836078843454297694719495761593595180939935178299566630488913274960958457723571054462889460081561352218617801532838306762726596342381427144633377320339307015805601237934973912019823889773199435644411648475265654921981261051328532553102291870777223177256568599006487610052140185097987937333137602038932395019440009161471646493438836654033859699780078630623090198772700109537254804572971891639357786299465375213560744686005579003197679795904969863292248084511905355132159861082977969143099810670502981470648988382037291582164832892617512277410018651291580162086725082245164411281664322085937523053485406503302521791738279776167103839966083798485007543781211023786476953899055695178794955749272405113393662865052749563196518383578000043922071647073312441392564272418499224522822648415099431820655742067702909108582605089734454511200400750796971477874006355350485718149354560396440992562879591387944678369792771480462755403998885540560365784845755558857109888987881018540486075694795532902021411307290871397100608433360521697829526852904437601602455740694457218352652951530940292670783330918521819318630566673388709137772569275065119746939936902622662902936608599312068123347351650551435260522437316706221387382193831443363537515641948121392882071150487742097183453748456162869186336565819005101344146849131676122047015354385692767427822318742518512832138154997935553776893280432953286456754298408979578968293854333206711611895294338459880304731646130401282425767415372931933250343270346590309671151320217567810785018099433222905912310274495598174495319909470582997721339676985974728641916275216502537671972482186461074833024637770594765386205568005006124367796379436286075824258176636264304361151596141404679665799947724276517356630674278523185025531355660336596100063561869546708434348079620978959113891446161864195696298051946305741454024269198150798493897532337790496050755391315138016440647258522257288509542601266430773446986325253598709570192996747656140575414732732910306303420096025062919019176989199815524970172428801854379580937466214011198163689506332797056781641959443314682580807766724567167914687983402929682991754304642066704043695419253123156081672354083816706505472036357695788637697627132324146053626947543967164139490227728881825444204450635298040608512400288158179836966164790056826788552987836557956884457190978565142498786471806871220937371799288584692439614611060929937627336203331611204533874524823738413064692987643811806339810582290272334263358321852282403445201062431074778220757130324917239482980139163003624313943547591758188789898299688760338451418963273682208630756134425108919631153428679431095639075814289536419051436842588582759025125142265190796544565942291215360053785814357427431086302044876333477061113466885154751612876564649050878225502607451065419814060302934290841152094348711398456753797703019054910613378365808211954691116616319765285914579294383191429196610682336909292906587118008839082890416424291273154407534315043267655565311664670881610021985647190371299616000880054373575842354051674884480897649919786178768894849828472473309744531158912658524992787623425207603972421537446273874610961689367348734735158642082320009522846013629521371189259594058042503158033523391880987311476409545519495016271610662337032353731360143545540084640112959902536277902064213715871862625266912717561520082368212749657097980793023587572952200499489393847932441136727258503633098725474231566276389010253587710113038442124924362789167861423728362377538681906002373771002871713450489063129291118802057470010357753151958899500291264219302314617741720236794547329332624075773996904771115074978640264309971004426001435167626022161413509312053770663735076915471475409345973594564597577146891233316107874506307838549360338941227146202646039015608214674114529055830911623622559349107424629237428474600417087759152448111184232295106253709337726025041986301339923675234681835648319659991267887565766010212730088843811968372836826774494444008105814520149875184194481495882249260879794093970677362528060717266326292472875674703157401057237764949815613313516899912727112953739644272454890043341721245428455685016392560409032410529303807935409271765656348352561420315396480080829586068815553774967822785402452872304648537606517550983056193966800120554531525438097511051889921531646502028081960472551495291785261175489894995101734334932754708120097151408496189679359150857097299461584493128729640448242930733533148019165471633015635473500699614036757977600745339560174291219782000850503465396391215413149265646346228082434102941533517809317018915905138576124673714963215121318975341635418297018133762226697769774918330459157333862343780874113457102412651665951434876678694722580576520601117033899439943754282827208677198544439185000482960307286019411063287388241550630748345916690054101539105252590114428761848143479374592138387920907848012976537744043171773691812549785359946885733139990050052959798775387341242640764524143017371137263524428148244412708917758101584944667942553361916020386643990052808816405349810999487435749235499075433465649001836485956488382325618670897869371097353340472254823647738290654642083433666058156254009642635841396336153706717492015577443680659805835346262393281573636423554378593088668606663437505026628965960336246787149726635041282319066193210390199215821126598338562892073708394005455186924488158504872659630595282746117420060321649858896695136070919407493978224664816763553399574569947548222350459388095434071243665159845139045714331314458694381256443146042709261431228352530484671627711245446685861983800675754576595393092147473285784016686088298169331035550581442878727030297617942144424653742764255484664052723681709523403926224086375134103396174575236294138387602442281289467864640992623236592375579494151665686118208991432942214455538559103980389288993352556845373706719656529245142867615231789314410480671749254945105329416991359540945458591589418291577007495667639617758998653894818321831698805753241307495249135069187849247429508861627763755523301635249016613400307045587084333175432865089198950433682490483291800032469442227989783831634118242379081428046087734487139415040116907018720388220456625548760281137308773656925488238309223496526106386103048305860148443106303740620514633833392913082104513138553909798620704185957944442436120198552507238494069735085851991915826396960855521509299342249004574011357638231909437645793657026551070011148896381372772707632181306369718231985948707194272098072558783540806534427180117713319893331825964553464937077987889856047520850926035698750144371273567791593354325365288482774561778830316699498650830162245351559040524528369721613675484935717241781576104117425741245516106958485604429570077738672258453073383501388554602363325414612012414881443451932115590755980464518465392886960336978392967109610223851209274406578998598459453689811789432207200120473665269053791637084769941654993678946266044469884010840187067431021621549096527466501093284605090320730010797825033523229289425420784086514468746015986744775529936417080618251609453996767782174195426795442466669835154943998833021495934180228345754381132305524277172864826671189234270628789176509788973495230876487794837958953598625135839744474210768149258040952509202132953690385302681410567152146246619422439626499436755960220605254748637127728404119396695721206130086904814084813703889397073320554176062013966894186052365267272210557242846307194962676237224496833690491536067510090246254323179660753772957609824611473140692837432423504106324017733400761294824544327559863821483670199806979676313722817186111042429755311862037476023889763463080657553336545230842404065264874683448288366079745511878733048774472079675201613665272829180921003019342932056110250369800664640292405930533236060602464986916956233046517729128558047923822596283095577596577202538023519704146328225964707985178198241375436239758364475161609384668506476345516341162151923056781305233489777726961456372203715748988213905160440547958725544779454846272746016745638977326690780713001660263135137677416797128935876354787585351894475119979838443479393216502928353161076715492886530595321899529237037031663436673924020465725476177819435730862712986541672238995978516612157673973324189090332266508278805178367664273969209593474461522016997734991741885011919404865264782443818617924066374665282902701572130767230746451675072220501043140976159253514724684024301329602754622480915855411587616440348427790575066668465587078404218324246583043921150393442914040588683774106824951527317847113130014209296530214614340001299345182600282634584906091014870163298505775031923078696297285392956930631360727420652389868412383370879389997929670659218167085263020153279792006513895688627438378305544003949531954356123162460367992181066894833174373657907803350167889853464806857707248041436896469201794915118072040929828827258769765949784817168166169139700995902646497726053385000333997262908569799514160166952287847794108856001680876891153553752786740738409336078747537006831249566923233970431946336032131720284053041799597579888305377421023092271672573283986179179645436862222661981018873057935954555059247770528567240159655685256302505027257286755916513362798482705506545239408533618831092985311239522143221845165403875247725054873095403413021819218102081069460753058248351423510937430443832121101215228235234546259184000654768955359038420143237888382928070523278320160461488885229823647506290405717723660572895057375482250519085026985701729073889433425449953646918652741632790106176675606782044782449938125108845859216593179682794571780253772983519139192291865863083998525659159435873635497633246576902578768713132072179501078099475808518074419155636110490932316505876697413382931114037634212857505442997122950981729705997128335060555722532214583045103019935171850674660733068063818313907824093426257621730950353669951459094129971873795752743440157709827142779635708568397281336453312420581017153472593585273843578328686946633008422608142899167199685135247529685772612061743070717140479575714063046996276163556233209184174608131092753402735249725215047392493813512736195660440234540492728471866752503774978666582551365080929909186754230543706085498500132741213416336135572359460179088615347530170295201544863308249457299188724909544532544364079605787526733381159423129854517982607417661938706749928156189738274473764121177552338057307835342691875052759527265268328009957408478362543093796510432935239582530970734209364559319664437562482017162561008442690607347940137059942909611068540133048362320472805483418820374010340730917734775822564633515840839357643458416602458899257375242004842511498564099023693010486139634950918179602702927359295445400282278765839974314258002155347095866199267132406260800881353878427299612944538852293822282039113676277446320207839336833223328329742585977316609967856776374306856312170343030145214506734833668178358187224448900545143170956763456106988449341849136878890234028363569042614330155675859455809425472576814611046822545415200381713068348026251118648379882254552616642436523888171195572552657203860606390814949708951637797880793901534002745542208350759517192851812759325409984981534968656874286091507855670219546845637138487152874991368810008639564758260736139924206509897132982696100958413050775640339746168391100859240965127351189432186734316567225131878658044451478943839317837988045617453813344758268511409422126825338871986418642604118551130292720911918346671056155573102813935944121170396195778255247167795007027565272318907402474376441253544350573625756733809440288289064136875781912954922687951377892865821289713439987762482433122722455982051369935032574787544802334615708442022853560464735010583366628496421479659873563220746113334975651120645291931457393499471111539363225076305056271951423757130840608699657088817473333594876446709456173175307882709124778057340884273387510971847201043073738322090763336596277097466607563826204846166085302773555145137136681074226019827112379367022016620355794296390398371568544260121767890979997756479042470137386743852509542925171264162574484397121876495867324217055745349193736593875259396141876535141284276579628646044901951482774781446994942416450524737191618153026886074922004459942859998761003463052514138132881618258970465237312421457384753197497192640005249971609165223449043786948697553678731153539358295524509971153890496266456974694172757054322165376908808034005328391377623683393554837433204470070201365563473328989292668716218310715181203305115995575145368192183960416585071146618973150681469303481046981904612038658510117086353108852021753711993453763678303409946194598732532081467824129191148630890958361178733552382876358551445065616577847098760832387651409679749616525358072672013506088574545665299779728623587923996046148083407205267165755778484506229941051484174055995458291360819779593068122193441642536601833607296011870518357505740633385462780670500806155564413355577419164587158941767022339974442620443364871620253607227418033684553213021138991729297317029099302257527562527389259890165362537433105859704044253155725327160641832860192878388176506934625042421823898264689264797981455484688438437265054582523576943857241769611227583269790344495324291039338537789761492203934944268708827126248352606795844385040094351695118813834780624812391910400218275001544705325726629746847247582567722192468413341247398927303393347218668861503672878450064725571836994712558910692762941891495042715541011617199466805216651346232189270888181377565982810411113582210477089802391149349538207845711421509828353037526068479470487579929732065647296949406301468626179181733109718866974324426909859396662500248943392510811757100833517736317356422260995710050730614757816766234621549406729895987485149546398455669834488354850420606720380205854043420247318408521716877452150262297126720544508368282627308456066956757901769089919220305483802136247747712203153986484297621352293316826115598359905054973657894103756534721138916377355762173782575111933561816629161673070694241043308806091112845745499816395167311889156368168570706082518945833161362754391489634749947972562119934776450087529575389614376182583892060878268246337188555207212356090566282646620215534548898418795099273099328750581754802676977932230654683791845914494941092400248796648574469015926561615491544424307879325181206404608812394005668387486070006447211505127999409266833222432510831904875317914766951799326665164984651201064372345908999614657372131128524372069306676136307379626894005602006385330662513528376311021504471668969455815728107477214003191665508231910984914261099411800637472925551630218429300687707572503384327214643473319106940430632350139405617927841838308796389897364652748695832387019098479323554318139365394992670609354298641670221885351420991958408772611959274124394384352400950927410530029417550011871469076168238643098973473060438682800968812271699536253956943006613956860763796170464855042589021192354422348202623511232478369503827817446698935165840556390553397394610071043355335724420790686033195069235620815350680231046126523945269778655865879824268912171418216113808963342536410794919666003630420234116695760151008938571527283651556584046153536806927334947133308389138115763962183027647830649536122268110631459626548506209684753607230770886165053127977748859135145929346242881248045492639488533932943285346697501493383903608547163656142391426931047850612070578745824104911649406357935183888041882590241417779487603068716175121274943202886035497520099810205889789361981379557294541580725022926569748894268976458714294677720154071708190723472681766904898067915962373256576791909846900900117184224212474679907399806470344677382874284509831547389789213859651365201656348663179767894984534490960165126081614239283169003178539897746522967491525311712266313971468921096856184568597545568013736154514386943803451674925149686879926141944546543010477632313833224370053591101619357492025296235060613922271056269635738069025862710934625516106870738768177456531481851809310530296610368065424157564948222774866118825303535153195609904737141462242435122614890975957808489141067334633244865752293592934214397319483846622398746637304456913380556053174560576232034418248526882917369245983949741441065719812315525922437068215775807032075262867907635199338538672065936438062264904699566988997663728467732169017485623483082339941541894289273559589174312180627566150344787223105751144144030771253040436829150233455163646726890446039974105873401335297720770843647648862161648727160468084876048850423609336595661826099594704919255295021147733394726387823598492860897418272639703541142550742361900982820978771774376780251863664316337377431668593416163919162419544431622378989132834240938435927685477938503597234260521071876371160840103661351547173221469012185437196374363081724449753342176223806691170539780064320230359855834503805324873823913434546117657269450447327331214791524589738567603068800485254478630353154674950086285664462299635452323282136202169109015446034918837027358246593618497106163807572028878117054318122375510995328045065181340105295533986559716543222447721567938350537158205765545623885756715555196218269308327097094845456903789712134422110727931402393536453445444447428150529511545261913082636249765185992483358719019708429265044889691214603376507620273763989872215279586275960448302899561384535761101469721982615229012008418571006445896027738050938904284973210395814645874754220276155100264441557891236570948243250312062008386304516354239089023062053594209223282973318061446967470452670310129240088836652333024412723563614667518783162245413120891774294361061478201181118402810682734197574361901257649370237568811577413323544850180544284574858392671888943186382510529185698051087510673461175952791491246381603176395967049871791354457927354260309637597603827410145963439037174504691902551698299389530376272111162200046935180894173294407947337068439724115172144129714305138349027174072829785751207918921978567995325945879772614540116540441089888369551713169336796044465336827488756033567899837733667555450519449973491693543662382575580079902635575428132935061495511698702342681181353218363570085224234238052467415825133695107265855445877175692409821605697758169988694114109005152583866416068316739213818629887177256642433568501577683117263765163565792749150546730932974028743205685486671500187297791885914309530369228649856701882967316065161756315928109289207534024489788285738120601580848823872476840940957878762044526155132160207269984032141673342463393668837258834437178811951090486997917512142101096751813980087157831160541387314019488474814282068613890624029939597633613882937349254777968326362909370254522204595760442918125194947014550010813172616717815343946501992802829262203674265635210645181348440943660869914526442027302586622213842002828249690342948462918442466721036690822334162089570700553425803140202218101706768815520233762661843237896300766557717504265540721392813613620954353504055609878434841628832542194800967831905103618998560978090334810417221282124553250711485676204749505858914305190401637776307354197749062123846297267802099533626312592920821877603524375626970279666796694539458159885729085496532771727395965188827901934150261791203971243244571280680066982893550998255417614926455182101629320197879250275434073118426909715266757119729341768414825432366383554562336112460668639295386194339892749249172290105039516728169107852267494022803065559942874185708564693126940642430348271057792270280726368776581655708900543915322534616119680077281548576118116607333167909345614305360472391578044195950389003465296182076605289789380400448629048528972530934812916841176856676873779850066160868253192714948728680006903904550570534077383751005434204488334777367442758548564154720564592527768883661074091386942223653764291589774512275022571761632387215862054160607566182965689486308823952743850673960489939911573295841333928210488416822313115712874460305717850283859387708992608855644016033859334223902321580356057186419754141198713025117681901812088076351184435031095601098039811737738644086595454208853717970297093813228733560328680582644485322727758351485964534059199245856966459471098927295402749848942901412288904030435620238420991746782839205794102403715199185366546966191035139624867631928843906019891942708224101455437191398838475726421245450816141948248643895038319815194438649782853119007632909624208072664666771438191990992789166550438129430432565127838275416694355264594781121597202950705683928014511199387593582966375601319696546428455899732521406951899565061751802211978908141301634165785408337226196690322185470339661048424571036134537381667706231651260446593041029346185211316873159935260499494286707431869348638609723906124077393045300302009480552209728230874155250661881647070467870516298245881377399470516973660619097080650705648021325455905848988779311702662007952110148173054409423632139053583144870080811243941636040282214660564218698349464620295625144785119187691860125298141787817112154022823927849985939149826863842058872267361169051437870740219448008085943422695697213558398898260825389789677202221911585371001155598986992930401710127433227340890832714414343294171325779019885944515695574339818627179222141956098862453845602768029291132333309114668826040382458007781844079757534705036384815563498039190031706249519328576585220683282127704736408438132522252902342747038596208304823494645615037432221888751180190221659848557212552362595120353769571271436720038051618705232896245154211954364563787037465678598875981498475394074293186163511338611456117445417392102324054841509913579604283991513251191214788195196662938993294314338751148761036978181663765496955264924180913263055668883961704750334294710098208716166365846616597804005178893693243807250600029284198391897109707302287867285088230844075872509093319104622683178182542037267141923439559671207231561312261898071447585974036851653483587866630504065052163283920570516815092028248653505596380594744042450506492940062887595261265024848140815776899709251624918109750889865503699097273264354133423666676378282741486146451831677113017038207467495659571503810273448287249096135331834483318129465682139361744401649800261362831489043730700914771547674055966933213535956595286559708594817427940573004763431127395753650383012863416234130569584499218730715580863371370051929841068490548123588288243024419676383867278094689371475626299272685239985521816879789821050981697554170618459668017073146128384151294734920197548281780833797577768049855207615933188472294107774404107270516788103730618496976547962596670582393140314678927993928624018440641783860596150571319818012727650682526664805680815956299356975885056422881524475308477762724054499382113057785208609198743203610740849852032703031284494756110344911204330622347466495229980022591941936815833639253381069482730832691276218686838194995629202476482510063882396465393574416448386484606774462556702030056847598187071927941714996710460742653231067576376631278028012091014175840123018934900360461356934572247843102541336454208121178112024388332568840744377022352191929493376769295351019503522852985306479549800052374232016329543696852638071825280262387345266711578616878207907012543306211297278913153482297556686413471283468662173967056979881698434409998697008297309432428959673426924614351685325408486731772180540429811251779057380356834281495837693524931786898626821608331744342915851800656271690104943092653505873082290978621725674558961070769285938790935353186313409211831547324947512017839226548548648888010440959740311010794680500626180959086107723505045776644274732260875735071599086633848043232492613191075214011374562861239346149914798617973281282130956989352500074004195112394200549389467399047058558431038466916871078169909061632499625878103250765091370451296113459490513546477196167907045437542881290036890273007006780090682878453725987219292313443786287211399304618203349639593397830006596251834206786754010112931707018197981302076614400372878254533214140342344573155531404080655138395759098423806976878366469710078753458913827189863407395062373749726994715171110709023543350338286340733158458605519322393619732380744236626932396427739147735419483060929500242675915724038234077459229470258977167177590099691638076888773521685441500381002336680895520539375604161595874573301589483130553456771803855234084903956653878112218623539113200758127570391054808173940000643254570641591364853732298774558033813448637099714879102332731798266978228953007490953169250224168848857383025480681516897205070230840727443034726400147945106417637418095579463264827225369538767732884643725523193495526326257356559490539526908962902569196117100327797393604634602030904240166557250666617922829708071792676874633211905156889976566196420589713607074476194462807123611207760505111123672754058564899346262332256410112224299787268303939629033327205910536230811293630015036367086875984255544518480110822351100191097805128623251662161761458180439505918812368016230767223870151045698002336855257052811814623457005729045119230621904297598887248866023138350249548016181667269490676466088116416847720786690136120320799736097582782129005881807538659099601343442095516502651861783307166927430585676201399725912998149289540419057649673988135156008781022919529307069880475253193993533708205110613746733931858265061874213788500398713800941855753205313244425838099953959699967772662368225809266974276147712353557787204107098143030155067511987417338090450153330075283557745544870770362900876422665308405335401460566264357251441175740765432829851745304484935759545605646091634350251850056142162492442690929632234303427888915585989606813120597775135782910121599484257232362791576633041458564857596248046761699733331315533660537942002671498043864327950061436201504789519628133430289550622776882709787382564859637275956335376285884797584439179410409415300012094089423472688689803595845716024490023167720714383092873984075768112539817520051801742040777334033092638407435915207428403619338921289521816616488306111885577015209607385484545992213912773465425890431999766210991749770912531958875563161533474133796577412662960051965869048607228334229941038937160780490818979985674862539737111831819454236940935837942227655604537604794392103539780281241927718527110072080701352421960013463975804617102711298792852234896657359282863560918984864577780612637767062415089874896709134945741572852366843577625845681773878511546211815500324685170497162322140640900834225937587796387295007720456602044762471698698593604591825461676426433664620178759422138361702434983278790610079075943515453086667896853123797639084489334040670066233492416299876843715084237401206408537909649530023672276598369420342997541327145880340893709277541239692921671928985845685466568832631013107589771605703603634246606873256654029398669992427731136615716467496237596968045736926220969788275710331587901853308892674737287121834361065390820107620904949180839200601662167039742600730448290017107616172096968478980964576343974119558067323162581510738875481402057591854489995520279236515740511322697876556369944586877734059664338853083656694076915266761859344948510341770227160007143331548131667053539043182657944610211058279964131387350915332020505112873182155345357657628076953620372525614516142630930654081759323154837372333999244618209294673278681726302214448449942251096397082227245754249999250762873149029736232208804022963441926407055449660672630298247103661737273034806170944998404981122729031197315761474211430248732684036440154466020084232691326386244125062218328961527718723534157865625962041119882406108111342177126844626971662896112730018527209697598887580122589458165578802755195942948993313922890706297048167449173012937413713654773702281326551546761561053123508695071518213259292804454870604817689595743485960629273192057049165142377442071893072921245742753903933455414746705750814521969092223778853033434395240194287721994343068078387982498963337164148097195649629348251405276753805641146633295635400426782350843634318445549050644346585211239392181729435312197860066954350175765394086060817327288365952201635155884188867081195793697910627002490822499534023057917217706344306535318280541926573507083318104453936849060124978398504174598679320534830372779239836751920732193746192969229440417163231970994069717317085523883929227121079667910680802898406250392484438551602735993667478114138857326251470170543476074916426774515271535682372363371718012167645193207621373122935527315841149911963915737853370833433490725089460771156620390316135423094004668053533678047293740980435813311304636352309461573470437431975802984502829371882562529756687075674629026977528867681898924192761974798990818310002050042423641806646947036993524123047125368256175531451965085753766693077033716777293626755563819609097387261956849110403885676276897272358633700496027996194691327956803935860323379299726457841208834793214908402205652161151875661623720388500090040660996917219224225140088189717556042527098842820987711651700923364114116038654699010781166412662732243984010181669373205336109447893347012132290417457410499033347987752022416161753117983303602932926377569688672044216794141906459567624402354590154863385312166208289890746542666868740195298680169243982163245347470827154224231817893794353743312580714532678456400974096635949624477412638177403772987266131428711134850100270337335993224813919940267965189440299317304882017616689341983215686610309246874549306358885652845210087128419845185691988188012514881368193920446660235968848581328092728003040418217310164799581782860803736844534391119477306888412864152602462912094200984202689942950446676749530923139095205679644745763142278505986553676291827797258832750888743636491409027579507544161275167220396854399786191799050686496564668181155912192494649049189287785152511782533434795191851434574886771145123712806834301172242012804569770963505260663063537835790447888639298908961298291275289804163357673391174862601462145072109855367746408618625277752588177125817966093231680444401938897353510966822102002387009347879013662262158292837723316485443779549407652388170997069629322575691781050732332856662899560117578631035335748238607922130167278336470111628849841463384439703074161475600052964598649329978523386152880129292732548646876366090331151139745385825913874480023505167123830197837406862328797165749944988740106377034017507436416673880700821133279924209732599618570846312362060468034204188873455275294276308744400337407527123385206894296215105327998533167879793386427679848791505977990515166234528583266651583764567082713012051450580611330419088987983318394381829641819268677497000558709932795911490149085673716269016700117467402527627059265602364778856057373418047415714820415531482140277256402211737355005705845017037419521184722245866557859754764197363767389119527297838863008083061396582050622811658050966355092490317006618380495125515577663038250475590922469564536948770638666628923454319664973109877197702051195350537050508834637483765470427754747443548856595206206168777640969252498914090793721623035621832729695498658721432664294663869062545410274967505764982457572309815404959790964028726377926412086779864314990963289763561208819094480413511836587700781625021612215736304717421210639106663171947627933145361551854080567932635676720399225228390084112008045729769202646036529650407679591903090796009589406543954052793940845230267439967574119249058339581338390408772714353235925749841783661764589603606765658146896235280613759080875075428673557711276251858715711543203917372608272046822057863625254783386109597642400642833495378328476795655190337254276310550300501058896385422408242346798334815296852040645207097034365714729838789216494643213016892908873514026344494651083933863450290186130089381563695296941705373774286415645646274417211357397594049199401047681130985669976978652918863544307064594237354434346568862808442875165392895320227804679418705271691627540399858044880552402095414728295666678593950199445114050958855402823696391417614457257063199430492259740643232678204911057197352325393506975359958266951360135861353736358123116935488759515453756797969805297636604007480323878703260677683081399234142206015387182077168451262775721747452877767800584770600837295710398904603324459158308160159827489553839430909906744374512816836172581375823218028467377297702640044796542832325114284809760660516266923574816243603719542385043297051211228649646788741481190883042783055809682184516049292631800349295001058937540042866577556466452395290149542900919421539491065210398763420557933049989161452926933825667118830197273134567379970579942572081449669338439601346837330173687243415393043372583013345172626851065978982463998715222305402455844465444476362508646840962706434043257248506383079633414866402653672273163727696355680659474840948559582336482340143334902881885394867631879416608919967727991399808965130062246087847885394776116732237137367807979320748791618591987179333835946610362276010500376252163431243316077881150856570125837979350800021594361172073748454781394850148457978418977668313508189867257705340129781235683815592952839382490028083362980021255397208389466631443268526580459540963890006462436478938472141389679743224482040596195821203508630453318570282566518131776597441493868258808493701698243822103879476529519113494005312524400504830458931196544601632698858776478829539555639068964858078440638377211140865186246140346312225561482198317025773939974739346975592354747057588896668447207029859427773890510196935750563797941469833926865758327917902809917649965600679216505263600492221082711392636155833037825102726852709313459971992807661309282089518220746768182889813951889957598242606114266545650088662333861460638429980497750864962725893282372490140703806283567815122723007456247744655622791761267633806304606045822989447401743368203907054010334740929731359022412937393383568165955002661778922950445564231325194367404469788215954229093340381191408001467427394448638098714442516892961944746702718956082123623665944472857166269716811758839150208040841601767231611290286369144376662662741571638234431892347694692288593350361053349459538403739779061364788629711960314876813752468843231490354256630859494541670348304582583513219121811236548698304162649983263013541695408993922634711374050888156572880755774848999012450866417744953418794284398779845687274851379792205845826411880720604336663202829967392389016273080557443001006868611648043850770394812800416429466933363895184899074594133880841043466173409264526055416304389928311826056176885088226012302052656226558355061950101966814773593983457908341855183187891683303143704344732820113731148117167560041624061347133076819092687536918584076042454032096917246031760755028072644509191816478172428354118190881053232480418552852467757730537191913030084447962006538126413259892732558022984277217397956688199855035099078336085599810098841238192852485356544523700200015515535005677435128715104819585504926519013249882542745008903518533493689555733178759945910031959520384273511125148544070024004420059232142164860579432227462992168722095560046296968934733857482424507770453399567430761023673401903659876996585933448601693924047328732732987043021708851114550888210636552743593309474260367380403081686504876749143693845801673061103930186085956100291444841636277723151172871341766748379445215517905729407154629877805119211240886860943371639932811920191190525300229164425513982490576386202267540406515389885405037605131620924174479687875236360597831766440707838396416410374759968162221266672172195955087883393214672457079143207769697446236532684103057268451240382910442453315715151324603797821579586383453063832801301661048762693128403356081176442622107514401611975289372576391482104200031688162059553852857150266933458410405444071036566171717473881692754136463310692343614392274386215499899860515174756557838052995151761451213248577592849143541257999676701929555727564198799798657080990058641390939772591372669681212363229609575196830378718745178186764424843024957355962152232332182431329896194489901186854612689953760030345686867189233683068844435121989598161388541504781198871649944362662244543297196897886144542796764555531572402126884476053355063926046735009693372418106299763413256349666216133433110520017152147816860551215103609072250053243234119948052336890039299877497591612163668502432252084822057721193496193300435390575145929172731173106906519138049261482431429540934416062551033141304178178907333278554530745175534844851112476811871113559119196847839601366046956335756506416190061038312594740733128768658090573367957521186985588736796834249946114198204090182698807419763603392914399803200449200881392715223496865777449497118136546174086619954241270549670835368445307973092778296277852645495896529788235806250505268411330552662100767696634531105252342030999293594527250490501506944939978798736534930066620894486676967802037835417652790785152855281911362530240299310828863346384925789625087847684408627313329135643686996946994508131093140668370654447044216541910226306861144013414886003704252961174913396171947112461201849758929894302592086328790771805045387027067441588679787822988246199853395136356796286768541038859227542767154733308530295844996104353040973308641409252975219220623564459698871701769177626118313058941429772989389802295454815957207006601400497444089935527195009700043871792750199129537013199777976812874972530709846691079452432618687915194511491187406528436750379461631642279473696402313552720939151431321164183771696524781639291144778531786205698624381003770551282438749696663556122609692486858871020390561265357157783022037120042257395990234557517869528538657552712610623800723848864256676466161484405568823968066220413629676134922202289414272812761950131127667195760307365275688818120591099234009078681214189134037009042533232672158625415247628118166777508869919576017317945880331902460446747503141656395419405245794368489017664503078152053616578995698852380288822986817655650328717348740831594159558333714455294370844353188541825665483104135057068911203963300511160510045230811352208347538135275859237302413984176303839958648834739871385962246533544331849879269432895297509179665457153831321444769258671997557494982040933927511504920423918430924686697460988147559791968472868792850636983860001640413610143210723026044660662166788483040069531494267332252016518321103438701984905030922854661675285834401099835341760932437337672633498359732059161571389916380115125589681689470107883648718348295565575388131431403915886587426308511293096257112668659820377513040007008747748156428652124208979173737417284932286406225694798059114420518723652262492331933188849569413769929392676338198714074307338915583186305847525493477391885831486474203852881314213111246853513767104389771785744972695116759205017858845606968095751658073510650161696419266184592057433037539889623576521449161253322546115551252362771063930958041937795668258005226801610356767388437402798255742202474323198985393137840620497020154130893495734748109484486011360605493265689832569088123131865321236052033672013091147078035071644050212708913074467458287847367526412279728483093911623879056825859685761805334624024433922856748630013711946968426024671536558891572344006389741164645504013143569590096239967151095392213727540272311525625232957140831752988355788731436522183773475422565781948315451639318603791845625360031201267814619104228658078211397913796444042875671321881462553760641588324734875642430104502845969125824698893273568966640772406656252477738492596079583373218640496807020538497141738904474747538534129396650389462941994598198947366763085373876823257734941947273041059395898981389996734649165781968095509611095995154866263508320581847236914689993753334599952455759502342125056913052253908162474483097320959613877937623463369545944831540786934372357146443691118004512283634265502431246639220186642829345191928802881605532303586692441643795555614169117638353650738162296744054707646445004933906045425064934775039987238318644294387071792333816891331029334051881833810643450666037003042131184541962465451632965602859134011502911373278517162780363717813590234983363813701390492335807052584656991569468121690261961745372713007238930885583768193551451442069049056301493041371869921992655574766663442939946724750224433414397589017998171790537967162674192740365003991533002647880143034602366582335590162354675208015458006088323574799204361007572606341965781539166875263487221235654600864842764934987033965756384807140065957097741079459632350060731419089193730347108603511428264277564158794501023895208617503249787531964014868898483318887351279509188218151331716390492483884813462704649053813580004224756726441996165141118253398824515876918518588879477188583925728537108964242486898706006006935703716369162432514172216798617226582727631740519961014254299523972446473398281391205623753258693793072552091692013688645211235543642371829319611617943983966390939678706516524199292794394513096665768619435061734858603012287836658134558765418756926166508798761507322301619965892881435156516278813445317116587854190755984295542141929658375774611669319381745403171056036966484465684615337146685015374880981750378762295979646060836201425787759495183626066306384050325182392995549161227179824707010444635882573795796606181639894828315067408556186367961441264892140690494883938126986565318613727184453503633180291401986527575771865449269101848909819348122250358657996311955486581865751625831861485970714884546472722381730236967407571370642082632582569365487469722145506863966647798973669339121230458863568574057086458525152750716299852188598097464676245911696579172875440180371213335310671795775448032032557005377425879916056417482404941651060510698525324054436570856420841417683161903524068527891327879233669178175872498410467425803962122904102715833012602459270602297840688775369180335893687418958481812362685104645409221812586837642032889251537164297678930865450369772423932369329699430419625449476570052810872580642344371539034775541212217684115707842853026009085265890350046674384839332503646633618878195857228129843700309178578283102167716226530298332375463369681290874526902381067066939998058803873051509959192698386546509243475419885270768658931317784373122418588393027270190026468636555263640853297314832522470713320850158297405103614119007362777179109959091313416687658989669223439186132028741688309243267040529969923038027785177092694601697558806876602896809821964419820040613697330219719351895426801659096648013473493552513741771023421298289135953360476797830373716405158296451657275797712184027769713533714835309946586324308919160361176600457728450984407327667933047657548103375412713202975938911236512844775949773643709465593153971283168056536160536565187663445619329276100724139190527868157643858239803139160734971763687408343818654104932473908628741708153199159817989130429215682724214232501998026433163956330852971251528984795525563965236389333940516024907299733036001748512032767953714209475969119892887775617880593906336678109174376214573879894304198062889458298162193878361727609895091042630426316020313086729996184244854737889031067896627267049441536688681558191220758308931775786055214500920303844122605355974141831846116507150559807072987918242162081589893343864192565007961926226777829359235757452639293993160335460205992390077351780900123135100934750641722204909951732624650738266796055120831245316601825093750425903115426676344635768604505562733122017347198790388709992680092329237846998684247431880870534471917729764626722711283299395549162319624781551519732794973689470466596419384755702451625476543508019521074126686032090000279801519966821547862897019585312703050708492322739831106708465549964540797312453560266168077130470602683903337816818079339315069607176939043352154718530326128528325401310323922057860422431015740266218116761502074030795797941286570250891518687439014245110322108668759669948808255568366781134603372009416285181970331529187996955583679616142888012069110325225683973618838154004345842995369625980719908127444334651626503428557045590817490058742213616301168798287859777503432146637615511499957373749333833098668996210751336219291809424073322526440001261476675742691660183028632099681730422706618551734131987193393930768815936091821114507079841583817065454589385792021547278076580750355777486605995488785600240319459634565612594890524855906065215880759259413332572822647588846382410489563609560761355981396051102951954346730649988258014188396960322171572459355992803125741733340836137338459137389646432668180218280656101819373400899236978375464673600909490042731620932911907635880180858733878539367224941443182354482358473268359622394077823242779410251964079705667184444055642647389231315123068947358186609046710677322032715143793362907241452040753680725310504793866401848526967083848519994147258439629934276503993748568997235742350689746050725944162974125871239847418550923434678901189444302493785817909335109405740475434573057957307871642733596706708671550839751577045745938609538519652080379531443488148933087946715446236370867227065971646030475766021659672155090706395033142130533535949533789272447729080280793609745482410652280328325089766956650447825279883571649738506895859840954968415975959434663048255797520785159777295585302221117607581112150761844751600474301904884312612371126694372757152390134654899285505989688473592458612540275727419300820233816474939446635713823976770834300809609302653870350883742620480783514978208280866911225571190359223683269902718214229172655326546737813679606717028466746578059332841720211851036279495956563787412066479977095092589116342394020018712355819701550387786706492759684732258397614127750484000852054715357658353153547378895262926337136285703725454969099005573838469645347251810277546986350278218526569196300568316697180647044852161878555827136148686748500842236455796532221300298219763119538069687517400894405065905058752292954948045302878574151717056559585285573794965245455673631992072353386511751620296396366045823648027985978858977798232502037458940864950398813862446762136248127038045334944917999599228528874032169661004643132660632657272400981929643821480497152711695961957527198036330227883773263008860640318198096769813449874669418451726852191108235236980865504708891805985784538110265134593346598566467847087003913741995131450785690818497281462767096514454689120984526675730796047512946049528765878796882084365841549216442506713557217146067163471177953729497708730281706418991378095984255401034972639115406274848102736781682204928054965246903776456816210442397597672211153447994519453647180624752262741937746305388984160737987199341406197521033602043313861262105075434290882761622865562229512422269080081586239230092329875313697377787107568630235100507687796417410507619050898746518857529291788342772051591181057506923226056169212488254375212215266083334447914393153379107988508766565326452161076547080857405021235555039954045046513383050086679715485872370234151790466115483783770917255907920054354044201407005139327255607389715833551056713554326762684347592081687084020719680267848970685329741771446991560001217269804040537257841003515201772000469140889888436795764290611032885713293151512288191058494301840283622122450230207384991190073799335296770268918720088549067653394754076424460769708379667420308268952963368406067436561575043636316305205973601567305416735392810059459971454736163077247610028463438197131637198646272675385446690973100393277905281188918713304870228329304607853203520649002132165536181865923289746722386311387258097174866656054154643470150187161484713433377855060705074583797016832225782753882111209197978831676879771094252288321146956302730354573820683706013069794194080253678227863961641942098931589516458765107215952089536264011184653622591321093753431010088676911655132275382528047694056514590789736146039447492782287115871751189189895311804610481007539254166983250284297354736461706205618183901000228400393499340299098726746983272762188692266798015631567470173500115690349410083604693161592749776549129836237407139519304088055399495116342178141593977253045435238981334706627218604769683550990020150708854547228089606618250140852175854426248771177478056048551652220689262777604005026645440046495858142220395165918453756284367819499173984894510524760935040481800525802104084701299717780989542903439106733170212395305087115082548268677700582820455586816471272062620542101783790153556219274531455811379376396774626032460915039204942343371996529691227058564972344164503157574412374649878739002338874019556172625178633409873776975172213677399741760162226382945667505299107618391433927344930838728360503700931792277240875746989418972718649530731157492669891368577621930733664853101739883790123767882177746558171007740848947562913651380711808819869313934325536889625557332808012595412614484898769480379171671284933419490174525957407162434209471257188543300770878224752336311916710455457249355271580495445960482199665072950558654483240877689040106640006990091663039616789763709104070539993254174877119309927463868985377008577061176410464783128117951329089523254646188950270115249214613497248133828142368557920276710211166634036547450525495638292532346469492098174735227496000955473350222073367171692332306481995547282243895529285194357184538434681120318215437099651628661119043322587719237546763897913672916837817128784427450776378056463346755851837462641960663614288788707774377312432376315977149080802595608744399220430187853091269751570253585155553689649606558509842089002316121048629112811210699376451039836996966230662212244347580125292354662368530503030926558266072991197001302527455356154924446035568048697162109251312645208669318279948013004284021518895659798304183197310259381690849188942165701255159635361014227945608245544647376568050937231454959820061983334372678414220641582523723721274623729290631779498929769998578019225881017512251745006776297944002358951233053298580664148147322631387653200903065961339173130067680896199257471120067243772547861587680636214790684119026102473581972647393328690789823650410927673154269843723178840652556362932992785586090301635982370215564863831271904363345766354246484452696808891673090077681430860068345071373584909888420227830767130522910972193417621637998203784722621617536180236474429552546425417305699094219836636293040474263039120115277573113796956576490954978726851504282489797551489373097546206503789617936078082324282868647701480056916896843526866951963234047725826876831163264705204520117405817077214834231419062304093540615460665105451353057071188250357413558418105147277317929102763730042339907787504017956230380071971760217008192956807413490322307675101046160984871366414270989697004849564542724005330468770071753260104034905924571771689937649326706988474224014476480569193404449507638087767783695638549437243451838360031666208081666161571409984551594479959861832278257713834838152153617935281892551037086242888581661858515035782767408951188680054094374824345384178994475607169646954712663128559843036699304478582804539265214982383480455443057231869173703503974503364930513821743737609192919937093513498524097664781085463909185409149156042838796578847082206816515536720662986220789162675747457468652989653109676351236048626741773912479354229372548585231256191690224530038947385849334260066040922376569037785143935510783489865589943728287829072474596421694520344191661247373808763446389395704991535962327141824170314479689546747003078416331344263762643582420968593812017413982551216430382878990398675788418518438830833490010469514122536775449442274991781622663147516170344825389822875413873667652953919692370822741544699083494344836911725566429549158718227731396858117688108066776838904287151385876677681545215825507664734323221051590891179298614632272836613055601434422973715152108412165846177751745850888448556013433540899732385617623779116872882318563254229027251850881737359114727569816499787328665722764804379059622791190635945172975036335576612347085578817189997164214662497734743786553208575995096459708307781597046787309622248483972182468668284940065817463892432532557870437923937446956278980823291535797339795135442480144708274348572607311239052038299087464884743932736646694988435087090931848363287410303325851390723557896505979695896986530089545715646468308617156839066050448170050960250765833061746769745257142692089934243500640196571832907896218361959290869232846769814396155636666733342592806765719853983073342804583121781068657698505190463836493529408064259372182015641877087889953552537401710045131840546061598034717848021282525379281798870707659921872000454929962986626445469218194384903993763917763611191963039317921938063738339851919582464123297718138705133723597571911055780322468922556837656489499659223578446761707921695701290545705800993611784411790121898904184684053355722000115109329536263477666944184963975080023295775901484441349084539062533746738398742936064085297846726157248049951770477521396675209248930114093271775510684457783571254220917556624287156370782167439235900325804646203512243022930648609653800451648237357684959054041741998243772570643707482780863070726820267771098517117035629478104841132212895405282589732919771265619802865742160421443512353044338388328654817844043011285523869532921808772841970067155176389835191664786337373819465123309024419618798823701592305342862890032156109212096476682259159679406637004134885198345731057361356235850835184234840129531241251077887580259187118146129743093745247017968572468741823330643168079183733822280165788119300124604082802234770987510021477078648659431083523176462305469482590392575593720381390298499022138909438374050390777767997367200325763617359619297770423222175953059187408634458502690034504384129364700615071912843649865340449342530006204465366795666107833899980841296499387824200251581133251101488514934940959248018826702705665017260452621487597029756980724484626746181933123767685887135351116039731410058143516014315681620415700377182335695047460983148002396187800720600856563729056769405340360614585837577475685671463857432141204937905706499137633876430821472496942006496924514255346270357962780802072596594585496577799029240554280970274309632185812671901757613079652755834571081077131129294140791416171033095130543476793592463677792510482928736732431147490193613617034528109175759084682998445566381873994675455954323967950741495792274357356445234016057494961318692644947532888671159076323456546324911153253569294481203542793683883273355736102046774161916921026571519763262221621994637333847160672181658312141075998270792257765541876715713951933976763772284908941535304535672450289879532171741605905479448786550946366498313530007467225208280690508510375889713671454708402458741339257515914402882043868468254231807999237461839802998929370280471556032330105022779111670885028421431929860768863000029649510300836835309057118270634911477844470054017088312641006985235660468178690312101206459064433727253360176691161692988161102001794522398361677128015203210693761746646084071547966917095321472460049307999910760099374469246303380085741997972385633801221356510432975391775057070893183126202548315864976123394266069076457505026973099398381341980361150049766579347189046700837579963198128622262935605760702001890315329221783114753755684098562246546483698354857179582856333546511244852912077131820291749110143169656997440642162693275264771820786712754077971478142851168639138187872744384616503721619316722728294276886624367329449715439972575821458500128776795299397762270532369349256231973840539846482690647515848441324160567302816914048125290750380416059316784735623798043933296718900658009399728886024811168018375631591568191874132407599885459322170460798042161502462642780253062412247210197447477508482179085104295591268636306315961871169626265601063281360457896568745963059455970494206519730170185979629875651996583797657916251405596950922303110633684228929217350888249269006567686917129139830268967596269304171515579790696449996464005235228863209385710923871588728815331188304849147371668376681916984919307422776729796038144854225602706271500435811117870504894741223816427297318352149911842597318737414359604655000216073776660170249454404892291616032963792740650646821333258857203684573775427961799548243415755140101903770393145619647218672939387365531085623972445104969587056423875155608038379153134884411975914984730569615145093994714743942149265629869010297493535098661697746237567554215368660411673978416268542844819996560742220076929876537323592079921880563604421198042614808485293827730852746912202763917335027863659225712051943929946118220089003484381969391470894927396951277652788674769206388557564308014122982903005999270787649614146118069171996546101599308302961003084787672548873778815908374813824213596028200261347966708790056859302009293017331238332857900101111382956176747727153605632273970862168318305786392033167254583387656229712081032988176993296459782165266098482142178307150537484031025588003844540442871245858917036412383960799644365253168960133208284629476893837028788845625756557962487284977099546766036248773027675181101119848136565156894694111761340976233663059670862820286667058714805799531861168811276766023905243019152982472167623601755039476614776529379642306219539918619421805962051740115694069037982209360027581545690525124755306289386379355519530042636398997760681298366191675184122627822205088698588349055257786198588993092152063215882089788046730467879493522281408911656394686871216031045624874342180642225912526988688448161124966829212061216601459094141143678387448133661328776996378393004469762074035808158350897525386844269610425704037030500324061359805490143882839653596875674570125559447560365081402449742621340568523025615541031753569027618129990413987183790095125256420313689231238188363206534738822059206052892215716069639576357863755541260582386707107082710517056734529694296768207584861929836969389875743070141224707510858760752907188053573302790566834984757026027034506180840334759895045256392217831823225296913947170020920832913413132625834915341433519884939423477458304251878488231501527441196813174189819522855106912975067522984356904538531356528992547388197396855037599764809430710482267956019874722330983590024225824242842037519465624046102247271958542113177521097998649919110066510210552798335940587537259866592186909142932640766375209461752259450444390433575051099603799451804199232753117631162842938595305381036538599281307143055421650482696942780041181107165573430351892667058700318982776064602191591806447635287803612971039761286137283615433288812236848185109322981979333619993574655127363506161830411992695742347414105806982877881447613144096431540783834874902874875412498008457290986298096024426008290981512354926820938436286345426448900299837378163314364538743685250423020015635261897096551971359374838675393932488287087964065472782614330715892117821795046902184317598888331242596083137676676345464083344377621228340827002342379374329130602599884425422036211620315679497421120362527056992407430909114538483175759445608111270229550467768577927100831036244267485683880345356106965798247355403718523717879333370748528693439803970799489204845192336135331490485623858474377224671972444611486755562853010160019897028705557924082366027733153126399481666650160801742857067948630872031836474975423160620138842292186117718105095757917451730411660289139629287569339904480369771835497910053682577682140881593206499354415921162308194825937677710197149598962853160834529927959814473877337456315844053871667663404645010709421389509819067757286338731295812174680960705879161690077266592366261225765500135945571239637901887004930203896203407797907091598366545126457860515747694125943740235170285469245256545540070750701881719998027179441989254991071226152584471908190549558657780778643325674941371587079659232164697177857330933183824623119721042529105982756256109212896454884214001157549464385117164318413685444946442674544644191600884333146046644599204577678893959210353384465213288751600907693733377019210061716191899388609194958717936425337368698401072420938080460920141413506347806589135116362941632162892530682739432846831724617265433936564008058381921733945692374036380397864371688645820617589084007093115742467273466897095576260401581983204360389429700933343669868139969970311929251531587717833030131085506260757374990251530023716123248730310209236120834054972530391418224886998955335451572789862779874307745339937333953215575400984058952881006745996593311394657020866598074216632814447695003796060431006036118609810691008003791144170993695015876166417158910625211547413385219588488594667053338536699127249040042768010081139587406985923653240709894552140240203535275353684037053159140341412262367642476110057051204278246296915589411721199841257326620898545134506948987062565884705732862731432576458181926987489152271602969204801404198111354140083041646104605252914504455173944661702961738132447367483799536621674387133673669992757802139453586909808551706332837234489691214522074410777387362801969057342572706096161553282163423698377670639499185560465523271951496337515249765302939304562363174774000552575136332469856406243158764299161515052016253069201803243989660795950058443883400074836997703770739776983543986916045036545666191255798981133287821814471924242560941153043887776209887901631388546554100333511403508328778118333560060150573794809207367247648015942335585863925806874566830163643542059962479948432480969239999917855691500349906448170501723122954020476348666931579043793153374915832178069263255778742792948960223710422809245644441189531386049424489672725649290481627503918456690488799939280741923880004102185232537229015727985815173429955521372631703061838866243519194960447599218112496767449238930526706892121601625769437945183732570666928991452997363476849378683783037582992679771834518643508139014915839348506118514908570505612100494518711459417951920318356559111359615642572937030344430654169166901373554101509361888998420704165431145607418407470421512290799223487130153272306525280915350983078522111338048496364666827934587858240748564350112337413524406817331618072267943489504557284104237542322871309607647507172402876455842996026642574140772477482392911781438597533629306414477938140128200538489785976595072769175958757669069683395215743612249052430748756496534352293736787744566748777380917014879804296012149591956181181281572512719999681804201200988592116791316368971154436769193430799106789194893873813705958895377151466986839827558768854063889214446515494959298139977638421880582821487795842198987246551901897548913129446248789942677033230940163761928045694533218100107794987094644311569859211805009362338731661015955025885458374683953333760738038526984105125575513700738222947737116367451525466610515005302476044088834733771609727739256655757557835652602037175092483664541562092340654932248353841324516921981286772339995676689947454810272480437685856415835074318576913661141450115751874740848005021763429947740276697930221791401303026881869002349003966690577985923114422158275777528583895487694618578017361436965782500148198107810050832245067290018141042383821254496718538443492133715316859515111332926301166934303249370758537021063651433703161097718312927731277006768170926122005741533537181095305539513642690861125433490270786514995509106605486667272487959560458637576692679200994230179918610902040727119508371259607697152269336904605451792638434442795430212778680093715681385050886205753361021987773469958411399437701387429416342531759585581815897593286920692626383952517841625063522832734122395912488803019602426760530258782869763273166336637507974348582236998146279922418992895881943745116779536377182187340454148529965775755161026864869661238213139529286930206930475755016957008439007329877267333430534469780585049668101077032274597603469553005128944249599289118371036666628359205840549490638978507078846365152581245881061285555187666694885612329591550194194007795744419312286615565608134977609303343264053228045752911654882542852206936434652303989551199968896237263733999189016308771742200699085554468611953627862200839893889677416696911543091092854035754032634822526865851589260830411699813926048319840467702329270699619618658947419332278413110514260346332161989545985623052592714624737293272934381876617657042366633272010235099929138425837539339099172637664522481263240892764172926421443378698484572375018909727351342699998147247770024818216410157347921295018183617094535300470953649998809571602086895100543616733689985137049923772938427431428336203224393321595942286003344610915931489899686954263618750882583755995998418877742610323913655447879223250989096606697652737195272636001349429213998947446200485845167637387118029012507301630917487179247878287226394294126758984710580227340116257929192262994676438100401426862637040975138584068087941008687057337719800802811596368028735671448296493745887234972495942943757542712368979560937987532270841701575114581317534810433467264163808307430543669387161639568993896014648559466052841867253682453276227853556312611302391062158114790562737264804375520929719364070687309818090517277096684322222963000230279365356401781454290810091768925271688966811439456131516686481556156854830374814962885334327034416022047803493519048592846656753770820419209533841486764076950755153421630881581477335279864993534770776672632468785858535251160016603283717387135924957573393208554128733208842797424099715507059820247423398750026326919365320541745296885406120856730878879166917281101052374451896303965457895078245182585546587879202699204291499474977374091242458196363729355289847352161967168776985593523849850967842419829335896036193097092536886189049025493981835714984272976932028921722472704072029508621218626563800932851055561044654348074696175831565137930592530872600102408995818711432449809576652671363759560112841802958455601065092010976457667511939237449955065280357596705367573723638635005579162560493375441085848414750680790203179474466172534960419138754437583516845050168608404297955023505630749283435849663971546494397565491120569811434160144096499222642057469309886422096090627591029245265540514926177108195867878433296847704656986331565236316526993888456514861921925728648645849848604777066027622577745795356100459684317901867270790640524507636239948723327726318478496300405958634675796158827453997216090015082410594842250077263036289113539024297895586301434288346158320394224400838878490781851130195714125883483447594281437380227377482694410104197857288099547662461028918157648282097324610964192233851341791784987950559464624633523856013200872283857594449223081181968792896527949695479333047026066369818404501080890659908634011271881931698545220781976936413178808791193158466144052393524812800317601341149812713166126098531391870964118947775419540042621087083338062496489821236414760359617968428415417184303370922351054191090698244657249351202677545415662435866833356734762652278579979534483898314065854370139817586349750590168736589097434501474936776136443033916931320733250461602483419517392322799314559268547181119291067171492788663131071953577595196861684943318199377678308120970456208707516089236888357674450115076386899891546337949002720323958462166119608465204990102338762158554796913051062520894008754444946585333517897075026721218984520805083100373194094661529836944181083306116501804871812846150027809927578158024866809551249247199378106410700501120117082017153601645542166367936193343648350404638977112055994111475927507590405259641637017371195848032675307659114889600184655777515043904809339825653876479061225267740880109074524314950996632877649488802213211047224886595949021873163169629077450322543812134203378835173468903561018025956960853194353125270624865084718297270013248373491517229318304363661415083788618926668396679619162032967365823245941639000566941124035090337700784677119469660684597568876425590690577859484773189010847577383988228814030252515139026454672088801505969797485965984637473777191210839522552531959576673270917582459053675961073278131235300973019704414975481096153204517131600956698034130260057544973036725713294996298110790560150424690313696735640095298694689534224301000534043802326709800397424834111166095900090738222754431449022361926197695394833685505027179754001964393353109637302615223333113136782404790711863413366945762132500832677970743773509304397224261503495212780453325527640860908740249418203098733691860662166485380429726477978956235750452717348009689428474416847124438387717800522319002435639918203366660877992957910490154624152804179994060165876663526419182311212062252150089765940293375002640665301525539067991882507738525160531944766896596220838127479843682725691253280907328430865819510084706263273823931092512692271694211650729790881763764266153351226912364700748710093773591169902178165133072972201216334894999768438252837072555937694481868532763735085565590340956678311146297783803344344366627865869083129783211968396229762316009219260242957882237358357959308429187363022092984459404307768802336318762569008712524372478394745164022168597283589221450400008750077130693636132056243446124405994775323731908880430372790475190133811930470471631303875070016092833509808167444022849690230856502715315238513916795515018109892398135661106461802685925285282854063641652131728679473449570698410412555078371350757216130751315590614244992129908746016421266945055227055206407648372821940347862296279447581376282811022268907153443135421528118031576056265560266939666850214133808940634677135902430931422286382768780719593040201260654937487334161057232407571652377472777896182716695165701364354702799664815843448979584556526480979547423847269877468448178831820169661284847662428331556868635365429751729311671627032446543389040373329316782584099867811273311604832803689580731988003052887769213913298225291720609684564215924389583999318934988536896204456703786485288084535150128653431396179345027648943355620729810412204046940335609066647140990849847284353362261513069218026978835888769659006741418251569374898198705865684739539227874051319662342420009097726500979555902294358595639473209779513039001995197886040340512851544709525219608283765854995029101251135739000784613525745695571209486510789526065030926889576885436859036035175052129202575386401376898659660496186366809187331965376027676386611204566798952492001810447807554216606403159055688814245878514002609752301637530799568774735427615934307704104858113113727658566318576971192099203855366470859119487820031638590307155847855450859307473906501910218170005764025865465757713044762650997097177666661447024748833588753606671076767585256741642498785267348098448618809861632054092885768083382358959255689728796618492515811189336594364911089613884324675317521894600368324948609078943252824857688484210947306235035948100657363757235085030130812023383400571867294020232314910512876401406843663597752549390281330165217342650568170522570149984199568314469133101259156022612396501505544089342549690877012946068453732322245015298809577714682463964440174936176649422481719242410754115324366231552488429750522807499278291889901033913925577913777979164952838583722353033027448989144148406530269036261045683385349408788730789278164607989941590302621389471101057692063290192649530857181277940645417134063985913369653042632325635339569642994836846291802109964919832613589714653656013112636914328280836213069855253290690597128022461619812084006291764908518450532247556512014238222716415851964008851783999830004768706137666219289770874090657185035649339395430736660290973659493807677122063031440846930437422198118101674844230809050041067348770861886445436840623437784731909889078018519638608474481085855953398710334400975091380727865801118604047714168473411569474685408247967968753228034651117489831349093955071436223500130863389511460594259472112076020713364476290158446833012920270711571048063145183412338873713721799525284958840185715123311121757418773913975555568757672781058283612078331330586952606161372386011049861100492033841642124775800442454942470270074815244908854440986245513363008012362544558042064178066047580125359170342364295322672980682347595721327349409874486879123370202404772092236112498464889368860793528356564539019180074895231646554745380995984469456667910033559356222303961486050784222130315625539083422324886915268139063853814465062786782270967316402520580227371756046093389246246497076281932850545585436794216678927448960297568203678793377384733074892484796027145909371112706043757865695208817991809655771669949642663642420552774032389078791515323963510393697636656396476462532100655678769041587027598313848827447359596075659468633976416201447358588151831761204557722954353066192146261901233811444530256774280798060052569955634705922098955867107910784767863344264765363270864662999691511941900260600894365526047262137007820210656126768026451691298294241408972742081627554207347019063542854053621752835495010152471396043942248853592080195481886836616982345265613012010143135471850968093256890391101244848976806901108132111421215138078481525215373075213064903933901101753665019781192686281380509862318238359142851343661354227749848889840134066670928751220219506707412574804872425950617784667763317917307249055399021259218128246530034342955230340059106856680506199133352228273003661112413334733760930004077931074449887534996948049613290948052623215236643541878450265333091976027154565866152957806879880371644673769901646303563263247349702027736256222416577356045953157049195618735013499490981355473740814452681488837700513879226276917499371143048716526054975632347975732888810211733554092459187156027380558381671047060541992185989797255194544889637492864048573622559797276738589474713913069833395279092879963818789453424473519870391974356992269377030113320188077038090866366768275292206158032625039338061657256276219796721059383066146707837465176143193378243977385094988333742495133486559098604309359960896856943691440523079494325304865336946550992053966290987228805174898817314089800953650477526784051953824731147137702751587822035786383110803051621123661445865625128399506493439392943917439636340777437935491484192351325459051207616458429749606148951595630101442557338410526938847520477871421642587148517080659549148891206489725264796761302469506722061269623123829439773239829404501568800908497969950889519192956317160930949870318919201908373265297482284013453853115164568624404224041599710918905829645239020827976739898849110048170054399869930703076246160551756129407151964328326230561225434548288392323214581112945623354854223003393370972479303507677731644616258557796304816389941252841305545263103813252111029152098557851812774820616820069166951004924142735209444618639826703935722087822969047682688144704428289050321877014441093029759359826818169283865662642685853681040475288817085903331496482398985641242003187156921772385515895016814541322716929210912480120751982322698734969510621536201324905863963660922516442522053864265996874844992311660445441555801817714738970672749977375018191580522368665885761440364928065650162871910060586594622799475837978739294261971274471273667199652308435213355634592447883192896708133869780845485502286512449970505244849575672617034363540248043511499352591117333097774265650953428233437620735221287287780054476051586086895186720882227798111810399421782607404521009396014711195675477108442173632096529650789508167590745875501997519095097386253260368379858410999180398781949094352291155145353731266212067097449252103797991150891864651760463036834840172778917971537773719839414889421410960173316902025222885529644585405870988516020505647227453551554752266264437144256581011327280214750266914127321666586075159148169616985680147588539067516900199439229542113322951330746816512326351320359242183069352537519889647700465721985060466963806946042747629848379207328417585936118474318847456694172033902246232911453733086232537715122208945778393929966610502192320036405773289432643965779466414865481849533596273371568010978551629982506396787540390348701781771966371036977789866794097904733502073333893167299248406989690221475594678684678440138968247929634135447097000578390824964119532554371041870120176245460161847261482257150598507062451540764384707074920380398254388659223492342514554874258629447373511070546660095232047129482992264510618965976207723325942160741735636540618983240910702096219191623128664794187144016897650200423361968593941867274061778951173672719601464375561770021948279934103264490560929516055136134858214098058675122657526138613793093553686079606281137007014620975581338510833430498680553708409380455294361468999569058588827128156230362756114571043895137989806727624437766673608334442171811258175995068819025218114983811118988356475336467111114699588755289638956180740494315214589451716135262090902154303699547401935353769766133609502446839091119492555242691092341421292738799989489154128355977237930125713626927830368659540949344075786135076709380838537607919077666952466067628777510802029950654626717920763893638843031067380852310754303148545872103135713285566672534523390514990303370735045236553078628226822599189948572370620782058002723926736009915665763321669649424664167674898912308783815981407070465108317350411480021488546776169186692309425155706591531441891048415035343959735155850255329516800709040123194102841673797560543301333857963700580231784947639861730085309021334214244720166463944853741137409604661281996410261226256551329704822295823450989800822178077393309278701322884080854404231369061733748859070759553736284301043982561677111597607853963773493938668626760599365595298293709952426697182101782069282635837217755623438489596766555527775162974908006854930437239949512575854747359251240516462789546419182311780993878417386018506685592590109621329075986802806648627507203245624776008194628212588544541738209581603949056460445805602559003396367561984771508908981878959509817582027496339750965577126048018130459947994129731665057654974204402206677934674929864445876886318859294754030174556627856881253137373481733126291149386938162913070790089625882820458102523897740010001574940783259605785780265087192439575123894494923346304196403783240744305831705574933520273561591859015055951102522551017778545356671152805153945430961191852627928709898219565628833859637092873598102934333557676740804104172561196242288354084402153085206024263393685512327591045291461343401303382454443975550140845107052732558696135932788176716831988409844354256313019058687465376189739716486470792211600486082691889163886350197090130961695017909715438117850596654899688851965613564446935242127465197667966491218786585055539941592046058148584478975780920497721998439169318492662723830787393364988933356298435532639104297531171929853913702982851956846847656375844040964098775771428656339752612510734403014094980361883595241358772840771094238374447947732360148080642117976277241823473828683125075159149661175816890688233550739927987283338145281054629313578664629120593959319141859909519238507530275612914606522227334717421814249203161086350851495709933759884342340950742817326928653287289850121666114295741051557888319258264165858825126908190807652392095553110826422792960301798810726766727493900912764952195548529744421573107560986278047576107491641293884383400654391601717628023787411813289794373953384467387480823087121013858795326992723962745220698498687096006000705323306864964773724212561018863940736867955560707373702116531163936767167789827861783566458392872421468783681040920496566133181703903672822140938813182039876317210876928823700691195511205373510062250590524628080648181460290551268129361613783409624091438356795797260826792765397395551778479102763922199170589179010437204911747243930698947586633169865172083520477858126552394276253365378410657726221440774421685256138611089657490197808203677809202043824544645425070384888495479940743954475183043483777024429125939161382238426824496431025379613103597349901458970721589187055432664473148327383814703603811473773771558499993491114926876711127033163435575423558468524757900937514001765622127489307418213082415411297113579934704504758446472852462409546021987494808261350298754224616908777182395428026184551325987117108116724502287749634130642664072963790397662170168134683552811739557386229231173077529921014515318604948897210889469877952612013061155517265647143313831275520722932073441206245566192442650846923531987820200768149077053712220112490696351210741982161292083338781456909481763785887751992065313675275089559080469490419304313741599535351354655173984243068646867408777841654984658557762838722573349446607031611785073277513114974734650022392021327458907662297961636830824114748814527160697717201502879964538669303970287792181415764168850663643182716539813010577607182385299438033836546307261540678715250736469575720976100896679119855679235168772354865272275777440033507463436081651735293400999717975238807025433554185489863502812941485160272980742329569925443481626219399617228819828804799359631448452080788497387898450678404555509996890820636051130293647908864851027679339694900496894679822750207548925584311072949070658506611970971673352799899346979889056387909581588667300168144490999992915214020902569404338761019120691552243060403747228049122479170681017989461258357440559823389988121220283261468427224590775640445340327301876083713324939863971893808916847637673389138377750621592677785279745133948243494982515074886009750468777112066531484828474262580418800208441885461009007374779301134033840125805886390686573690029227521364051551400786593399033060089943346461533281881488996759856983561268057980361513995502893416946701425040728354851258792797121109817186641587060200521402176899991066446583715478071194924743204116413480643591048414280079024194320417780712328175229550512622878270443400562198109297862028748961813653517792810164569801290931317002071850728226272804883222253058486235694949463087770046489773648771852413074724216848498126906017752556132205368336993492599179134166891363038013700800091764396947155459500113887975432492172227117986334545795138395120815831198697076477959620656423432152686665221396986473925433948020330716970518561413486268861191894853315304725395911131593846798130673705740323553479334531683600095272176176584242494902895848246634577846964764289921525933948626460349221426709578836844143193974748790785895159416800266544531335378205625141088627261359085525029050149593103552483260241837611957449078493692154601099211523780154162455837702785909496631338276082007569176531645410157822466251877167194210073893917879424609296888459204794213546801036650772348960938980652632285362976342964667896508643905069760077172970008123661946796276531791482749199594241725342741015791778993100201818790165704625365880404986346859980935850023290781259600712019876110935040740929805215715562292643788397865973972945797051320572943844441551847829999043228491012426370083485226803795754271151516872394569547421550516896650582771222780719558864548456833125924613895108510637866225039479872815380704151885926412136872246084432650202864393325807478627290998561252738470456088906427833253875262010790643714920246994733356123513700509886506853083219719500782572596154300197610082619735065919926624131112865204485089326470903043751841451623426037332530026233683672086711339964299463552648729907149128115272959986192543635310037038175116124083656825475776674735538297304467278333792150875648806775231852467072140560325948773427742876551493856204087976352642135523002772069656100532613140596308920805917330812008834126680085841102497084385537436142393294320372316333853135339810251353896654005508724272936966975583668505026449980091017192999248046903032059920248613758278329826075161960612933956688610863307993919207577459790931656707611917312652644665839369768870322553043004566282065187113102903088528927014184950132532452193457299396112486418206554115594537779250782727729662751075565141213011092373230049375950533255420046915274065357069733338644641731669834342383414889704571166327733481413301190950491352619983960756843172777555510905916815212349167445787595835291400277824313838088688624654283509889476393258608153883403439292030436562236672227082672031094140261340624688486332878276507883399479189313751094098966956788286922669959895802768121677059601017532699136388293646791802621468982451896866386250038597124187472625562318550951047849269886546375832750253058466017740723193851735092230995926227338745967231710114387219183409986153133585221306094900348790450900353560967807899938067554212876173924497881869546711013201487260813689905539206561217769960244312366564381361957771986502200819899257925249124993696484858602419953107386987061397052534677626673341349846021288042598884865048069021283321034296658930980742946376992481622280743417524083437423507547867375736590596148737759679477477842116147114242796181374455584830342494732901913858965331903749762970903747033358132841373305394304991939016448914309281921804205487789221543467469846480415199451930880234267682786616244216891289981111549010792248126472366438440871443001100212005009541714595998034675641776519302371113590293396496950302667914045456374851060473781881823310275161508410688814510107392521093489339527288153941970833955541695977089920116268325774055298948112378748890789936789710441871204861914445927566790175248884609207658244134522978874497278704948083753442493123554585043060324014166636652629092008670519215380448453236304749898528872891092836236178192984362229054958952378687395816995391686272802360841380760377224013818146927944699228891107312604433584446266918968981809107794273274696970199072745934703984629696137224814749049932461183488116770119401671598794235917946466410902735975132604035669013778069113873012346706105251606636653692970331368928268771958495058117416746353465679217019788446523960850736791737762879995652191727023934375053257875095428109293809290093036518220166219890772203940720437248738140850107907774442394397247368351463421341397416637162369844682565858193853309895256930675140166750181699229124808936219936470939490564352877897175964589642399206577123825148432905839695574430707259096822918218275774480259177572611526338342761075545634798488166166156554789038431939238308415312241103555935163802893839971944505933488854184699894778976618435324610674959733995561931279461720879594529020036667714213204275727505755604465388585832394516417139268163611072713094164909380247846263128813822478912390423705000817724224733494473559597863543055324784156072810943027053476866055731153219240333703956211881320071948768472927168101995995058176037294837513605750554123998442419360291967436548452391455270060823296468105605263982813409874050270810779877793563923535864716362398228816439620956469901543887088556293455370279494253688190436780213243398246559243479698033176552865962092172387582426677463565907143716199535112317511806810136522005700879521453952403679484432989576641491575691421102673430925426994124052760225115083603578649165168251604077011693429966723246155987191777631756430069680880227385568665731518649632317049925817515476366455434193248169113970996379650682144318706411061294847619190245255799574860486532562592287592422441828566895192585480294512559531939145586173663998642143828402927943928724843233021691542690103193562620637202201076257779493383207047888073056503611771244162942968358654348777290498562630827703141384323653887610390113124036187550282923635980424163690191535903581708067424482494912657054387732320711197036384140984819112863914526337528784903761635224462349149483926035112324127501333156512556009328513136362794674252006812828354651485818044336590767011624053257073878055025605443475776525229228880104823488919650651375605240991832896684233983288950949592845481229528008037744167925313851501875021287149092908323724393592947827734362064378068495512074630224480380179207101459638418056676314795116881103802231538052813543742598801380166457985958208778411072330636885722169307656768224935058594965592233068399687126842046519654509445509969884394268841361763011772099189228636091333698793830564165115252017310772003323467307470964023166393588596130011768858914192658538455733419501519221085277652808290137300587247335996515781775335672816985502529856921513739589135871326067288545848570032548091011784391956617616984081591299115233794487235863563682094488236721147541070521783691258550899601785577396216840547170753715504819066873309734638430739979823318701392466526937002325234033211322389924250403194908598357944854023558752559878686290170553260341081084613462896667127045315941959494610772548958987630997539092891944619943256856267449292361072073055699385124772028820154235089925888787497387387393245806519679236275435012166065937187374979009510879987959229137430187183573662174331276037358965383424391832189881027296910732844322721632438898104178280493273124653299407150598292735997669530914350861294598386601955189349163379247758597440144189478553945742648782941689407818960097492495411031676947326530180768947108402906098723020375787775796267593052475393000922181149222957523605911161701245574475718660696110864049891659381160378135288442575498824005457544264985536697955038730376057184174466454848553151344276130022243951350030127540559571991472295610100587959789519710633858928192526668960879790007545621407816185771260056221683134213204669346145719593338722299509151978624981210801129709092651988241363777451753545582679848752514645406478995683814889582741815983533654752216273364983068381370404486127628356929559334135950604472987349863343469689518402299496103428592100567034668973084933639207479569862003872274714277506143328622905383552541760763943644057203132648255084581503173014585068846535608300622179530853366260457617474607942391641275059930831068380272521075943532115377020979586846408682308250237436218935460400111254386115923446440590182022318127640858301995678735539372745406345757305320765146872651443956386712374860978711404584404195788938560417705080179091525668504615649730516113834603785450946491560206898652484021893700812334003798876791440994614225148615863068487028989619655562863962162409837588940595897814790997490645459511179172575784171672100753093588843002901212088166231927400400380585999376941771080600847650114354084536291172838793173873412014262574521877025560510065828592535966959607977748892299868991747732875871016975567926781320894715673507031926361247580760269804690861538853828954778083314513160200720364385736710573178835312759581656412628181479308213381985776991082873276846551156578669895921062889452543506405608839062678134230584215165603161737998235245510543012523318763617400597536150116772070504938191674833960218504606656759513313698929025779872596878711742469064604069678608199849285833453095257978911402817921675909501917710793415425921258595510416232338239778299587559381721826314802424542893580164669419708194885819430321681255577455897858255210167144172339808916870081174321289881789391599921920682701229701240623416668329943679978663831601267268829203708441653819353084890408975053082868984583245266250737835426307502778617632182360175429204660873400726096819066981940853942429130632278123286696663996135575811433145274221041007535217762779819412194550083454992868614656146822223917335188379216199357627440244361569722875999093416780500042273260815314291468690299535815679492891792634953402975873556501583797533812119101589395427110624749978110580031743138591200407883998095659602617960908480618385135535592067330095756699843111308084837438481498342648621368532122577765869151071758090654988112714921460080560902299509062412582320579032595783658274657607668366221954873374909911574935764122024504495889291349925345752806749680602198233482891398243755108183606642869559142690761157311511896034455769559198451308384529717677029524865898589193509766660297686102427688442229587864232346743434846259637115532352868452744343694188801470006350827293043078336953755231402465383900948549020128132773720276495780797633487712704370354448717230969379649872400095195781280053348823729362452665507667605686192230979812169643722731859036840467512749336469513340425216573691137592430723741528664616747030565764337229636755261537718010215985016951630072535822057344529489665100050821184511466120893959338757830855942031032897105407703030862601898567829060298023992466412581193660842565831373457051175203794537362181747137672290730394790774539320195232511826150337700859216484921379378434226339282975024492225833162795330121129112006826847812788609642726785818039521136426007639660296032650936597934535107627304834443524135937459604362986870055967415557444310148384508983770012128584674012077919703811793965329697504383777448720162065379331113685097726036152529724874059800911746568848871604093023879820407584154857540281018428319231978567488681594962756527885973285469422708572395680972814497512006745975751936124581402343863546203918287906582420637964629595965317645883785008195191869110499689410633332141318625036512696788613079254519898195313748712190892614480620574788151202289734271838280268952804537154867244472401551166446849602251297999267021927801686552784841875254832048940901916443055713679000893596617435282698527654143881673689455071140495965029832528735069797938374233873399740011333232163426747022654112676054542150842096944824413232112119123278652082027559119600825954762016007285737990826296832248233040986899573090270774334261705361267013693424404935429930075290309313250172160782074669121578971903485999765276953383448654659269630504414074394607825520509782020793042608013492418390782578383988021942841278320201703490697220112854236768907292775384181497754556007167639064852334661492132040837096150154759348500369525150219060444058739784380717361358473835568226031870398065073623229233522559477244225852723691611766619211076878946157150285893539273529879845471283360061554426779366660121010234863044978893143115416797910202594629276234313931620132208718649058696195076413128908996036998995922587235949757899545182781382930243242906757485488184195853060330720050394271734699240009463683485704231062737256988543760046136858226603364851685963692390626184809743756358509207813133833559808875577346943284734527894969764263017136837163232360826208887036677462163081336898364499632834576580176289728131058846857582708773984062764910199377406615634771014275487171542853550276756667188543161220360159963600145787098866455173701396594225823811167173419357834441857561446119567192701115896648695741363555958164798591940487539228087819714672481584258613298197302357883602862132605182547728696894084610245276061942950833158256751970651369764140303850180026395277331815525659110694833254886770014358606742390251613422082349499168318998830812753481940357692745942461631779964462101414067107883594037328119790106732535765979820096396770105971858537819039036340714538780816612316774294955227020639665339256520712226076133984981175512427926968927101793676052082678142566917405598061221483032848003578042971911516997641494157682425230047996084833608462683733457576705674291797149499401704180334832882147575979389759384871275947080948721851731453079317003011421272969016200209082657751242407530653981172493792046953809277260576442420156301167896349844723934778510812642699761659250811558790092329387756652262580239580103752940589071711749392580434161930453509271401612153504699448169281808491637626933725789293914163788708209774503627195655222375655996111726755307744418595420820343236569608927939647893091388914455897481856494104927479894233552205435628665178325206656443554499359007717386281558276803622853012810877696081314320103491288360223820567410116959474773815282925811158347537069818932607378156734325148110931155019933437058610417193659374442748405372122769716704987886587811313600545261681473248172573235982774821300472708339201374057783620036618014506377829444195016733469311273863413410356439940966819337877145974443456656054391596350293611529788475102459418818961198924634611198703042104172470642561351622637684086657748242582499959501621361149876008394256742441111801168014524450229629408387936369576057567824049520018817126930838905393732028562989758344017057434863575870303412228113349239950307097310720205697646275831074479231378343660142053394427784000662827935162300906010985147022422899069550377016030667791496778131932990194139714664159421935710344401922330440615138923477954046370138780581954993844875623445867393326309175886163801463864989937998397587758275588020668756328786601023882848789057814024175075199696281355023040431368892495992650543470603234168799977965171421511603236816061493020055275341398724865444300273967502275173552902472722096795622361951445940788587349668502750156743830911365139441422508630826881220574855608913432807584143938214531716680566674093718199353848202751652621921737642013043516037003305094630728676655254279357812377895441189986499605017469766960184073711554779454555662980653572313296829514209549294389662535877627152432564954546350845451367307534547205352441427963214671528945366718688730211474284780131326526784766113867228073364137761569755143989862491237076585750917959869556171032027835625203369678759209732472764049903252689505314319856837059903669843086643787216938324536629336863189060739298487471747077065760816336735748686520060444930886473817868411722655411709947650672366878925431420702593776430491623920725535862516461876832910007317209283491773314552824140472324691694753711128720254307991035119091973761525034179131265279178886294812085783779600998715508982224035768600757995407809354894718973493874252035918563498075064438171042330341811638385160423057129424124556807840015313118344988402870555683206323467480130254405243151158979420016575394392920001081389768478666929917685161584526285621640590000495410993468343796474653419254276854292936610730084412413530838795324495468838476528710769436896353852601280256550250978629270629080072243717987186461310672215528209590173401824377918286141221742430989926832462766585723546658551604283501493357766137797006700836006561466997191969609047579634186042362955689458326822096247463921588771970195237871912532067524357055674428241079542859558064966415156321430084715457495371862390774060780915061142450896064587522647713774757059237838443647449459539038872995841223958494703088389504431652007270531369960258910674424343466856681186879755758674159275757361374496681045756295165203608271971998446610830341495611651942960704529921373478956293619400690609689192658887603226676269577728625218016207255732450281010284115867343495300548985518174396236211550492959567959798983440146605878138720551376116757942431363307482398464858088030232662437707362262928254326903885729804225688969923442865191336697920922787207456377832796774327614877950228644212326273006544600065758498310205739328658125741777960738396662657492661058028263340221854572525363572590004734180447918643836672562190909418517521902347335922078992258419053918320105612350010711353044900337678870208772053593676519194478027001275712186464012896724716222867968186658801547024464232114916781486155208448947305221986870366291233741539754708428494460425052445218026653364605356634433978002786332087167747597893104329643765003962131904591680679483597820376845399645261552454020444078881834550895867380021661218178915556641120802343114622647118378595415521775058337177083665160730808269966223656446074735516798587226186890226547862114087007924824298127570234108241631742660201096785530979557623001569094164348723358677101597602523182054596351737785898146763733697225640565272187130212040491512304240603751680555299704167114248948167540562316959983963359534967060977772993224488621766662204939149553544134602567044012320604251352436620520702390049884504015342504131732007641790253399838824062444311948197694438979230470729921735288406653469575151919395134600158965046270724688430902103136887081769563069676946103161492424850187511655967214489336456707626110409727061293279344262807590509505201045286673798815596880091765797214127339140994458399638635552659625517473674001497370861558602256014397168733730911053235553827222852205616760451151057475914040360019427485451844971347418696866726795708080806949450625451745548418546919110296822410886379802854029417627384135371115974482666803140805955093186399922319027186540558334268365689313675196226512673843054002220540477560517233174711843900903029763087543502505436602852758585902576656107491554748511452681681079881144174779888142475813836072261472824946929948443083024665033176049374062466283049988133265468343610789506532273022496879491212734317677161540361045203399559059888156781347938895323709424411029009678713264472495130047704451883523700689438689300489615684891594396070077031822808178012263594505501708586757235962210323621866815487212295288948843430639642019929912436161016474133685798193275693844127584290461147962876272580273563661231251608977368558792615750839988879502814535219794220055516546335009151290742923439940914098876627854999199137438012170765347353401971244443184123987792347150424548706046580393395228979000244343095820029582526197433199349711678406637514301800996863002331256861428559335037213754570925367918338987732379395111371800112351229942639441268012716913899358266252775330338699143134077858112811191105897726365372506781777664520870935653518078821380143872298231014343783120185569868398193327045490494815075424635684956912850353057956802247764253572135188521905215920958579362376047692443200235012957904881821208627813196872711900912482041506201532799883898070198202827444364988318343768327115153501437401204680470317282556614226010847628411667280897226005557282107342414499640816587393383208300512198668565216718934487398820281676131584318400754505020605403723041342584634580804595774661864780558699592711389629904356373085662092159034930905559960277348287266049476327357706551496561678902932947758966581115055262491220999989358912524566215233272851711363014394577562095188499054843889722691494819063442364195907402013231244924015520572094091301523940294222609572977723909711168944283699944187521283988990079736726539373757604264272510403461320147037255810914925725751034208191444031375877747885450118734320160167799832713721536047350425728724049065045898807241903846213409340081144909725638010515010937569836749848576842861185146662255255169636740640263444751004035269780144279994415903628815584296062760616922989104278704108001589647374768768982929807706834685707633290583595027654604529308810564912115150617677207405086165317655126083450075560904187099443862646934052776161352796843230960266480122526887476460796599752103538965636807224993070283227200047802334513385156127897659914174445054947810680491897166049416233715639359170177920029624718883127310639539914555788423559198723388837312775338613392537415711533009161442848544077003857321774149927051436191018080558985429658964403364620691242259700484846272416488166022007602274255624551677697795301956716690466611020834976709550029505571583317261895922609783543849303729753569556917910874724654084025067107061411266983757583528471210263646799961568461190932873537304836844026119170435189008942930331666517721873977139177058383411636749725443914359291033390563905956546098341379752411505961205632069682528491533892239921986590574705274854336154251872033048032215998827372415642365898843401806824949477671446778633906998249834458350103641335464547769443042082328229464433217113727054429145992219656383253553724119885114248283737202410755843305787066005755931843209109744457065983512970592645560736344313382032360753301431363792156320925799991248778732056190228534797329318433573018177076751047012897832077156655002947225700294576133868261009559494148266111295380835359737806922528333104784551972018929032814752001281277680479251526820940032491217534650527063029423550094870267589071908048818510598109686079004045723562595937726822605971611928944870883118553470284699092305090094665967606296542412432708435613657540190798010443494156260116612789110128122751379813973271616410352482574092712462458862119486138370886123856402873463550567855278768326405138069712889148236908044575694722727200412477745312192138158672217287899874651279347049324318505814841554665759212906475559721457010660404033165699092335142260070761029476292081761751397603185682892579464059752932370624572068914068722878736242930551804552439281325598170576940883716594487161415329080060857934358296426456115572990220067959709822574505717508795873833508112215443091692104471805748168635173988297558242891788639375973106348839315500563723491687690974833623872816338382634699762291424860349149058008351370109386689282034277248526878527381743429098813137682650897277027920375819118029344559878861740175372753009369626819990175198950827239601300768839813558937883140918460130064838957757666592578314950551521959984901408574322489782543584714834525637978551388015034804622211295100558146354808581494334191689753085554205678456817698193026545944829888455918081416492190008138055478588905174053383411411893283803557277441094655625609418623974419510953685194706502399974312953826956276796208991118545654074848097894119262757500519539613076873896034374969729280192668672542713019149739739077864428195680621767217582041891325777493609050816695026783635004614065466124098136601116635496271903206815666554754295870814613337197897015139958038860002663391445575752753277141521659985035158173270699632432951794447688302621868853145529860534505250104747078070896756816912929999364965281336405957211733069015827782514563419855152608895021698419008720439694775441345171676160822545572883163883727902908732985837676985743435339313968508797936213845891843928019536390685443458602509502127262937726372248085964400597146310370705283097721365763354121548321841331377203791805411489270310380506467457648002187060118463239058097516506371994662398072879670292386687821919066947634257823370003925453499789959734367007916496991722160377393158496474145926758435598049909876586206024463617710000875940607927069948664816876861528729349356547819465601570329970650196630845704608131762988967535401509253579413498996224550299582383383248143810988988952412022033916100532891130431356571213656208229348500188268251307615239116415034497711443462969394906732316553401738087410433019728569991568768190038518403476217103252169644750634934022745565004552373836051933742930846517196742534594656439445244174829807996539601469270947133162581150018794846894782559307791736706676618071636500008708500834960229735603004304497972233223614614934951481598416076876382415909364739077454971671973671427455794132816886742993318537274004589745577794675085119554302308856557751299635596754129741046215616065046701849872600225480981804425310679009088393634291568478964063784177155654060424755217115570542496830739763458606047066639458591443701829155258134225355806052625242726915763493904768542248234084218207588530374661664867453866470943431829178460313992953832280694998707300980607247328968140027716788785921878390446744815379306691090290152660777456337446382504521536661026832259341531427245069801518359682679869227910716568836573725680988465372390202524304464313668849399036593504960668985168173097282233779771296065859052675528378733014845441718914999359497552825331113352683858801757630556481500405754325159303115594545814175106179032618586371061475603040167469069913049932990670376427251150014529850399092950844246229212337709016941854544123636054338183069327315401360621457795058825389813640114766970398049908453535678074311684910989200088665052988932766120741936497370364796679122450109652709893387682209060012598100613189445671837482412702774562935013906750793393875877932909036481579222175297993012121571419685422692566791477532600623067717000769047913634000945374638626519953824062310755450522336532685463469390367606875096704756220056989949443579241810202441749054480954170127818468149889635024910231235939810585916293403009282535394854006028981654337849697413993563872342770629639769205844280463078197388321698598830749022187082751007926086514082409648810078155287591133026039400851387831090425625727871969729133414072353389271693982663127206758174765201460085403569009828478230045197625219423503603044986901141853011843743793208506789424266448522099405638943569428249895789687861852069789770619407008588487246036674506975211352473103348821961657171171040374496718033692663740628341202795469107739175723511094319955342501279800454646410508347725965639005788535387206645365595638067181818191963566652607588140295833621550772035226558951153996281612224168279758659357631907605251753275874090398927372618642115104822294583389236313093076810617656008042270639502759781166142436002588208893855332074123906289261051222190187103364134760348947355047565699199810994449017853638161100674469192994876574830416159038786221343327403767653182911681619172059965213500050749146956702606727774683727524516214199896769375417867197077165342680659029502936885979570010154613680816331260833343964275061376515487795151756501387040695342201168718813343672507867711444940926781915631669118963016440043358627072260473956277654422655324799435049495787560890966221520399644109645332277044771779417187471907128128682373349832619382200749511937132625532734871575786326605646782867025229998158313825714297814779986229103148833993899550473172143392465909481740271628658564012515752120396285775180614614927181776747177197841950179633839540179265938003531905944533849539275654154363553163169189687046657968887289467803308834726422267279468865933652882924727796651932781858061640890366041192738187077583209681320622472457662101195791305084378317603708678569560174802481324537870789248079174542554110445189061930732943406751549178044723802136826775026215019691453139458430988135763018684267604644338125631236430739335044572121878651838048191533782698057269721094001139355690463943599989422906806234302776793956490495034428193130075630059683444885221546566844229080402039281781460115906252716534230629519838571669228008606654957001068039851618176766951581479914071197068792329700357306425400463734042079118037325168849154850317450911033993324430907637555750139392500203144968727780265910196017931389480468288303813548853436648755787231639514249978967002770624892861844517535633064747393068869915223672132819226690372781482363623592648732007561921883414097543851534680052201750988201870691657275223194108242065533460349417479589653430924927045046539756346053999601640935828347081070481211617114108265423012739046394460925884530476827125439731561419446725592016899611332706774660808082945495143521736021713278741859274998924188887796891825518817219828476205072181808354403615691242633958357524547519088018649736851689209467693907813312711272917211339563722932267446033095915606175367703118370406374380996270618827297546493144402815642847584465157531449425621466805966265289661554027711977232963597886528753873262418146947717780842245863162342159866615721311491484381250260345740268153513398971163120875733347292744357626379362665875009477757080595283996056451673812331276225767530532016119271859133805821316563789251373059653323277602077206617219300834552741224294706938721427378485227962859874718037295101626813645769417610383438900724668008188064689563943324807913028569462290472997496087545974120894954887369626498049288087191140155809916605886967049177825582857738030792937452578986676854701118188210441898019414506909360471548143769453147113006697839031714398485618580970986974213107046268736478782574899368787781396082141538835692603000529978770592572661288858717907207214434901789667565064307713947448764026952277342132909475923106076649295528459315561873462036851858809975763279866534353098320346310645435426445351560382288113009223802599991733519381369931992877076388420305952860045727126169410103901104310361209259328488608571977490700544225515629787489865680294108345812491990711953220323425285653043292614323851463995450930044957841524715401005860810725906964152283609586529776804420934873738743920317226718858159874343227591836644997238531718166054400329505105645582343846284906102132832988675867035949578262817303212932704709209587804987826615837192906586316329704729954083985367591367033592502120049064350021840945762312761221689008730824602125422045056615690637907144046969740859186873626434074399759147034282972064585755328572679886595401328332086705777600816403094075834550982223762874531259572150580512870725485298742182098097157674083949874268512997300213878193063866419303907615969707649718919452187715567421949388839316061431178971421564878036362771626436174560044290238772859019137169089700183863569932510109538232073845993415226728404572512112730842120917095390161449391512897882110205326717920863463042057765132199838085341898692014373153776174428361847993846384130842193144036201064133306650470171297970471076831855006785326755909531048989666915540437904914103119118281398001586840653652180042372774256072270521395907991618542310589649535723617234506765196342222775056474066966083850546958635074297109868707873680748964394732535929799894321991352089474864067393329248093379395576791569780515889064299619945679639489608998212739695386343217249644828006559315570398768479225027815150671123556788286446000185177186000775150352462012290163712466679294858404730350745215768947582769854947964373151203124728505500705751879751621835972115561543940899652964682313526639950585132897116309188005712542498169832361123361139126267796901115216968597529306870532535351604827623257143757156726037380650865589830211204816260225474580227780706299185837845248665780194473038574312898091596686857585264222527169373523482696129111189411925274478841966006683408163313211279271462494596811076748139422421745811368901889203798919026569409022254845299001643823843284327449425825715946877416312725236817822607436282955076001622941616215844220038540880585358805185663618589611908023861496025887376824217201613031887117447597837728955584189981777546113799294473397792438070117213731934209889348409399006119165369121129804274832625567007066382956167959127769145595792457259108632118200660139867095569150461855074488861212804591404048611242476481004295694951667000229996183255202296311968090730892944821043655633587433867197403717839044548966145568420744473827405561176645262289708805158207448227367419011850274397439615189163516167647452452283387384141917505654428948466443967691489242725272582724776433549122257441427490252439242825656810255281458602706123115322002767304096226570068844138474841057370640066354199921611450386481655111211095844206509923626461196753586615420832025349206810838945828101820941518152091862736475318455399638318604964518224328533039394367730982350657373767772519638702840502328425809773828724353052624789540256370806236296805614227251303385995302451589614761198926151622736110752455645439055113392403054589188571679970647264745502489905938976998958920162572672279264667047122244107440761347204652585256532222676724429324150953347997018559558654210339261796968640469891995409441788817392309353185042499553021664697929408659770380079896975336095506406946955824672436313589647187346238350337513078577842451411997691676163616904415546480098738708666108079375144942336361736136487640415445059140965489947470818088776271071340491732476596299923833343521618755532585012076601447232410848900193885450266693392978528882816710530334715850167543456365603293606442391071569706489568933595930805664247881667669381762357008488582844349784191350412644607008715868204699958979229068942121937881298469703120376080521201864470530739246581864165614565254577243402958079499260876793265907912844930192571128979776906607802924125060795115956573601143624700282175531301836889194055281290150511211782136827863373359560642101447712106611775215643076353043687304706180873094617441781110693102707605977915481328883758858244313753030085059627576259553445582713983816605592536217439794791704399984078010105172940659498640014007084032893913045541530292150743177196594907605001725160977053237587021793422364177696357141320473914751413659378591129951456027343474779438254335007893437447451580219640188809632703788842505862114050120506929814478670792768477007764064193487630500306256749962181281807252690946570516908780218625538234672147229037487834737971442782344712892440668434758849559579105165260720180073876161400870229159123145341098221585221540009112895151067103004415116874726040485145247169150817482053616590179194860632614432670427054665212654141202951595753534614497253327764413621100425160017486173161088155455368295461051962300030280870229895360054424598907304596440458515810510486495425261220387340805430985191804791139593174932712027454442548506108014140733967610020732470727898735631545358814918157549488245367528903632395835611672259180134991224807735200910590036768762141825309750148408651259014092607291688624741835422038578363452837048072139958225132321197897959136368373421897901135132572140701842776720096263707253378921833261528392816820197443064540404916665336415881425128516289382798890813943278934124181955376641501757994347669640325292364058413796556350392589628421645551812953909000313013749537859670449209107137904714664189163277938069017429491981646648751341683070599478936009272440316152622328236491223248798905585760743412734016236388357689323885694220146178354787084168906481061720645655886045932004080371338309021169135615398419275293280825697778785202584634108744946963979992880449439590167999543307681612866834013463982914638513413535205336714719085948878225516191002805791317564463910279561944176152937281807504807932421726518355050558210516086165881860111681416307936513770443129034132501224194720684793985816510203480484940820601496993285977982072577253683892004155960337050571055997074669668002390743137542223128628991084159411712457670198485848269087457547399864931239215219257220439771796713694122992439229520983156615321853225823564694122092573272554684009839453064895994062736802568191426751990237382981994254237475873875833713267786792281765085202185720705909722425036067659968689129822981474935881536103738935441660555237851781803977535509010780715996824659537161197620208317096101330860509703330811343869199496135550621283468530009810131648675250080419124081719291266811727169651857561708193950962063009518554963685733408806636261326770957482500483308621724006343209129712343732063777979048015795525366522912268954627421056613962377885917929409338003152260734822129509717602637109641912852545839941261246755595492762790923020623958403358993288085878965568282841635369890540779666205157401828082005928695404327539550987522421857936777049443087638152519328264297014619321100091661013324293366290237763404931353447030900811207885875595743248678747703362267385704574235294879382289115611089494802512458855184427237069152337537003916849214189596811995652234206886775343837202604355301168519256657724240943537320932912512455312179527370511130583961061019024726077849754819258927628615258448144053703185264704682299804886138324041590220016091771632365360914414773409610927710870550684663782208443878699599979744230248943003292774763184287083214871601013807254007945268332841582270509804113229340860486163462529396975788940924440275161788497554139308392460718097782933115306894730212751258270002080791364260963077714265233239884125799257601820765270663874720964307937102708772425612047550101546026704294300670020936938875778098456985205552157727052946433950771453761177086384716568982238436041965483531266700657503520884252027749878910458908467747791446238263463278088343159845113812866634329627541255270240438248579725557827201695607096337287124959184530347832644684392406567280494462982793536478582787010124988068743735043770224229947643337129909202231556031441458577592568441850924880866507043906771926910429259973211411311329573220497219780851050011681390302683180412508241700262809273624779794147285839687103753415838811129192814762351756081963763575501531882693482811416527062198422118270089999484668585817246456505243043392844057691321672063519377614546791325570101666376207031228151950080230948641620277667879776426564089394094540832936209076295989552286399604370722501349744833265978835471722865915297171855489184203115551419928646269069441289532617796710955304379297602509027840405017615505171001302552902064395582420768675796304325275777282004774378947226346532922590475267046162125520840194956355289370268840262077424591479079548684798950698566818319753420135406759411068449721236992388990298004032888590725718754795707131036303977338610530743020503242242127406243668454952337267820468452986549714277161128716623738913382681229486436267528696917303873681986580350273537262938225362683830650330508247530104655883790098630912865529393658892895786461225360866037270962913766434353268582530497576056150061415561625369781549238799568516246697138838338951507562623276180415286191282149100163007866135964183162885032362147693384492877517413164312955555208851788806699613706097330366577552565602397364625418358746235926068104724787018796519730523800041194494838572335311999262027683286080161109278553695284983021014851940947854575008310451999783270318621402840272897246239881142748518501695279419970433795654310245553479786792462668566130349873068812945589160781008874557615270074586828223531177023735079810400749763330048280303555678676200458631146844354608480721559159826632956412870987577974556066345418134149463600124341233796494242781676735215960021537265276782774249161807127817194760602332478481432976921673845942617143906418514815142994730315307345758655290634817811079472275942656576268917880359744502260571491596124417446278782574629109732365061843866634688194077746125041568188468781654515282120212629756779869078795558801739720716641471541757827153759871819383626010290148629578509516757875695996116975759630939515960455324714495867499924788914838475923748534121364364277348717262322044555010128975292606026577668648892642921104723998640679482983732235941781608142799958254394316170997300104870910555378403471531231018712914851048201103281356455883312379469758906842405599293429518830769832303301455750176363623530490005753791760431606759673371807426377545238936345249531427186466068632544259430859889976987199658452302287418508923464352861405003120541472801208916668404468483626140832890414841752178982983446527795127421285323142641745337201914819645107002336038285408944164571307365954291929573463619329071013178092782274599514812200314786604061091111378185744473025246822897363461988066543320401428817947078247747915263284810242936789674045633885279442308554271345390323842098488779652512703628012148821257253576940923778341922211269335126816985143713064734253025060638090565007508851095541051024916140067939538264472219631414994912699456678771652373098965598543905666649084498387758215047089952289334131885387030851748271331932860099604999103272438358403218960606459915841223253080529387263427505503398141306797865345266009574831407621090952894090717328076222941425105868443675790559360245224755739825546987933970551495243789673177716828102326697275690115526692928164208254382848761948232156000924938793267533602889311028405269314104126050991587477755933545605750326524226938946430315521253495290394336088471133571731079040662464669495123085042864183631241202527843019633886599712283585461703957103989265040926269540286964394000463447076235079381645241775554993933526649707886216689476204412043415021749207382202021567690668339162494225142778604413633133557655126599727108062122556986539647867673333213619535241261361358141809399884786528041125194473483550555550617539810708630237748675547961651512712481621186303849657347597719047255834814061464361133372834790389851279162242786173764870481613014376105223321007627581485925057447947477628846077197353460388348009034120899370536911593929369596788184142750433625576268567745469204818080878606636216161050212726433818057045423298997564429748673739679920000221075433515606670978445521753204323206880530277603107391929679505486091519524403634558503623214778974224719314571655507044908153991827778836852599670051189161687069561549357190287647445750441354208668941954792980763788484107459807052791786596678195537047337268352372208884534931678461149630633835733422181246207782115323001695791068402898348144438675060767257241151000324408789454076180437016150823919504702029874207586858281778134989823114022392634278102381147927313601835861849872374842524238941698741673355043384083184566237540232631651883071512011203327182221924172146751655720336181842423605336973944655014706354794108554842264055207734432024698618656294653895196604229616043951676114392921562091875597923244873246241171206143515659865169041737404572630821780175841629381293897579019967758325821575097989522853951245817970208723137290820411782738572874096098404322952289815853335844812648112820436985656818874460553019604935998854490420050118095679629945842556621622865826933164067422209210763488563344447922382841669903053998135683760088625131908493541421741195097095280682673432196784755341770319786038286217976142865245919563774604508497441025757131765983789350588668620023176802315268754123905012670606672691176164978626502029637360723045534164255608265062638079681526004931850555745894416476980560753857757210858986961063731307933953539092853258237311346091576366290694452117872197265856228537821145359945892721621745859402297715957975062910506477767567466500904297388278221255592030473129034501965668437076799958476768866357965720917193079677794388695855626727468684298741827565004291260742327868295131995173553271077448171365797731548116325642091976256938456807206972026246877107344615583010539383111985147494917419643842592428266475577608454608939700493329786292099730518032941530819047240282530431705321726956561686350370282226010165759071827443703088544386701893385916697897599279255298020396053407459194312856786738321949029881440400943987886149429689573060869674926718517290576328620463203468041633682303337682388340620863817994991294940754660337321405466738967852505069167393563573762134935024872904588320524683612416710568901182287565586731903121984061732238582191162246656513234130864757407009746969666816461674367075160768896503829812405719579771058167866645416236441071842834490735073273536526811814525944738731529196130856837757945489087569028371332697410822358411936513379102187838040922326754275348836546080022381883811742893048118464814279013923027753244144675771881781283338871331085887356936314152104393935618714630974778420045642301370562216889082424547650242985341619418744445559693893510740247387492274222680041317069711514666547693208215944513424436041079328071833919234117114171158707908101651508948345740816616546403214842646339505201771262304804209973735101422590665747655768644952981811657582733558380989152491836804843589184403699419626934624087305032325791121630911997325848554865923995673616751650704743263157034779916529754811461697864182445130368417241518025644625157248615301579593717965904665379547181498306383435594387172132324423828458611247292354073647870480377264391356342091588841475874308423208934233918073315754962834767126307050691066996771977781650779025494740233660882835184589466683739673504512436262060299532087930427137777353230693160718901235727829654695260506668881068820938320015856079145207971786788726397014244148943912383689346964658135567155068933964573822074841770005550267120083708502990457072018780199193567379163028174143106907658883242357925653939422112065848428123547444661073018407396467070362794012743813045749862791598033105376112468714937843136141375681164508939538458613179481411256397088631191824250366738138656680509927590265885511134231479647752019566224685530981342953293439550571381593950286646294520378784640620071962497581017015850400344649107891303005412948079667889234939536403060206516551288661853227706993765514533111950380095802394285161753392165157358387722891895289806244185646121761409292406636956996405046599372085779128667646196194717808713657755859600255605115000791994323367209020887572204687284914053384373429870221691370960380481072081386852534256535652727439300305120933559661106398536786940256418689208577883660389463857448724510132104262470092184115795723042675370973859437866007961818935678583773851171786608819308374906175487527391298279801050262215600754284141357856065007770780507699099737289271397144200468995600895985590475835633481401102574682572217157720957696618193911518313510776523512086502566405592450484164800472581907660734795841669196226338345074258966822490507967017777472105168789017440734453258516718986783487049001874039861621948060855758893311370968710270804992537173764211885034357775643088533887315040275204882116981435206502307869195946705945101755139267868382816976269881760124966117993774844537351408909554049848972668190447243106180920262968533829348452688736851665078882628134932190591804645498991688293327710361718678341180650613448431672424915207092190103369751776472148101357830117911609460966296292263613108361529004015775883721796405349764085677261086129257349369062931627743997641759011316188726089709512453647550486248554868921255412142837176505093116175702340740482099597615315449324296127131188823018179165273719722856470845337965916562607044612937296974559127778684451172588691709696863554443221303406080264300505588663174584339598207178639469343548532929299884840306890287985020083957366773605447310191690080704944729941263627057730104692291557960924701990620261377294683945376150586973423349478313278545792503570100568401245065967118472382266770028579721117657088231584457049886438046626009981057591067722358652402564170778262617820721090522983794586700346078283219695141428356075248428403171813948325806372933721582581822252847333617961103305168710759425491270442041949763863183977085881685254041214123881730888767232295542545947570764218784197567680833203570696153127240455298921988038029325271167291703422098012156163862557118170911709876932578528518480132944258821636180226009607568584353123264435386702719560637321874623590586364262619623550535134961768294094856706916030022563746398396490421914680670033619966618922784738953216559538369853504165718956499355820539079340318331140583518698845946460405659170748558570653175394463860019423339702078519282934071418285423409804933253405911025919621931678535431803015534809221437314186251996591571585526329801888070288441351035073719976084958266196685817572216587805046173545606794430681762618409701514714548381766018595810743094285061194984085306313915221256569735774009395386309116322948393857252459805357503735678727699855842017331640676229599371945669336390997990289898920698213335927830771915803134954339099686593485471681686939393440169961738400999230117255726561860020949510162615393742731176756118421025655065267627245841462653451996134480718532899024111063803163941279244944351085397950181015101619344914065521910390311051894439799677973444352225194054946414712613403472316814690274161498727315850194340953632403917519180907413533534680033438108692020376370437966408812020479552959884264019665625993525535229957808834603610088709640615061001918813258769521757689713839994818012320868787980064215326177484462627912944004880656410819381974419520860967929294931066051237882190360283687722463290127324523003226313912193656186010741083879865391238308502854560124879413755207748901599501211343006881849016987982009436071740845135952595880167253750342419694231969694528778424682456993305423266279689135184512656979211852610923319519053258916214366321774529121444177307162714718367675642173579153666263154401411618017269479981491793452704777636640878515532266754234707541949775212255626545617279941317827575417373617601587456610859981600648472056796874924910158089251663634336521818032787504428768762721063562605221144894545853316539175086417535832462938035962478627403159709511387335893883398436007327347863401060182056182137933335553047863316420470277986795191736345100458191564216772784789619654423659397935977134984327973516818775274837887661891139925581920580676604423779270443938275511721763219517274291699631458025348347361416793553710521571128714727882361912809686990958002537531185594713097858199250006744780208107904724916286565606494511007980589931453279140616937581952589809639681752866692844791195466534520107354117667563135251744944129828296535161200892111555670394692939259563163222500199565808303704129689975671687106754543532513013570429124389406921721083323872075343130588564257219377178183899486042899646001963728983768678471274849864091867520068734367469217600764850557621387048797215559370625985120263446456514640510633308383372763478178473337019874742738689135240263749410479599413302457446563995210119968728399745541748714539024013640196163332259044891901050920511416475522791725615840814625095568672273939635155418808566370303191578051445065579464635743079355696502057401268139516662077065420238153533218731414369239316090659888509500559099171946750326840699158082034000608063909687375567652817820758890926489271731895073757525116612183750753359778792929867441007707367942263394342680905148553169846078813586414953212123438223344576084008000557268567224127462533920990978887606371506764155883054093331639611401369783741410470982867196171997110370496287601028210899999305287243811642425860719763139792746280615130951631209851885928699495603819357458961230561194114921610616828899569763502044108640105674238028260283563986071180235265079486250788105338294841949956990027508518000659910152995638725793891991386590184961320157024777123921194383548499878080948506778830510186542951496075797102393064499531905323214685502160180039199429869938192003427283657954067458168636234209743226066955470701795627096824090329344052964777776567036046713012337178565933285010708210007151120621903190544092636944047344829524240716063235736332510659629680929305526592937479262624540680103294928566375503181093461768741208411494440722500624390266569059830458748089716532858152083212485928578677865484136839004115098103648749543260684947710915549646028461213111442375944166078963349819236584883192509748568622684146809673060682023424575133079662631746700162828110289806075626606770970945724533978901822995639390091232937597208497761121349471675261402942596805931083910837313814891131768141626887483330131317910349889374545582367589995328783483582486078858031664929773070715187547773858964266357265821991704334957645636518874813010361470042937507890149220718480108719466258472299715180985390727951294803662150023527854989246069392488890272943750793554823619069101300740424905844966278456167471700308433076821671313639985802017559919734828778971064664383938863791701053350315360001075161482432743007842769519394445449970671850104052275914422538596607792713654664001561111049519919533390843790051845341355344856327505774110675358794825107304506697767005232348759523115326501685095659208748435945503881729783712618906324019237569222203536068296776612834920614022798791858457993020212990302122229327807960621957068758592520812962634361003509540269837011682066596430604279959074740192656580538919549886344450297262538321547571940941477586879218403381388490684511905133978068638171525408004195149605049282152758839463004883205825135080946244131474975550780389585695066614800864193876781256399148529572674937794140492331703778165993418773436057268203007956788836994728965923353112468667857788875555235838345844514341973345738717108937451155013148934490044116857499869796447732655886141367294047178539038518022202110285531196739740276769573059078667511151992330230882967396083057543550879968141872704438113680517136241263686376027821778678504970252050564528547495788245175852509677960847851341189814254571694290376400380511787394573829819648912228345466084459375258462228957565890051855965211917983840404320891570137305339110099610353547311713516271318084500232080245563914481772957592951975740084804226118308717374817828936973684919861376192885509924860845489403272307579889634409293486807581049727952367196735026222716659532408140036605762938893328488282135611371221243877699819971853483293089953832381340495848696829189298868970978099079098950070885095782033769391766623238429451003563404886025471887148146366118608627745804678545636599019477668612081206669543722887986570182558605670045872204519271343827907177800259566026721001272436189440841208520181067546197573720776633686413736834184272047428668549772798524677546448339757271267350238272730623359768978829378015396184768556490023453533658880960187882845475696903099386828659409177562323210875866446931622623059837080928791610018740031205329384279490875889788004938023123702091200749379347182963370093160754198197913992927326553837905952289339293204920231667280235697441121456909386051933483858591747270942151320373651886803862115139846122809809173075556435725535023255532496391105397683423675475134989843124842102156461242084115892751405726243281130420953753181739266449590129999313763448545004011056483522966805671175900464022863130535162890847619897668503442259782459057033495312039070781547945558184305931733112648524161914048516256208138437236521267442256216885018682142865823336646644742544282466740089557362579996125363544998491055989381852981420950293047644795352021575359535163093762671448265012426074817125188561343547239545178266796104125034722616838580718089127694867984275378365915188656240892418727338495478368825952146228595385029599123296607135857680563957070714921707410004206250032685304728730426717571379356269289652557518874848108793848953562590380806945381063067961302560418223781296090815922258565644198328165713680423382854887053401361390471730992289865494482171768054173201496524711520692368360433075047029082050278970701174228858298467893190613724872698075286894362557924360710555574134500226113994434913453955759112696644136960551201262704809232994494800540978766035217562932547573590690788933805054164436922552636562614801027175944188626559275434807956435194359231750402335983712377857157635512867371684011929016067065862168705005414389088002248612397392403486096000428719781645397023775295254233958107039781498247475654726700080560354730201954470984829417485784159068176940872950680786074374349700078814880705755998107489843551227699712163311841420284135323733921005207242618842548345791251947288559809768456744795973033156538108367040398246060647182695346321346290248704313400653593139043945457622814935972694577090219688514835036782556386830270717046348922973505286423890379601843258567071766222222579966917918625510727746601767772038872959186423757807788449030659956025497590840715206773980402801771741098564257764378687705834891046799028595309496233694849058569750552368837309152333027067515851902094855561559998457169556475156284940910776295136945351316169769554229272378748792042835866987054089336854058334636787282010425706223901938719808390663257000436343216636691262019129480608071736308372325514401052684374217411573005439557325704604718969607567674367662769288115596904776344960276317709309359954391164724099923392719155546574823518934687424558594469907334749333254796957063411341680789379351705737860596685326438098510050129591105410082980884285465300725218939565260249657716492658069243042715340380485856794261269916283900059168795352014015845565425253314569314193677151248556271486487918295066583044784444077558404335018543483274938698103244388901623425201360636632123749735356864277412109741868843000575273893208439627068645521455548678296745022628256095627401063200652237682187570118273278866201415124548439353893352942960482724907756195795109136578031082170931781938114347075300964870618040313888725950064417622174695572005608400765957799347638791337811906939908047774595170412111270078700578540183882483314807862034652567675004561658783735780350215651781667393696405992882154392502921041755601028728353050364551426359691029087376501087910211521060753503032992001559954750959530949915436422371893282239323847853872026528352563103646349391547908422982479736776414412033337296771382465539423038903914145537138218121900478727850475354841632047976068342205654588553206031609794786222159984440086099432825402102227074689945830574329462955200409472219435286974242734084466273050228159381675252241272209064778731052521589988995764339192721590810424079942351526791782358074360239369697400093419750936978899977998804772565155900371709029237051594806141163668474108557087219764496593738958097846986203469858341923677947736837207439987417469100424177575387015790193604023896023461322786340842771685136186254145109122731732079417090489887732502894928810766295050417238185615904270389451122185427472111567685234659004838199076303002888013857162946280141698555632442997507488210390290336328671365887500643616888852266781623081126173997109556075203927993711001641878204832504871800976369823609525242086069863090291053296965693380726514984986270843209505411294211730583118261123571221846642076334677286870865500057471256077530871175732264922078325541018528797130084570195574583408371237485656328065793361358965888552718077331781265416070777061307755914361657289880049445617534435362674495996122291304207694832009904583650235970150055827841968151841365763098239944714883161224011435284436516885530943332083007256731895393370418033687394771907194435425609814587479241145878535306744684762769457032862910982310141486954283873996020681467217409852910671568454253872841918722574843253802508618973035908724311552244138250734601346609009604809694365463608636292440143833692112472447168406893751374962999641788081432835522240217529623862961169273261445870542961669510543084672924952126956255630343163943225223996934907897040365278774135453075146724943395063237167974976586238977197519426049430341092091605436073510983975312648080218557258353267224083833980418456024955326697348768745137640006809510503896215679823385382756569823460415032000340474724377891053474048494712488201532352148509499527565467108667262834379384077470154643943769903591081173217427319660166925598325837611279019795853804298843079091393622913987325678785444996524808007284867589184905476191002709697257506050948632000894695018072370048256121709881390302254470376886177655829731930384236495197421080099564207807014556935304359761017547686195387319929880743149510073814130965231133608955545536893806639999461994381981420194701042051070911569432963260575699928285253740081128504678600833748400148915071338066387452599141329763850044982233325821187040059179103849188066777736669424897740827064127769877776909933508084309607727480148468173598907715476227906649265591257622701638116771665884066558676505669413312845350217035911949674138659997070735171446062262114950590294572158744821666550103431715703272168191402179762709417375752316774379140359719566502665487945353748044558735571255650696858930268358422614020261242309852365252655638370476461838352238023165108076983406159944889292452872884771785773840024356116582444913559768368205074923359934399675537764177823377698120995841962783159169312606063192499632295412542391888646023643714528580642993924886344878548304296712805293053563191690178625374775300766378366724624580463286700741607469244200156918668476131932656774017910184441886303712121934157250082805413864308495882234957641856968877615309310073104646986476492343629456442297741886333956517458870066357021552391908247214022605855374804873514480009345274582445899854455794379709873056350824859477233128595577707956560633208538327582715813453084917252210376304330125029081979190035911923875923124760242368850324648176852352289507597073008537122850051354809395390781523023364907938318539559509623329427988425830494151264633622374298731873711676717947719496421956783611249219712478868127608388502339542345552035905269806657649139357672886165879174672590482715318787532318353977441782912692437905415628196333043419154171308962643373913887285963841584470813935162001526533604479943800676369218523797983831450371598072630826380590473785831245934860582860808110104664777016687771211546031288640527732156983353456129702746539706236840807867628069113247142305402334738043405745378523808428858599510743208673012163340655178655098606217420224736857960530504536206101523723433798132741112709914423583296918011781686796813303150275587081059783895757265910514000714233853447166103342626641892805976805607298376162216774692364945386373211732912414723387773241940524993007937600838454857030983106251559534441938552667229858368012489895048169434627717214866647520729356568915038358630763630203822523376267102082818746357776482741570059430707477573682907579230099051636384058942018723578058212090267331491293324453221317657816030807581368859978900181377696731630855797974509599026890086932000813386299434581599253869280899015455346589662295815133460736735434481684384401778692771927006467624479047838260794395559788464079526326427533484201402659772766176348318076388550192720853241785997163892213940014691606077743970262309212011326420881395864214034515253946065786666248526003128987182996341981228635285788130883325286701357634560590442709542840604628781762891397759097687378737935968386347555951100651851242019820153068969523266897003004563319559663733618122650434428868138629809398842690284038845913577985905600889847249402114697976554235442725891589495685145293444502504547970250784330032069197101764933338800073831239371985742331742700873804536366884779036778164452434376309523320511184087553012332179637263788837676805524255755515470132403742787990788234919573356222326365238600005187607901206047461001545396360122831099954753742461082482132302341636158444687397061103433942549399858887939699827305210431804190193366473576131017498483784374900535558176524238047542053607082380557625201081890867980370370906985411093637778570725348200873408821526694325861155087414562998332494045526833899168258820550429759401433085147353327059338568782293885171946413248646927259538730058961884303265865794457109109147647623392993523720086526622397962089876530548273261141345288245348738904144566059312756972497326552687242282356555222821223184470915836863868130834150417785818767371664987149401811856012467061697554365820009925488349441597010856478873592558533449992631975391125744502812673621606199574560138733434370844291973714682201453935156923263555286435037393342891444396683724566913941519240843702556959649850157309617423537268409501237885244520470487194069569198490485779744066544322705969835666035481444132218407085229315294012398066537946183341164050533117927117302862594747424413172388448251431185419305785716712614128273097668915591664956726477181017292343759935405376294901131831281339091911234290453176022352274356349331898835515768004338528051038733373284084377428965281944348874586224128499136424567918998844632900289761165010563608192352357936391247836229959280149129369136370810448237197393533633436730656197928076770488474189148882012133363336945295514079044351292865446613719033763688042700908681714887411295683895829545990737117107757815673397280068507125490962389376354621580035337148207274450851275130229990061720774841429420005034107620190794896854951234973746940984458052550612841736399168679170224838994666545770277795403597514625624636469021397969699326958438241556772925723003329495053035154149005976719674170609316252660009248745073232665952197045648723984762129987942832140236077263818166697813855596500921234938181410832825457883673260211007434645070837176790381435025767296782177309444099691231840801246501000792899859287849294808689970643928586225247519595357129588719534613185881203981944899365422071561517884942114115611912991192939101292073025291448308007015679784462157435055579823194674940653991756711703393409324128830661589575984154105571712039604202893056251431051984009673084148769329690054247483516202517677026676738965227765673278281188662280619804453358389665855604453214198157022349408104766936210763487093015894916959751829288737223499933874313255525030880077824368670532634922809543325682573680976957554990304621284645321289657099503276661236744464677836431610717067899787616819555562681706729794533862274195557832867183539085353156234168655002376668653251718583846694329334686399562209938421149480398030214984044415852654960250333520362948793290313617794607430732316571153158883229135294509844216126822114765421738610220183008494498771634505580711565600111998244442354457144595506297046787928193178855717494426697574060479262498164060938401160101654905638580863550714553038087172895454902168144858506192545525564921380397351639960565085225424115922201907291383233092002244878217671611557019583477840084917741925229302124859824003892105888509236639779526632246254978449843190357411988982366372956957895217423880383152599818110823829814403879270084700356293250186503055352177286768353323313774638078580272441473052283455704132751181780576773059948758384622301004097228510005308567500862484493013893045183321064421078827475134619755737051119444792702773313705711629068276126969782760702517168643571971141853216883421929837993076901313953626584675952379926848023226728510780819055577435103496719194469924487046828265463660050900889882559279013966458656323829306455161572224696067283588823842072356512381136523135589089525121974689501748796585275162579576276575391812651208695294908000725096140985475316828143412451380384670808346117165223902540986557537799458069311302357563642393199576371488327328240518105213875504103517400026448909840154131026668849855965596495373261485333506785204242998632352658084836841828109287824785512387254185891882317024724452776991038059632503275567334409313036571874446254610679953106258550395223051912088903351737990280853897635049564270583364917794414523491156312229878461087991468325360153374158631710675032241730774377845304018190763534961915270281975176823966073847599727643993913952698553555490128700782837605832002580402235696602270423123790498473312482870397516935321530112376563461668922262754140903335631697544155595090368543305009530208527197450004188870096548292312626020505864294778860394833973970857048649275355630475012660284680743725493082533707068482548800435273646380484676823863981720785000880072768414582404597389119475026055460208574344558637597459862887850203775542432313064998279700351947076311829366784095782993274027862780318896599592029591643628886232181181040347107552099162274909092429843201734637810649234597046599978020207334332107719490401432962672520165618807918675656198748481201235751720905499095483011067527286027017283189933831070970297758601312181069638237588367493857803159282259772880637415841157869397743498277513427591838620666749649929046626928886338230387997057950045460306269305609022395546255310967789464123946796260348390442839802857668821797723353564497242428051109820009194880532273700200745786614911357032007431699709833873534090518880053339048303406352044483393005845315553599421439219624983332433852487265707588919652351900327376471251941138597040440293466289488122825215998259603820179352268744320621362309473481587031031853295440487213671967845161131818655658280294452669291685830007102604245420896358398973974068180056030260697265769744801663247740146109075663661560474986688507194609610530740902667703681794449683992424189697391026063678295975937635083354327219262918898279236167146582555906051205279716688957712497518169921211852158554599384605436641105461507820685925212358927257501278651697660707754750359647730383598886351049221618856776676299820274768282506012278025621231599056610777448772687146360444959253105947481451040731478535528245965696466804583324847269402789997234073001295481688882842440463517959715398057268883461136760368356625350138613438249644927439404311902063227481436383132159199676333042460374694793648006740664849784709796159805225604148018861180611842953211782295338861030445883505288576253347635075778377761305322054298227492629529990844913777982593063311714930554371583087383503251526464037207323037782280920867165763379960167708752683463492966284482732903202665357861916446254758260937904530087029278967274164399902475628963953084178071352372523676119740759562751132266782441725214819017121877999543582024080243963509020574875638715377880937905238139789125523424073707446173990490146318189334452686197452873340696708193584970623130370103789631929133794741322330550408698151872082225644239328378134461141951413036876006913419891500089704476959940889500600628850329333086729686409926614180919387753699444912498853103767029453949177136701054722016617441382138101794015387332258822135215729032784575519104070180329147467475573191430794156906568844321917125038279086303538593558912260979518517924930600013411676792303394894588114212237183279668876124030714515844558132143812767008623285068269406844341377074307487057871398442085650035954628299350636370431360293462937990398495959094180284121192226756612789528612356489113915025064759756541562541563161150023060379441630846540277053215847033795321754198440074837577232114223719470090311956143519797581062921810998698225614115012081602353708493578716605217272132557874558394953801061287722475709614485568834000903483524236583789622095542157551801213174613575097224790336208327920471320265154735135567150218821768682438583570022093258619545977262718148665359348777889026848928539893103959075240748685946177164598108838162491859925664146501376482738246207157842932760971213434187252556805064958463127290298969877060295373795004718187940530911342548081913916446817214738380565691783800755163746585117381170277980876857138341129024299759861542318274669866015311080186799430779497127297293267092310503864677797804732047489978789412125617206670789378101093857380805957884101570601853409204726244481900886159636758722486940587975345516076032168273045301090923943241750800724096815958231333291042334249810841899967099984108491219347698996954605366549710542082690267787470358715520501619149013596959659363408011649340408167428410888518314243968723113599935949279230561159842177261598757825600627720307515919863879752275082774605385256762892664231080930650224486519001292916113764715436528304518544063337815860212177690323144521495373274886644914365111501032178693422495157292935213281807723282510712638512956676825513958174056192243992556098533686779470767436852562119202799589814649586519932966109823519944599499792564793087143957886054354579949652704768576833545706408432642611689136366323266477455399309006745677436885697448627391398431597335332945421406958728493540550070637248486428920218176802372995463131554582115082836289562881921658634570013204318275945650672461284319671438803866090054664102746238762656561796702584798854367020644959119423575030196886471408699405141907172906349994186453000967764272978050254929828422429140561399469314662084436803389187135919079719785129835000848399918714412264580828892206367607364298441890455970298850276075175341232266660807723304419812191543357630946531502928326579839817711860880409889378764955594321809150472144967540901637466939830258711884891671934133715518912723330186693148355899356099236968252140024687194468616625019036020673159691388940998490386016647208307344765223273264933880822546747972036203458373207658275351339648826881998651721171175637688561158947197956485152972017077854235338972603241460733192782408992897183469070958798233623452986413800745066900437432303947408399634950497599001928534469550057194940628328029620119528189258911126883056287413161336468150379621071716256128216562820699362928957140210169148425616904591129780735899643335470908717251331727387186412076984101306881693978276241403467754670168231426767520517142373668296252818698905866397274549374213063853272937426083456412255735945952742574638966234046395603412875447010558087249554123516092640856092451009955719024799466497675924506538939579491148696518236668227736580053222146741535956546570556174772729427370593469432763238100681850912414283551528953555835262594110105627626837953160590257302582935815567646838882626813621619325978752011831935826990459587121128918205162369462900834101216845393666610862202654624718737529066324269492109390201285637668257110429757935746232429910460804885304099087171753330830004979946042399404648855695338084885267967891251400857559788815331220939160824566773444154974872985745514479855924315847558151729737539055038514197556077237394793545425318400629204179817815215427802266518282446893418792246846190096588741890725094570848027369314808097105718889745264330168546393413238080881291031731246056702377648249696464346129962906551542374261581551865483111372130153738543161179948746873327595185189269044386868293077036568604237537931706723237923794815261693504843065678779017006827744999888849975173997725338965575947770368096550025199966971201882231118965457853643954516632352469216886006794801975927138549753358798095109396546364240801975370602133916301975592866427400101897596498352324361559013276104629999655668380990121008788190391195276441293022696612964783471368217093330650093174278856636861722050801671110293955401213093210254712872884673890173503816670157147450672811576280469030791180037206069893978106350142604383467196719410076626492512844990734612953069877509440585156209812215994570574969975756328798712984185611911823297382997132209040870815938197014581621861595128682469953687172935602627185824295605058015201969162712471032906965353814428504103239037579610850515522054427681353595605209339000554981248776837656150037936584945669473221285818371167421201723163965990265728909528945844690786139444038806708957948920787332389620868234730137490505624166647881312299393984050499657794915187529714438498730517473950678970630140146136422187146174283163224978144864215627431780450015310815625950034519203879995525621222972183482945835264077946111106700553146640472208987837685115256835098991751649588042236319573992829699236013457885436156103274606303541616581513596467124692834199154002443047591966414010647390484263008388047301160708373843364836524855572442021607449273361462322865173421194653280039313599943397742225371706547044598450863397135835819188337350297835665449147599037725007005667825681482920415835060328013336264897832500663734041718986366205882115115234090209731795114951632137488862692598155321201011424546734417711359887105251125491727540319936819738742644958278092951579738730363527212582602428724352455520342353840075652839344449242516750192614749042010949708957319251524275896296739175805944685981972869900893677133949006324886955691001741199738627871891289399022746992184922447656124192942960768028836219994823183902122464500451636143743926087699114572778379563514728466165631221750367118756309749005799395790820427261529898419636103359309812297603399878424128268897865024463391950599145806365319858967494533141682224918083238721653396574740736464878398491418994728466501113223711523686906883318450828712793214916354246538829051806295290579917871072974510721860229104989926528954512153081453707975829213152776539005690840410670404079175970615164995496245054427298688860893831141978878131399638223900023116527803770008904934098452012706888603575342087462661556999096179611448802961872878269308500195362741249757908080062925715981648087914885927194688919953950159118766056046870316521507790217728410137245987549140254397670078600769183447157955234157480792712489217750133865082863566246045620477486385649500939712980446523322668035147557420984639054850090986397709669028134519657402683487062617246217211779338382418538803175987384838212224174273308809726056695529234217736574166453075472744988929580390966103845472861925025692283815694143911711529429280827352708628663530841593967567486496344329303940764591455280708116031196178604932842656080088001747403279425633247808567894737994211399365542223054567773899327964602551049631691173151186730930374498712907464664825552655164112135946878006608869328002706964571617659153331112312216063584338744513499948435253248710962478045350223950961905935890724180272578581653093704309534435418724027574782887932927640178974512695460609102411891734465384472731495578049410253559842284638565767016261198448440935633875481481021181330903181104884588710322197298817816723893856716073810026510297092247319189114675790040030149309427022773646845558098399649650338378267214143978986888388793427177368384983563528365776068874081620479461959036341313597430863150812931528941955562232467845555826214739834146740693087487615306374513374924864740561929548798023500675932209545741902796305525203822043789523576113216811469664369201163574515169093577599822688963114180831790359935247860116288661138475869299326264336741627851844706114326997321676560234078159724180484650250960418222330030244328071021891562997783946663077608871689842998487965807849962270871440240195620556310651305266515256631248466174614375889291238965534061222924878965833690808987638307163044808196635802716650103370700344336890936566407966316177343437197917719390276858500364361309723374992481130103209174668221379241507030183494471528264868753245484664754433810405833408143260081443197910763640549795201711892035908521680335107587394119348587453105655135233021606269232975085149277025402166959489353417057800227744713545478835583305768043329758031281678055074322548063885328146682050976747435881743382730615368598208113006330100378752299449841486554099044325845702732951433674722554940547082504652881855777068416681963416959844458399783860709654736518125056321542541693053100143298007840338167418487896634653604787665090480359948767027373096593444895719049597008847944219467832705723979731561700693079280118561059934270563723900685156613150359694415109180415140574747859913101443748284200977073389988084906365865632581719552697286641538149175897436973349213965285312164281988316008572569834794061136785666470206395691437087140181239303067069180535854923536863622610514755093568832078234237878051906312894786954519962652522270322919303648699800090998533156639033083221535108990109232053989831831298337131331672845821459214703567554747947897743031337683570735842222142485246154246404224339902621955442773412402554438291425519817500445798081046577129063175401458276630952168264838002346357132555754912054038016623452528852774876469041522150212902639013903850111459651661328116495091077138097648049202976785668361374179965062592717225153030470050691119728239436499330478288316177045750735790652064917992294542100644866599655544603530653709983157780208916983693718286864098510571968883580823742170793823747650603913518027876226593136797574537111713790162859825259913813988219033154058817160965562845256867784915769965161087374400454422697247700046507407762352197141417565715956602416677606196201191928011432325497601175464919709303599432724016915262094730610925583180469886631807785005755645731805264630205529787218975364240568784598996998056730219022087623086188198246562191758247698159781115919834417410675168328425697588069684855390202229030858349410403096276987796654369187573512226289185561890113746500219872907274072694777321863574305397449598137433984868577588012810537116123879588322462888830543088657536230298713550866125876744895353980592502649440753226414843746895048726838288279057121686744355217893821179430620939108499472374239454957578306652872469149299712981470703624542209873431031068909100434501853429489738205648165497059112082290903615272539735015333470922972901068833723726147839930342787819954390829817636794351059642053882801231969113292695142885205840056537430850432452504575206750099993849607871222090168706849724445955213426951200810968001284105398776689018655176127804971508803950152494805830339736298600382585308450072185520748685300931866346945507587620764333090062615121088747390370024860304896064252807564001756769517638388028672604853900954455302824043904012038389150715425536744714137783852107076245457886323246292143676018615120467400718471300438824421447196349166625523890857782217995706923270908132043268300877669865898703876404179463020389746738404520326734542708549253735923003747184255889959426204685682640809191136163671089859507078349548328298814051000990244037954447847721973763804307063713125060038981733405616384636965148894914026107923705920355937000813603910523838928775906458018943906249662436531497284179977199962408733638470948413003450693999118856413847146052195392272518666726974152636038221377775563039590378895147683629173261427033416012371558728003565988945206378542671719307892341997664086634383167086645652802551895102604808586833256993393085557236234858030388793679690039657911882071109754781180293085130173671306281227995553576614249092093179514538063741684834680583986509816889551936279226022827875929441360537428166889829422437460878764635374742142446247583322202534723556547096591383533182502246155149653152783643612382799005487139183195809049102346199503825804440685482602071513312209610705178282934190352056225289686916650763373472563382330278223017890268904382404671053012464991799891417809193108251991992102918140571607869519284694980036542506007657832391162444551007559514535697682539218284010430942360257177828077016349952793106316958616314990475301418808590660056632938376689820602929081897136018953754959875189916031704885944340633738975545514777513142033472126440758155953943525457867937195300267292234891881248991691012354001009327665367804322661842988715208301362344090035199871582789405483442537948145997829061876792181738861029985118862599949782196580553280335336348422997086051671476013469778156060259973363803595935330500954264071267168065133836411607911495306161807191728974850356946867598973824010554982734012580137335164351681518084876556382473163055228638072271246428328135442467289047575702826785314202476214347698018383090185270817991371788717628091138551013250520526353287256603055078038023727770289393304880602113564109572972463976996626628662021207579372964824954026706973311947814106703540208218466289018652617021212708662004344594371899394324162602082569282309590472538803126181540255617382638605892012304032952958763278240474056934376250961750596507222653288792171298312619207219087914058543412209956428097134069766219209493840978475085572475474813479011160803824209123584857096736959802411384090549980645241767596495328088205449859318006169036501042244203697596416294855502282332710203625387424783973438777441714691588701661242505677403687670707538794317350008487721285719325422386055760189148531961879349013793522823308936267025820986839594258986424378749812471333222456299024732091276488088930958211943236893622183598626157906135610489045623628516014195092085751841617829585127000400289213713969259058273769983761900954760676161297328655709913130438648459277972045682257159972651557192343102924135596097587360955353920971366900760510648254988829908992232478644413658234994027571388894759231376101657271196925751368652232615926521029070855766042452094555825753627541561167429692506572125180132432865018706772065870933402332528227189721056370906541671572289863033387139636078210124373864208879194523129268125348315236835456788679708648855628285788119345452034825441144159537893619002856603071726868106919100278257848771235490499579334298997773826711418024275818783732683307320597197690019987824909433948049672621408363474653698316945845079893439651908723087731266929248411366329032392081953626725849083836620633843481628644385325847469107810543918843421401648888879985028724574341938996500548045564376798005042035380225071815231387381727992818156299884090969599702140856497781312504299529644704996087049316961683777838472634896075670395886984883340842804747307670424888239442511157313333229458489348354188292126164668331919043446938114747442536200469036932177540693722013546427712603996764780054275274546338749292974454258128711112012201203959252637399611507173272136301085707660303220148887750686292780236425483296085086566030028504874990944651399282727640089809022711351644931031547564495792107424953706008046301003364509831258655420278492779190885622526211764503770923144805831156320587070380485854584670296469399888402036267155083365839163011643143075290749658407266523467900749265551892194559479435315566060228642228364773225563452718029941045627845052421468522239190897270598677516257835834621171900153904332561519911837812626182950981669901797881170032247341079972491685016420427398782765950173245259631029549738728839945539771055382550098998194122602165567264075837920683503846522877626770809147104570506719452951424257064262698586796225412979223200052825548040714369215004592378069694221809691308491167820100264095716248420104838567398602538206319411852503476643615272069499715970334885957010280209358225177061558560713382139144258359427594197679541040847123859004696211007125460691948898893871229107659641471635145459287249072781005538030681974748085264954008871474791325149272321425605978154057665547398350291119106918795265118131200401278279221235542150574447719854474630436713756439376912473962542051870535210171414099872586103621847648598988402635411602720140128480049012805483251932930000257661531081199093654673831706290270052988911580159724482313079288475528970591178052635461363559262065085612607044941567452455891213611737699617597455741237563054193497355234300782500605348489057508362961625381401407765853450192049339842518795882671754896183141816292602842284758715599868231045165085872979003767264094459414353487516162751816385132876008414631091455504136608089477397424640239230057750669584985052662052256462502239842152207035268704783243050927727660163360901044023575807606112014691384858389327414800081356303134088808120668992239772898651244721579429945765158147553571535499428053040739737916736739343586254305972078786631814135839137357306004599598055240313321869455372093383219861196740665105938828351936635654691505860854863723538965632399327817828451307656438378437927230680916704874885007151088105346333845894334538989858295546435904025230947383259040377154724478726913104521824883226974765208757822544954093007450680204758441405309145157910743703185485842610481347953128639486028975627735719466288400018686001569937680757779091558852557506226121177926867414759233179620343179258822202316606995732452582220557118074675385949788233183297418928523604051129750605350037771852300306490240701716281918265801872896603772267406418673206739938190806981676773727045274753876679938180079678660046317141863952256875060191693442861867506611643357772447994502483607804591767040871129493464613898965533380285259074060419319603756111546053209406512213017254671869377079574972448452444682663067570157055146100207720355188930483744131331272436268997494110147025680587471088907455275563264024985631801007674625579650378640612525646772658240019019706011110523222384480323147161798238288158836004089721422087882775933253022693088111656014953070411226810738932329255699250104945338589841796716072471961546021023488611575783934045684011872583239704525188087622164080540904988571646877738699484879299803357940771713094021206980767133075364638873211217462727995791601346085506657848720164147435190244335608775534627123491917063087171215502381350758845526272765873130080542341645589194894573302986177980658047072729144855841189674151190216437815293438600443207312835136970908643179025623679275210138099639641925893704785242575449714923625337892873619407009624765498625971565908873536809598726673282898034649102523873782857039821210655762033384670115859430853305322711471644407793583809734893868404741979728783970259221375241805512337844712648890761491721338409712268423063452588032355291586221942860605444720945422435644986360159801011369479717050385117779381630175787773152812600051942743330560765667728080542080639219832055149350307811542571131605241794424953874198194949938945101931306005450275697585254179488519485100237732727878498067938309195695699203383520306981876523392656706372589451856762028765757253377339440852168204486840959503531318880612013736284026758461081694792858575589436821816083111160839978016934189584876505647212020720121782723890075075224156553225309506901134066977427735384984505631707607389306640383121866020972030636839604086683714931162136920016135967258420148921417283245526992893534217181534352033049644594661707693254922194816033283736115395507157689968582500512784111191866336898991575434532629226131711298728836257965316289249148292577098659089879756148525045262246244357158710957678426703445449143727482124670666033638277674601578362235024737673540203313406144563143400471431764352885324960809634088214697536325136737492549788854237817290799388303596046238450305293059982999794466258579525559001776123471540292885947292452405459902497434920968263950201362944195963288238819890558275038030358983116833223374031669493070445476294716057142476623385333163008095652184084132074878634807059172165913311392565551180545707075309755726420362788930349533730402828291396756509712041995136509417401940990364630647366907206774481606769638158719221287998912040234188429760084449242863599774892601280404329322686017202837359232158439476743221111685480560148152022137617582703479473912254429158063117466511741980125044607524812136276642546591778727836089487371686109499821316731651038875546551501879913230493886207021066505922338700859761745540561059918762289214272320440641095140826800925450670886083866239755456362908095107566421698163234860751038460749009634556799483699642775278966798150948798365904906970230983455730780731503211384627555598787305963375122723619243166584339879429054792896484279331842633912687352151545740095150177404387693942158886760523034893821445271492828873698790087898974405684944138789660572388824389127858846156507903369448367382331508494144306119634213217808987589947048436619467026918463242343799856426079735363285013634022876351710171343983475057272506326115701121057424796705013930061306500207312540852829519596783623651153593361852825884941659090592076484173765509095365591145155406487584708460186547217984776651436119074746552340041228283958162926310530932824964558137798908442861550895495495537128617194618400633286875472898169032570345879819655035880867919666163143845933109531491131660760363252417037697984021401827213228714854256936206282499306724898823502170697636746079495574762991635000644317518468580969732029226048029975911069024928531858063347139889410387172773768851924216812022306529553678289764451015269031384537724091259050969795292293787690442482222281406089077763910174799946360398955882108165311494215280281756195273733290280997592119863122835144119683095429204514446642103031058779310451291195128001798233045442493149168946248768326045528048382369156001719844524932188737287416558182686390775098571794062754337508075002572785654685071801901661610245316787503199601543516647150197005506861485670427949508553135922923619903688338282920946166196904194630543419839147816695891339789976015140526533684066292554421435354927422649180299247402161914042310390785446623265431627840249813741939337786211665266132783781676449995842205644445522665339327469460824327602393311081011170034708952716261248340098422868187916224268854961689511273314618851087283380870979148121784399010919434705067358055143560492089355809082618818017142074388147396636178337839900899017063009951804742308228108848723587876096667068862852439504777521129247164353659430574326168229449626597170060574983754472195423761398921376014783433163011261812737626202357482702880007078292465100293262283957268055151332816338182679273488502065782467213927875907562555709873058779322182154143516874674847495538658402872234103834077835519115913545249904054635822652934234657611337611344945474664207104221484261857331988465192312693107869023537987289352947309437586901214696574337061361202018014587740598072583790817230499326600604551073215145936728097385176041407772616299133559065216396236956122121709228892409270129966452258475174405172323778611998127483281104742430321684711309966241504132166301556440825993270818655544804770558543824948739322649577566881740466534219755838310677674311377945160414215866569762973792513886447779048411029048928653339554015144751248299726934604739496267227923621381011975383880439713634427966551630044735357431331801986460779068724231872424278069649708076235287396005381070867015013272958187122895845077861863161542223989027435777679126917483076661537967252846643118353149895624403669148373433130139539646503224870715138860324228555806357029552582691338788391356125755668740230818388781221842468478777617201549694624837584558271257740017331235662514942726510644431818947771879985373363669191926777285671929301344233898941782088859757995872290863126664584985658825767195978080433619689258716787613394123188809930548299630551967720971193220907690618077577369021217684514296211123978301206172356146940389169465654190607331290723130889126474645641516349429336669473414194905216378588802959741380233446436167530156338694732413314242233965301004574665127457830080674524302062310088676345389910441622099062379652026662720089658316900601502342904169981914180606201302173062020429761183647104969179781294835358108922929109108621346767999581643501884256199527300471855972572190075499774366241236597782002286572333818922119870931099050904328596934459682547730004404854695505549974858865705457360673133805976201484729770294259897837080600768341523408618033873474291512476379577194627618446104406873290437309777868001593208066190937089836863365886378275298896939714337719515184724515086707860830301173415220853899617057966577882160241176491716176340460211538116354028200233946637956044642712069908100865815199449558451298491159829393412156048150413191089012328086748702904308168567148244259071743998507091943113364356989379229443666168171714213638381507379925474019496059818546751193410744113147476225904785076938007138343260226619414311158466663979365141582192983844829945445161411286713004328366043143572045458340542572819452186784049413062163712749333563263552941239400435874416077351218398972797069165528940757669827652266746762776118706747196336798613656802864098356737762010682884728575041977631535194937654990715857442289986934884819154722641034512260890603675266144707994219124031133362910793701819406390827698671533482770422156013657004978311949379188026445306701054337338857819252638904974207362930549947634209647502389056285372583175206021842206698352730104060029863083764941186328011643772090319457818635374170904714746029584754686587622972061494351433972048570539062084029079321545967797138745999731841225055231361194627367450072437468161651606457480289688625844369692032998063792618805783451340935641781608528770892238527724941366217099985676377311901688497911391262160004759996101685115901573682956691777587820118936964827455462682049295759338023587785332444683533591847687335042832246707000885410791210298298244188021346191265215400105616325643741318086796885011998052126197688760166118294302558522493403019755459758409772838865608143259677793069542299377207312310605950708038487937421461306142254018343464586154698998023653157398681679072334386546907669889038886893214051070801927676549869171518822530284710503345926715792701679077196992893221793849984305075234638428401726578535017772471818008978520162809604075738516190982696284475369211411698516696928489036752735364487943648010418081887728893958108048918717720878995241611634043700835005010217501168633059811858473487404959870047983608497168559803742769784047011403818186310323511734126919296502826228179878229463902898159331995038918435825217442474288576577107746292256127422132092613052112126964902575615248729817275740829601250360358075330116116980256868302924044109804371533898147643075332737202915000317659317223446555472262838235844703891396033588375552336723516517059357655181599027711627519255202042581861370701273214551967497424094992233763008751095162949570547316791868753586411330919900171180868910106301275648079423175054888240619844520745586675015600668033316354173616122980274499575874275016128268864115106050390286271110827340515024092485313706995482973981302036296739106614470687993413719491106564050308820383041520832600100442989144369931763800508559057422929296631941929609126030644584474737295027368941829361757692361601013568745015185082724615775318508388619219876431270930706496408669872881014877443340236763860868034218339062651032686792461903127510835155518557361271767219155953115531581083685119406922575174196104759053446902035364292377240881104441059335877512266231076836071599347248974954264092072784491863250298179681159099206180993495068657663782273589272137034675778515466351125989213051284024730002786630412198691656465226012437568434746666400834801918386969538695635573870153072117629945234601705332654852609640267887223275234699402235640061406116204581985207027512528000748407082374137102629456482889812493878407410691381657454713764602272624596034826602065958792643340760045269308248876053863475240375334958965041694881277256333799367410608778947138975635628119635576927889907512938843839932200239708643414650106910056120974396103646219752178481204686448730417815608369114897819969050558723504400528004407125122108686927364644353678732666824137662811525388164927651196780167618915580970102007111715276189174201170126522335993145810378473212204359741174056425912300731964693552752970776381083663350616609821918440215636496249397133693038254626331438727478554810771738236449253952933579632439522099445408016997994334374241153168719369900796535770922227986682987151892858073622366668317803399175873817817579478604069565175629812082441381061590067153206014595353528150971589683504519150839039417442221545418834045900616135344086721486382485850314246332671526919711705658400956136776071727699045295986151334129195291302894646180583208491975167583588588128487929446181073617219335235842165379325485242914848777631675347594989877996694082626388767513850530005507702754127700603424595090008994812871347975577436968570287708516208026928661225436943189834286063323083946984432859849268998986242240485482076725145066805480732962936775865127354352460898616075334560578718795750776768764319362503539767352450604757123084741567263924830513494300814421004707270453438691769855136756566546803541658606614822699739706585063405189741843601040105743436882260915010660559478567442347554600799909219061585952659952066606639080075784959538031910351338810951096240598285251664695871503900971308407051505831789998996725442361473140204751837265109827303511134776888626330706384120729212608684493416241405828381421059205744635403242163192120059055242043216924690700461161083301483172897499048178337072294539839513013403532551353842833588795060146439378696324104434167378155930210881355032048430292473906292399005754662833648996552898310700715481601918901734875747817635435261787361511979343075523572100339355230597020441340767660707529130856638779236282327563502182943471889304043379511835092279692245150308864077810254712076923528330328631594303741428868373634690312080975348028722138182303627812185246608974452107442438150544474544589800998358249014673983846911338036171200309158376455755786660710950828232580828946684367339256332646872701534116280643794592018642610344168057893797238017778728506204743196973169041185695576154874901710484994133054504795978333761016873386284127480218538694088231274351806037989028655809779355385050495679631866136275229227963816897953548667287955878339139675521143073324812260775940935460579350452140853717779615938886193479332617010558100534518178456921033185863291841615094690213282236777965770852411221547804775310442512390099644257939718090748111586932961101929002495800523791107054146813636437058734631522017354951779136348740549157828098237745003353280069216768243963826045473386399799853487296658565697355511695108607091983696513420796488954428743015079757080137251036769135521357847965302554803282221969692442890698020192668653792994334920719336169835105348803086980438798203822749527862167824967034358578173376275978254825387647369179347205339656574447520177148751857970442359231196964807821513966599200212519681459364359556789751646357493660974397650120095348244175960889039358283818818949286833433502148246945651511436138301868545195045895463249139392543086991171153506265827339588973561038567535152753458884033720528212628434801880587971999586348169391970457750805708941678901349216156571525422908421076503805030012265812256739536785250719046352179782561660448879284540965096147512385857694593186844479246730052890551135098706279268515976203670095868420433613392419485851209524108451809947098103251674293561400748102675537510154618881112542325643339395320612997799232080595415137867797207823846626802136286233864450542976162413053075921067155307296899898019296074785631849610504577011069648834748519389037003809256693266507035920908893258008708926477506447796500395849039873774439529274066672707964301916758678173026623033716016774908412171266366880643150294286360515436908917598238849408480318272248886594861381303963515020711114045761735571154399197593585739889699697309877859633300932758083543252641723749529396458599794593773324729030650960145895030996675963090603596737843784724287507344941110997588889410552326056946914228704627270354093138306426094598583246699027946973801116634200063172268578341780497058414174867671319686639355673048665614392512076739116113289316427677740128586178064776263519817487402840504366323388473958419039976115923317373294912564171158286328359796947125135207023769968336200502619275486310763983603880372158960284311045694351222149710965259084456592419941493013009041285797637584794502392673855630605277398304696293318694986742341428641055660349492369228933853455493953247226410100502798675546643212739462879767498781481013640059391526597770374531648490765338833450471799644493802341560401930096668118423146461836838680712990407590763246311958907447576474560233522948909783129810977185450034618391836800339024791897592209484585866133633270650680622020401065683002459697728169207154931323372552020504331608082756083292397699137491881531147270812689622174769629941690137293497273209013695345372267228530818072893789750253622071181000658904737297932959959335800402171672238797400231744954619707726605797756345553495138099366724869330458623758133067298101114428262195154313467762996619053746158848354295571246444259456092385693113447771517022301303528358902661981533686534112189370127622924162710507416718983166031948896005898827784231006573367623755968971366663051478095572593225759211115961529555496233186139015296054262732927407281047735413137889338137731143076412455829746030364931269335934973927538569305794996701800919101997617467591742972755039919733529033661167971766862099097442711453340884258419839630930530313774711230196632931823480003969371587504138011910687055998997696518522841040626656287932676403186915619016323177397148187546012075829244684164602155177331675221018074607586163299361240718699030276227318230893487069032442186856508004439026939427275361757263415657096681490901929298078402536942387098076607198004206038729479424240815819751080535654080270489300674459351693676993444439729481420615793012197324083385538635501066919655666425991017686107902950021250994652068048410214418668916099767583287713550226346301404061821082668964185060008556012341393182195637157338120120684911885185285953513031328005922137714128362144921076614241247865966780850377921753448844620621681731412673271821472163047058889604574104987408539258525803654625216052496276670424429040788748918255920934789393648173629726226767063624117390853338328907492779008163828146460229983046058923681544681549753770661123389168699789874688298969100543509104161601540622952535749994009488853085745607725243976878605019718402867038833324642238101533430629117249950382957058784675725826129854652052845150004595004488781618963847735741058176583593894778721254829180211253806093178882373517894478705359653258164743514887839326876769020916806547445585317001964862086264646203845674395722321811067328240060220570330851119571840997581014887017110374371145913159536537892062867737324674428584859170859563255337825742636058720453632301045980615657916342021003141105184827055095828383042347879423700778491218715902657948007347355005932977918812871552345730956218445646272415007182128698363588021094661005045728387650471484682471462109841070107757445437847786593990221266177018212351452213168272329379561309015070799684537638058242549982131478606860282943433456887992753609916960599379991729978588402298009078923021555257812269514207465195951343888292647007194824055225977841673474801280472170764939398717944737406627475300803676036630695820434807136985370581519911791451588404292763542732240165225947817958362121918468375886566445791328809809623571893193450889814500903424418075709631360542221499975163186668380734445615375058417742930297977034474131973686549035371265500381889889531528940614409678497609276011332204619302037372634634180345376284478470979553394819332760502870818991105084498101435555475966069691543119960337535361199800754355590325764279926788077336170279218788444411068421608911050018432227306383482021372690267184147595972095907944447505609647856519135816883444827328552207996624019225373726330373304453286375085877459027783498648686967596308175459395019675069844578923494815358126384224815760468674682602368141144114226670333053486725788457992371447193231550811813531398835067071265700730280392493405683169381358372393823367800387772771854460710220541274432533485967425091002219565817559450938369655417005304059227704331125273618922969637660176028393398086207052802192176571829244968387203832786908858896845755326820469746958105548134568681182319621977404074067277180926336054772934671014382454475831203110778390985113967146097401978332869884546424072537092127414654200291385372699867381773201575115455896015833832871783405834215987625316045228818708189328160740281851403519155336607856875029852906700369516157143254953583216749682003351074740219601820714732111991371410704285659025372781811850943140836592359740202209151017311380894132519867724839856767257450328991862446299724517709952673533660921551296606285263472528884313711067540986543953991374827797915749764174586274969573405129899608398648672424925647015760951341814660072275093044407357605300149590216920000093530846948632656153219680703203145814614408174832824441972001291969356282464330800023517700140289168484106820859725592541782399177949004537711033296501457112522627817680132913808925060050065904626781938432717607565425349850347697679367678645234204115545795984086468438127000459100568082572951370241057424766193847066798011384950911006241065822612484048339161256405957154986452380282410809618628899490633600034045542832899416126645319400072078638631946894880388475358883367870028420476568396669932623000215038112433036089740893490679178104800171217373219789393413080151377796004782709532377642883872220000569816563815762292486309774929495658917415366041691831057622939962603683029435030558097213525412801106043064601838904023725011203644101975298352922069756181782287995554727933478354315368247914102027368327428652661666893567067355815514181326089380223400539247264972276497134380281489002216367415692347892681397609642322758149521229825150843959514927346244499137826141356046553974744137386834347093370369150175028197728928204478577780169250407622495193109839575254402968666494861364839411587137079082803548186466745757012887852081315542190386891263620276820106442471155062415330386387876134702570996538388806334294796463450252529065051364662412160257141139091145967520355954219702945216675149014486154716560662424605154903257467624548975990079067175208425151720719209599728942943715929829230366842236079457396488136487890966432629942882262776152808551187227735639192907064064444288539713944954271807922279194232900836164390647020202648262759525365871654463831258819489926896265681626631485188326211026331370840922346387333357016102579039308699219674042166085992737205373034580788131659203494197111077951635536037550247109654786478775341818963105499950398453691821114076898095607644010854850978075104832174718301483917709348264374255532981644570613696798652991546062501767003707280483257090106407456666104749437672704177615446921208576615289740020717697655627186103586668912097641457636650642134943402717596877063922032270865949231814241698050675620362259189190749825651599798353349645316097630725740983113378116638991747489669395688729403285108702764811677191935479726784072942145838002988529609813682880605508567678321587827164682999252909580307173884666342598547890664960688948633552016012590430533282599150789999754600990982154401090657986237700623591114303535518189239181870971383434942497780058575067528908281557955518836524145624869480412323199065155295726447270772055987576528459576527714691769163409818684720034823065911123683692692153541483035321302169908334754111084182449862901653470375030360458061469919480047306013168825313318149713671797507458811155488181428105594159333165198041512276659840166399896593494216847001139891696572122712462110782804608910264325150710866725842887199425062351138837283503036030627597121722444409861701260941333345202869864283139452178896031104989981539448920653234514826429076088182806710074316190794075428251016507798494677889807060190677109577765254768188468627282419408146580289831054920410493702443785012987284987145636462957057590325852641343672242253131684443554595246917300220207198629203179110426499604252152304514290584165878564409042044727598751080841791313103991483893236393950586088203721445181642219620188993313590240498577260204871320153168985845534943067033754832552851490622436437911294123997517928148499025927731166389529870399753542262814415641668258754483921275147487451276255473120787898371849423590348364233464922749689129997928218799115147276704598860050339227955720505887049561391298077827967450048950002426500070071775210121222400690728775973601332801190848100122268731901734262208903007164368935065099398177012180479736518028211846965664723777487695566451134389072242969029497243643627202357466811071235535851703046790750333696265909974522845370512266209124535492427301100798314304118371684454290242869267608055622030830829926888965096477512766522566977151432953192936495424316171886177741511977180765653368355127014799877672101073367097013563315409494137453871390608428891542480389629207816332155265766389270880032991935494751709007252058280071544648643954787909920283073924200324264011894020139631926524391784019354519491858532023227327932379444218428530358613787792988562992894606847630881629598746951336720923024851430076779468313702237311521812361146051929516597329427838097094747485961931631705766565997732648703173915335785395358173427046684328907285531854152299726302529881107585566861364021349277867711945117743835865646894471439156052200973557173195711963379280112182974203355068415427473665622782961290699321270260293776234841948972483547473268239244123533750483253894997688206378609943386888552617933779863895000608586092201177985204222418406032295793959655910664862870861927737385308032552656603977597732721936344759549314773579061559447831273048253751811872850369098882929185311374489806456562762293720564171739704665347509976876536676045469139969643324188055000937832249600185856208164256066553368692962453254159208751589201799180519990696869019141397187521658896377464002322841277636963316554566202983629839170323222271467688489507295910771628987387285759151668267282733703898251230189650104188586872784068268791991785430422115355334965418604610726062783730695161725315387384621602959672626670437991685269665923002649834314992300256604535062024531283323435963947302728650717104254751787720893305766792725097849132866319825710974813607277404266514485072551811100433421936149866742399332175729917844520931874754580987826270359744250168516620815528502221292283052044657206267693256718200235623772994988725036652762875373937314314555351388956050345340867266056153485090617761222716394712912362073888261689327925511593988617102727265911194001790794142620780187708576411764628834334709254021964702639757349213450305327649985982021529019228207984944320097782806163340385667278803289598355451603596547026224820599007765491210706552339011410069939648463096147237724758775982760467195467025551259021286384051274063663706121827297574220223165146665930082717202902026068219532676362753992758409344128028087464080412079037963146258279536549829047372776341216474635697963445338164756903243477309437188712303796249871574424097412859921756334392636067489581665827923079823354060166692376381502730545407864778501726014029167794005402988229335470569978154375087024926213411226782682248120512836084809234730166662632000503951079101683957251393964789406418392409151775400736440028258298786549810876041159196051431661285491522328471266724526747216847793119570874172309363048672075707940322783406937107004537046570934350433401844238659245358861741212637110381901845904577849005628951322828352905249197355626565789376395807627999586824308386342635743255096156366767258383004471251543110265383557374634175056850543719828828381204591703388316269055226728580437268617084155015429969123537464730755522380075099725376441796168583141711352125153795737407168398189326146001834844042811471458479864658923763869555129811434598836426705386980607646581672849161943320465087859038307214587797532220829670025229392544858050219679327978008215132274949435618963511763293176123161482212217039315077220966470405673094613322324539827989388586694225908286248007345561623351895480096366411115644918782538477254703684142464970781129308990671292508906789711658283852648946542795598560726250941020082376262086605131800833244946954405704250275573784709646855345092034762486434790106938528431522519865372595702672065185987536382211361781550274120577304090133174068558448968168303934278918556983754534742910981214587710565067607103137996790571492037308737261128022355484781390308422265485403496882508017786220136879703430900426276748998214686412936596950994262607606248620950545114608336532284279417311227665715781159139604320681227466275894651701306072704915805054628991919437761417543062559827115521293347771168445420328384511672656060124096123543421689894165792694551669364956423728169780367026539064182379926136220894690034021751990534496778413882600220369891056575325044837700555989449744875213475358400809796816199950658946618149771861069921993535452339152467940040626045060526021925351019558594866249325676701507716296975222332497398068268635033136243718330472406961615979300754503729282660170334546852100632408288927574253720216307371833397531723387779780499886140888152323226917528313476999856487585312981350312885359114670722598838838891629872295038768993947893960833963957796945257792913720365154945298895383172979297104557749517453343589199421070981293999248052429994373795146712550709136943795255561622466003930554092724865889387414288436292016378964733324305142267057607409358623156819152333762781821746899718762538369489926786362029808353810292211445948516261343799849745787844062348230156659919150281946437162290094321068745422628899669211145933379137401740082919652035902757093336978273462284929905167158437883823203423055608479189059933377404055274831980659801988903780407671629494235330405462497770509915010529508377523938506015779477215271166598689878778746513331416874585649635392369968131646623012430767917814333221104498403372772994213097437715612067302594746407752097597526694430829730063800471071955765449316676590781882449770773326519285847348246137775496523440512636728238893524414230926244555047514052751436800810194249693718824552856838739300652855293663107467899410905736025099096756150691954214324337388087009078233927843499251657560161664239770312741437878140329328298548246949629936236704126306569709450005997186573727523535705369049195917665313427605380086312887622124165529829624732991051129705390989136521452784146936570288628039169914339490211280683028332443852290027108925367826072049582120352984596345137771980143990444076616141654461892254202634284385086426017858932426733887199983613069861680487260393835015408790073981019897732302270215632124186296647586051152048522858195453040033692523384372759550793385809126464485750384058742754915753077239666608232804445239960876891894806663968935724625107562185452102602129943518105700745708031796693100947953949014603841575585710326810684851289561503508034439789048427618402439348115285842571682586529299508428325803589693236007321350352737019529007474401927174648896103930284942324828003617356616326142997136341477121580678392502768445656200603710073443434697758356239314907065065667860805065756152432882340723763027898019045508562248096143574070622171179857788022418183043233868283717591621329534060403528044606620536562408241971052441980840454305598346856108582524402446712225230598982209216834406862423215561139732841384645889879975212383406601991962532238034070873560264230560735070159919026019639199781910283554792846017791383301069999236490427214606799244492833901655182468986112975195285567820338966914653427274891962604555735531384851035519894326614315968809148867987292753621590364191225156207013414725338147129083373779204192885682213621728006942251148961391592683928835704703229542818193510308600548745262081644905487300965109567906159068821924420829341136559629469616465216462638616232952869196015000028061796671096074066143696964803194801332807734050039918508685187691217771487067875203302443803560903157926745064711457363730646787637095802383091164354421837655888040886417131010217728506886937255447801856067190374388757461341060210002380825826401372116256881738380100621830306099041266061696039205209421719035184395983499106080660634310755235289655941517138599824813723352100891483197349714446224149323777731460061126799601066082913149424328569818174344236120202614540084907970262687773394309958311026235816193281333897434310812875303692834929552603840484233047233690114875677303164821977082933937814030581572649266280745753110730062559598371814003266300922474487866509502995159181963846345294393504024217185382099449556897280495620101759714278200418213348684916813754524690685245268966592178974737852933075651458107549442001605344504604258310825527736443822930997730451599173162819833804186614568025261129283729900449130322885215506484796317089417708082746940029257505880995134830005542452503420831235424584437880660728070827132494469843538685538151400960160927019860354398907274514093382102877706450730345921634798549155710513044278247264399547450076887864992289322550450312147266464486889986278185533976122474977948778877299821130298470136408044308748682884152073551548808609357340942067633070379703725186690209272289259295987025277857406054747906719927331076955542839341459025244973322894443641193655895969884830138948308958051222931368594351191155909305244844770269639519152812624786999703132205309122355049346681594926735975212987527009730619854713978280705881803941268047307912250024203550285433112407319843401753226507954390095141209267648739136447661562601388228462320657098911945494997579175139286422636967537279022933394610761991081893808212771115510346150789381033113543328401944156749827294541731435259211946105979077220469699677468907305751718132363376165707547840604923730698007133031166912367144180454556960748494056462220645915024726748319235315551740664453388875895145319502787943572252465031494759989523388835991226412932377238629728875130380498645649675702724863948809645510611285686548193947718598359268755989174550510560086955810501546071584292647706168710461417798946487753339779302460245223658614043474620373565630021208757841873714853086798310263856357774739996009974314555799797578667020125056465472402464675667397369710404960536641711031254201360118056934970586826058028048213475466188013851532170751843607510831661244878159924734329388694728154403229915531615013600693374532822750014638889985720971124711545097527046736720108936311237415083155880243810432380412441110345071812180161517444485533058496296061012614355781756930285661172072521713544710013492625007782104386816847593947740915779309089805909900642416533654212549279152766853950153221873041329050263571302635162334945641214721018015500283716693709728190018740650445544774525334656065443869886338958514599689210385269254802557447964664867452685971309909225180098967104416093463424231174253089219115760206007855616329412296616907651563853023824254244694450119519357763443862921203782377314476111229238688927147597906693592378105653923170264051434764070328947016642584781086889119228026905411293658648208698450946078117922114523875087082911675443880044900348870499959956873231032200111885884498291538623411758313794201241339857159631213447613666037529635970430824573322417172048383212257835934098253457859938318123966601204283243840269509086213327571406567528345976717926885448739418002914611666293607837058179055384539273019276512916005447312031526756715648093641746331321444091550394214856873513165140335183131011973749868812502086444261913063085595286981475962619948913447558297188295239801619992829163978321853139029326947155072907344747073365428367421182131111097585999134109837532150852789147071791974525271687422072263896971309943382438274765124339232961466639538485922830308999206211073845538381511744041354268545265172047054706933321582558762226176988943775275092373249851994904396106811933869725044701073459316215194256355719615347298223850815589578728406495186028200607749827626505333774265206454783770149164968416578088847824282764702277148987041345574807171660002956177679671482067043573133902420130128482947733738523593968699883665142812445198700251261662302964063967743562415749848410945048663095916229302592214453119077110017006346306200245857281291321607039643134683376360203942175473705420634449693410513310232485564382663698875790035137553700639459540882775260699013092846496250657716487841862515707472651760580696566504287183808928378967994887870672889408549791444597008747549529085879843546089174548277448904908588664498801462722680512447993960205768891105981767914851579979941476802146273663831146529157379239992415089667620878035995886336590833708428983554395389457697040239057225418037139210416405778529035894959772191661166502872739526048456749634752685747208070428227261479863081112279441842852788569696186458481617628558640523665667546693119452751190635232398062880912052306380838374239243209278183622349349640817870154312835457275963043134416718775383207959845742220141060257642632364558406004331511603612857636659749535006923424527132314231345466496149310488631658475846385581409455184736145329572522987378769013950762627813817045304886712468084680259683613719984535312018928883258889870445823400641770633293366728154403518362600945483778204995448322152491505081068805251733248438977320652567941393786597742761878085751828162779385648843813693721301824233625397690227559751421676115760506102087795650447552611937486145885812354304410451007849716729203899423228324197739794777927232171655024326261944160719231046496800628646703840076187428255714216758067090966070716321035406987684476747742709902093468972411438374690450614536192096265435354273450337051693118142403502424508437628249561129571913418147837501909302493771257939340023306264131516910296189626662680726217924601729477016446110070360797065388893685278634916718045633151516010225097644764608589255616952001077942434736491478481027816628559825333605865099590492527021433009543292465730475817057301947978819349445257313559545617790894805856926837852499193032740540365256957631456542376286536307308506900736816064632639249908422457087049261241786047102498460145036820962348219475735339472049320442305354716609792823714155810704481484197549488910070842954047641531362997191534303864872519022802611660230325164369020462525787217049118477737573468735389742399152189653501936562082057093238688578727488747303212909470833042306567221786808686860363489942250434723150146832086306818509254337586042330651367854580775865674917217285715843100577389593434255725937933679918486656391922363893159361831669963648507165077801300776101463836627704404274543570821499444410318376068291899449463977987657068456770640123102684426367428757443571625805946635192532364528946025852567958463681933732693279690093624263531363619659365240357920324400491255907566056494618843727252570650593543245924774358145449264390084479984967694517613287987714818269922787035720906798593895758760035212927687153530132603967457970565686457190830476856286261262189135451152701494742601032697031924135458843445664648283257963891662064339258278534827474874472688773080174703856719602984112492885346236566037745688101843297175489651775121289827838736366622918071660162124638374033082012173945074831714937675773912505094681881358828546270958129089024535525758292752914868104384687549626771299625195765187147488077284870382493855271669676055113980923365916435361633557649209916414601866239528376568729916254484874472129758223564575638799519798562277695674846470775214203479246758337417337550042146920331710533367219642065047100112650335690788254280278184110164459471151234941878566403095667783301401954118720173708139403844208731804604404375034903691595626597206017559127598111891360880989908423806205890724365288167313441022459203123982780781928518322089042432204057141251048834162465168820264077370901469871201530804981359603485370947861745492899528487465224056817907282066601337849661616137705236805660180886602767784816018842414017486623919287622548591191119517126102976213350631411870281429126734146350325849869802329279245869389488865712443085340336096009499469858300595129775082230924407875207345382344118203702720225506481334927054021416146866444863387540394827914753190361419136044336763570283576559540386964207827510077991055164937612641270428185344839164235219203997158854444299319471856330450711429019563264396879742165635034562368334679612611977741976277411684470011168043515768148326298760850912797100312119212696988315743419920984747901826610968817801777567339617188991479545376578383801688773336858424098162372791190644649622229402982010576442986201909505493620163736271344300537282943351677101045910164230843304487434906650853660078094068292249969670564899192823778421605397924891638197030463679439439085076760157183388432015080467547339802574535462643927345992199931843436239017657309717011150393944451899923985433957858115765688219298842915885870941817502095652126248311836939410936252891219517141230533425037738601207833422605416880451565778528150185992774477364232103221579295574766109664148232194238387534433412211389225991555644777085870195949973924090336369299705710220744762247269692648923626415567610472097076562074092380718087491581069199405647432608905464727231224257506084323073961490657369155819923683151588811141510271472181933766319170118814217316297644771528399644948739233352090317069078747293734822316419484946509762486841751084526862881494463708533500313687535628141977093719033747066160783791527896109276664881261541279528007625280075125564502578481778107048266941779907488651627715594148181795722344030638837851738429613923098441530433453731516044695119439250182014210791771050839577697458276426051865656691895281977720009860093655046511916317745509474660522765793595634432811938815686637543454762522631853335784242075124962294877452520087022749567773943482818251071428559517924020334077305080809507316812151180559381819593114176715119913009739775913125973556490288589388939536334246629822141549624024778929542274707063342253103905591387246122381998439601728080843888295663895624948477043237265353526883125699860040366552731728821517617459146062761509032582408816794008118834224511543861595229415277587281496180008922462543414081373324576521804289729086951576746528824641058923814149246480753420262043983610940351724676285641248439867240621739282834154462223759902301221443807307955470484100890451520486502527762830545645527223336185882412713537457597442416920452353685386743619872007860354909488132185364979509402348393275642731462851694329555518871985086266637814444737172364950462795561383829618435530837634888599279593233082835871331543745561839448708503671480513835255741885850731116514037376725638352961614130802184486243702766828017449366351942505955041095289396961290269067871911658889178793430056665315334095528123612526260576017140133643122672585254389409480569379387116276583480036361599428091795299929483759107445150820380782914098378310188832670592414553654589229383163327813933558229656003980027327838709833040534136677757531874179368261459306473469255991162983022062550957927500421724276556594338762313491492142804354461609809036055192936505449233019084083121033270700658638400522356593235974776824844102096307339928259140770870473072131431548531241648535987200898378363923738544344353633847374637376563144387159946898773706112449752913872560151216408406037714607485629724089940125109362020679981559692415161603402820361592410237517627628698040596458165480374047330348576129999952160028181766736729455538333168971811764658817089522262312544592196887242368886353640956969017289955295780808770303222156292912749801226326035329369443260638847456574169785986156196994369760297850800094947627270509302639440105960895168312679647414745354943546726028152048400547517227442946571869229226248534261120251707948375504980850326755104079079271454607215807668408433094003784776386945059132476597068784698137979781138046082926839858114486212720255583178271918746285343757346713573211329968629456599632630218867885160855442432618153379137593909473598380962586110343600461303811093296153151912438381433867778986576975356673483544835417812745632395275212746025414792237336452709156050975762089999673331401342130158740689821297452536595818050740564206304588525654824293223104216064342262637000362533189356604136001238190361534790714809452735434917121753163194459169298540758888484374842264150245846280447873917135264054398342493702276244498056554008202771398899618966518552113148798869042094746168615271497158458891596808487536829744854549601250259719667966623282513320258594884602903099844163131168467022055060997874469944644139107742921098337674384963461613439442306429264033125470421102163578724997721660339722192528209948783327400417729517286417064450365331852809704808207857289313305866734167892969229205297069444205024438702563212620285291649058199439183191617481935204427640877118339333234774261461914127421958753165446850956014530076436085057360657652994752871675603616549036207325578899904383830857369386126733695763049916374322185703115213240126951069238711687874135072573255370449247736999142871368621907899408662137190351290039884487252141306403961466449116253398153071585358986806803983444520567859129718046893604835629981939794295918343528440382251163046409635564638975252495444917209405557070234024856710926071700442478595737106853698349008496001924790146376969470225300328461246354102772182847102283130893569781226875312044597806664132510053782581955908119249890945565163122974285751401621780081428434043438807263152337336092177276788175941205963191150770360035627446681998725219545331525209190333110946007288458887911058222112976595655083648783624597128996538235414288966467436978622912080392074294451408224099837120579524914100875190801319361813391590632105150977331438489283849396176073123331485248244568297412364496056144154559791771854912913856208153515925230675603507286042364622432399322106406594096970674069240616069977124475188424124952823499410427094820076991752365861945322201840511801654032566980187822231507240293463083085297712110653578758967298431062059848144106988306420748980785843778910251024745383114730421773462568732359705083357526380982158062664100056357986564077865060757116558596326007074865382150687904841412754734693428632696960510623667026126381968448351228499791363486356600291129344836340185073724624657183094142085993002617236059898974452368462974728089298102698732552527785915342464226365123030969865945966666009404958903317031293751711839826230481884837312824645475051221539655895989108280943176218312763634801625725585216713039936000700999630409490723046399984219614877986362440027528367581002733498234559517453596416702091740005738983730377646363075939372253410772535105891603071540296716299783393477607240277191513828713485252924378416487410952951971773499465190825742204692860563038961100448231038607136825626295824005750250826106379021972106419120665341910481903428088434882173386097277652144003179167209736673185028155973342722373803022315149895876373045076782284568350468424149103610656873781973090447040097443339183765588546563952647612105376510608634549732804086919415746060846204981070905476082800731832437232519042756714945527168087040049272530795843961196092944828546523770830297255371289140688619916182072920094497379800994372574503730313606251751183900328392511292703046740706473616807670112776391047395882843022050823455171594641801886136966789885983299919656354834558214450868118495883962050808787524763556198979628032897239204867511398596180544863564021404652644044101396084035207603948910227388120479518691901255458252689634436712555539655845703937055851186089670658313604100410090596736709257107914116963921421319378066485654343883149202286375238341377870397445098279408687528184850969529473024428453349492769320658265144556717176596962173451574728703848082185333671674261479060514129183918872360694300116365149614252386501018420885252987973420694913601534837951444158237440681745715574948055747264917320800589426873062223546124731624971872041242436045784900911405957227627731856624049679850213173574043380018668002839878418464189166378694709368421461959908347277176060193796126693828929873569632267219921844755789370144129388816174317437789854615154534030190460217128301450063945072892171792082061903776857181347668802786493499156673683354406560387695317326989973131107410117458765015865144697332081044415538628493094851189127546383229230825978834954688133486255399640041682335475586404532948156049105853851880193408978614467413821036482935010663633885386037710012342654867438675221221151220175995423012046222173736522205857972169125997953923359734568697195882128386829279061575476680670807874119976144383510044971697862689606428918465162916875703526921049278301892842400065654887607166150467989963981306799007134452093020402590050251018818499665777921716519589270425050827882315146347517990381128601217066261195280114721926245717157804335883785565752095637284632581394187575582464596129643192669768507282190666896145524935938408462072332720509338482596387152396687627178601205193847120791357374022099529279422984995873884110459505427050436160230838513126422833585063419064582580247288313932562961874016083219713772064813472140266079681707465407385248322011261346118342369429742713257529608347693986891643435915664708639803567143150642377740991879355053160518512548512126339064254143111226822743202353658863590107909990738683272047828612952795031137389889115055925848381685714114536375650989019100553247660547930024535888429636390893319816846913564029011118250321692883095951504163925564495671840793718050061977972232749707363894865116718956994406881870447191727355459007158691664182288406641236699110475645909790013845291852526281586281553326328069655021713609534236260842566640121768782544362528609627151411036858636055245605789900465684693823870113659887117358698911562463632028714927655407034879055085092439904431616644899375433514590426257182178334879858502302425573329690541256466055289691614370693934803050042410653422233364177374294858680069640706173138151590306843898126604160645801224625071303696734065029445160956310797920362077215283704868563085209718446205667764574436875017618010449583087824662840448516236300693301495619447425873170736815296966350082765543847085894272822832493292978409528397602342750474950988307698549800847851550022197136289706128983187228997971318203582576511528398888687354410379517899886149105583895969150968983090439776137176788284212028810547938445927370614814184734246141493175875014276537581110009345831036489515795226428627925372047530667669841988981108498944608636978311706591783850158998583741553829477056623635897702320075938337720882061174511732229486948502649558375537743943736345307583657823839321046171109997404258886908496372985800179478946505695701746912131408091317486135930027025044665132412682586623528691005458035463783130475786227125157967137941124083764726149908116512000753987564866391795509694501886130386275905809639225265487867739873234236075978570962580711328924104241299445339012072518232950968629130175868864676609265060922079284521074513804461039040083108963974856299736972970020814826961006233518553120036715490818747003150699554684929773101441240964802252049761766581169707076504994891017830525244498156497815625849466744279527773576561615498815607706911439844732179801650661690280283160547211331531131029176223621978127597177698008214478918366306761305385422705266317285171197130735093921412494625069373722632626836530513157359315936317328063873392706471532685127095086204758137475352674661179175810229113606553540782446689632220718466583504894378125811969871112203772942660973057447522677572918189052301104748622415094584297617167084574632928696067216943589289038241641704690678951346850742523675592687259738068626583563885848158529156406953438165406139297798975312522621014924597603774105124279795017032273467111145594277875122119825226927518338116125221960829951265200043408384195455123984856731549773654493635183048402753219858220043845996580379684521168485743544476519055131031576563080062950465175513180883222424602350443825708743254731181743455562275345590134827304915472843532444796469375468060453981690415886151758230351958312965711583441171858714626793408650575757358700646379947756497082414709473288120904517258899154504774374828189866725043410019238172001398081722366045277898537841257608660929501742767283595307089197074312886354720024445429999895976139109944908558476352835174628781681910405209005310243517093657953655004675155176213506973866297741752904203799758529097197684079738488081346440792230067289238561017375093621998094019548560114887613967208026319349011418455096984636291688419955636144648375500417998330139694833161980870146900044025163346984266869172123621590762385808996921991365763851127436093645624050737115927172461741943636152884020046728544837165494002579151687489852202120085735328901799129359296778762982075886899822716810073979326958214295906028048316897561681934036681289614284942276929515861408323089227489020582747003035624170804989572592558145760051939251339868830567864904285908081324486284837286718840402441599042368692569395219871256675507288661756833793848862352695134480209159979003622964175895900184060771000844948446495404293158315727939287113894964952507917290010960897889355992430181570520502512368252283227869899686431801845253684036720352111452346767961998119734092346213952849011615352569270658381780007354986601652291615627929175135145741697407266865838120401822397236365227090441208403310081399166058111644588062178113219918330868978766450534193700899023728399116022640398673813976516490259608436960050526547100701697197643248434174954053048993126032532100140928411661790885865993608846227752746495658231102767008572258656254187306195886847255417770120971052893180883123824325950907045542101798723501178470767570865250310180274875547065056385424301574160585714996366278706928489788445065376890416753671399063206208517484682621946080673181337952950105328615315075572838722797221564624306558033527065848251132270046903032346807339706429558895201266809230829300097918297515848605518989149888431641001863172791125028991852834903614345557354849723084803080886582372442562535481387431597382647928817651281992206897765135265690140809372867197640361639542414939481146707615691206581932127196320076247229912130950823092410683896481297810786298004199130355390157505818618714991917567271330675920175332788354904812319381577605438571648686466740233857866512925347433457397312070535758384136736472000115837306062691863116065656481597922258992875393732671520091641474455883141434150815303257956472299068291651153573476415435310727330140343697144838827303616092130755192764372619656294057466428121251878944148347076697688758454855697751212241481230094611141859119061653160810945941100093872969135390165028948321951711335437311886375963344871199916010116270285846358067100670242173025659016751113379996588916274520598455969581175758604803049002922843482806363803369048461754853240341844228376363693314619874015924230779806172313215676138393834941666457641620436088008416399069685249577535751256029340833959770440142617530887176384014103595153853822316229238786373929314509875006850781101324076098045065272690772468333843716336882602542052290055078351546347304202498337846150855322117703859600168211903862873751465708581240308458128872040962778662620413556778136535376197619427502057449653525168628604008502050483682179075626622250269744457427525810195848684010988798325646001735792063487880610787284719785080574496369381003225822883408660801500044886314520268438675540625322019764976075352344225106498524973379881122025958305279069326694467518799242039197064013894285610871472503602972464710058042653107170081396821128519282465676712330472832057987040647013067680639813673258864921450340854886094852530935180597707294618109019229875885627603103573159167630154765089657786468134269311553198905324060418653170655186839071438897415635046671613880422329662796013342944938617905395195600990317390639732680055246271645326769961828490014436934824280938778613519777705038161859198062584424271743125783582823066157461740390667504579936145487728195176643599828504945832836160588468875699755296210727759932027930456277786707119649384617237432599662127059949813439152203179038533811394466611848788601930820374902273353033072221977364924758218021530119219234574386690425768423499249362490070554365187532323406381307082689184594126914146017163983919129309543652230468249244523345109491277956638262891988465376646108778275962595723776955344989427319559033104959075459008836985310103438555172546625830713458810588909252407287199920746686279308310119497954735976179212235509200974638100258515085464698400938265255346687437812247238126596818386941423631426622653734006349215572939639100173481218766281796267392443290328969168149011212799382315512975228482545623570796743675744678208765580184933565054453130717312297632575042134153217047004288922230511217814369184834849630823987866876644798459355797420109935103721321097429570926498761829187889858460412361044898158530937117389143003441973158266882016800312556990488253086212096924063061454784569443316308497910983302656603081677735644728029676897482407653670437106030993249149073725943405808245359855555086334215535513486753395647838065234785026544014734937683144408026842547830912178363396278878424512218117564957234384221712205318449187225465913164142169444850073515213248670761204297735037381086786499905742038889035356742101344460769308847586202835704505172914687215521463556858922240370360613484315039702022624927206226306678342688276230615684636797978599611513958326673402451335418154090982991391943982986215226365049224420592027644797875717274267762604951497854381690061421087391587718958382614147758794062464537106341504757237483856019037841794916888419882316495582601347191258278754615499890548712109018706499200211515509809589097114309168650099346811390776186244592722002312183530895095816884665727772044235977330251648034351430167341159750001051343974951610670821967991772747924191185596177945021474322615893049788555437047885768609772681607355482020821387317022692990457242221604021245903489445964369430673543172933583901790387402028270733882636863380512903074284262244269788010398113214907759297260668116105470361002861930176520760720869574641590249732674906265586586469583919690239010079089603173570255586913867112319055558036189164644777743743473730591525308134347129607672204825243558397460041595206507777113430333719647196068958074519766659651832198694287717798854551459013347642373915614297645286632611992886747584469844340977985401077039012113203678849107054840376329916553465535213940569314126009243498763878091427728330380995994965390115491705337547074070519835811487247963712831908973382584381729652938739145450684792703184516757633930815646449540931021447487866039694275043400375885774603005297323340222511021390726408014291459533627633279500480643482073823918060959964063498175537773578921443333308114225630024610952785880464498747192021388795974420778293397276009879582907334423038003788549050007565366835163995723196204181610267551862696083076959044478451766493749946336223671267893346459409128994665629914302312808285013077403495868501872041853276871504379984533792991055400937964348906712816971816252057570297583355138221810515413175087303021554735745780080756362862050811655586642330373048255986731421281972983383632398564028503902161113845491567685181589574314650595537279928470386454764226748200225375276109928763738501752763391936379748373384657376680151042404731607233532198887219040585397231742992339405016405056560269609182141723850446459475898650897918664744279474179046427393713344456703677267338315341770548312190560452659259433536803003631651926042387977671390100067082446510342389113229257542458769723064336091245489426049910237221153873000116478972672931148114147207027682354872893010355919432715528572398433657335635604891146029071123356802034246319524565523015809973583739281467170332966730628892294679879113489297621795739961330660298301219331625359882988721726582448815530840522529178925107483250795755832294671939698576223621088199775745572093081873573279998176605325986304080979363721208884211526143564713720784257619080943353172252988897088617273946840080655665764130684587730802953079214904354812435668853720105142687656982129156377632053836675043183469274915522868740587954713367199621664964753527904645398834075864696318459358094485464771656845338385456633291334839285071901116576111505286104889366967363402523095294518817499086534758484116396797095664387802207469422650647195885658715942497680709094408683064625600913809962922462535581497733096416812225062051680814644520734571717413183305118520564548603141059738656775648400203732702455017850518184605783488695445905290806145411732867212210317872545177707782979744197062799554345172839371338005274221194083536994259411113389282572290767011762359085881731062765749911701069209875132691442150336679265508615516267269099474640010205046917329531647051583876729812879145117740542130477370401263499481593012284257538292566559058369323112627775230070774162510096753147224229723077222893419330264527168399042896977512796588251622262845587901287311338899371098227385320538724650790617464846997561600262798009699799672325034131425976531744200738787340467160587697434829279354802100878033063129405121865949030342572165223979519179561748431260975504832340455194817921311607045893479435275833874675806431920071939699969980001206392967864478048863123411489275656806269792128453949394744321027844094254456083459284800219602871732136736224586781043397172074303077685396640990079638559724836829900018614944940065499748137496288387683471166280898298397211678306192835220990040872482182640554960094263866499506346558186424381536712576768404070816258037555801494492420975681205525006226600652063467560843458871107568873601989988614644671132388283256238540826123053812761031344995624274126471540876362977987997386841066067289594211975939834621467040131958816548099021798148284312543216230870437128698995729116589081123114909365706639758507839263147246498737375500177630831519311114704957061824124321569548941942697278939007913662623214321370260056761315868141114411887965399791361415242961266901789939866393295596244205055809512147392356953459370136927125402616263169953906599503143549220539164787654827387937717660669622930503403694974328787777036809930709873473433373662133621191261915548423925163694750457366104382745495548816306616524957742267287196102214248164094814798347174260557048907631977503166709828927350260007477471190864211500042484087761909806325129221841840096618096420141445448857955544670476036273898815941369331384503960891373700034934173969930006260420571289281893224564979087585154699566976932412712808528933549731344111592198414134968260833597399187305549779872360323590886857666080484061454194932978598814777944182565536044913036246157205508962580987140165867924565345755833669046162072759677794271929750874683973548650176638158620614486395206174578168366558733878379178158430937668489183832738733881410349740430429285480848211145762331856439062370919695226567780440104154383317906135707352439198240086417511785885582847091277554718028545016243928814640565824692034850824026020190958764064131890890282339729105355289647274387671935863747351861841005747595770471078360955598175525474160326767650730658341511628482665518330119911208755400855546786715480645226723702620825172437307289594434796086062115080722521435058235236126854787381633300140525148474467380160556901082807672193230461865137189724741312032731410483626647223061995372264321788734155989753448657108644136914013975866610782019471126466580012684819953093512720535368794708800540887065642585296765787280673689130370313691823697712885916399657554824873696784554095337662060017724521005526363192575494894904392320103936807289199301012997138968275431563226804543220526766832596669528507331355642277218752550568903284057385050588203350347938691247449377954787494551066093098085261687152443154356771509022959851541497477215303259107491102521978329358375453554047708843161415889764080153466374954139981943159394700780675688907441478538613373092251534575742525162227450845409868271746726132414588051753567484933411632645727161720855486329791089144314361952568931740487537568001545169643265781597704505088949120239897804807029303198073103808669928728481555341283410126394284206121235464362530764602266381571349609584838084684923979687590820844974253651756716312108058213170326952805694246150074339036176776799810305198200109371296470530134366040286165637092425562067170335283074079742645367637429315748259958857603599146180803891819043507041189960254674917952830768738604853980337245731675199026854553996667612906055549807027509899622614589627978113033591672167070311886866724196695066118349812578543329746764403334737083149632352907860856447884950510369741758653953039467034282984612495191060796941138802420935546609033923207922734486001083446963910830131850954304630914264341237336585936643149240513583326071666178031967740181721729963025530637207488844480393804102107268131416080508752579249719871954268427555833617209905688750945118024802219198432998076448415213972412562109787022998617749593965427346644236601677733684094402293834150160806646398015535031127884200105150381508412678867284909396695233842097382621781442572212329398931244310888212440175113229590975364248216865017648962019824304747712251133326557988257101201394235583270174083661606526377036717402003563162542942349967516173989226542886722598831207154974545230419218064889597807523759986770121926708825709177494390080796107027344252947293872754983941119444653848900339009392222940047706220425175592625046180626725542296655921958015417735531644871158212381682523218766231813579899962114115205809188159783175570230809590651945436955856287110571185232710571429989080105584267792102498634865511916739063653880165882958204664009061539031692034475512428519678091296439169124218535894048916620806088537521348933360382980411466055455407367320173762550118938188072526115434823627865705068888069057403076278184224645533170854060942883071612671689526701758338204458284857161008783079320999835548896196037364916890636965262640026630606192813848864869141909453826866616331881263163285196093658529316722019930821737584026034781177960369869061326238207554918680481006364153485309280902535961457465653875629445663405386555061595242249510518468176851101167973300850565694109510710468300047675360365546644165830797893972404516258843476150831890020619559482969540235710284829634384422623240000268708480910230376838474705222265219695115443294621414418338613638393434118975929825515112686544020609205173422445602666663831999693058593825940424546184744942290629801691289889056376197541831926632756601890659874491183902006193610902058263148734926226237990913156653788215665203749447494471956890216707597437039091428355770365835750885372587476427857784724914684475304284683240259175596004560660560516238620724384358379500040835064938163210695912802899098113168083917761791358747102063617455253017899731081526191714646510598972183179909096575873398378637035235737644954144341260010029296858009415388656353084236406433768377383892831643958170297651066741880285789998404138517617039345323445903458349065325711207879796514115943557005103087801193601012167963092060980290146115119902250169849152196663093927098785776407426306014072220611410343460256420773579898188625196698566462815045307843067100912299262695602275144838258381453468715454986462350190016379527475183329589132762293609240517865322432795144917974978844798430521465639743953244686537418395620184437477002285163759259173681663251259030133789010112839757279893684156421468394930397782048177279607319657308258477620970088374813215487379734809460225299925125207761417420018605474264248303755622619560764758773633444085283380482209490430260426403408181768051223904563700884162582159927833805725230571130090652891638875911464610777680948772214713982856432073339942035815219429932587408829342022530028040951901603851028600552782127269450331270285550685582083559977714524801600152102838459107881873897519180577563116226653800344947241750160741258689337153150265900581651455558986829525925315309931285636776685494367873280124577980032929302733814784795844752468748294331158370765138697934048308457859149874940417253128204474787745165247655639653666732341674970186087323734183163514198535163818493226339901489039755938652369247209766648820980196782954416487785361622057526158345804744164978632175454532776445096256951169566188204373841757320192937054313455198182218477983325769499364111521599507180750380436196515722012150478349552047356555094905440065315220430683604235648074075112253768050294810010261185820881580914562423746057023318418105854065956223026242002556340607281339865088793144274607986804727656757243312023178774385373586547917729936855329077735708761328547571054147965619336775602787179556091329457973660543115184267100844502119506307756678247805354039714960806583208140756244601104392339429804771854026800526611684202980683431822989092481014211686805518910404017667161223675565683748827987675876395208187221899222212882323655684611583938522495367241675076627867487239666096008842450036657381922509635022483035205373534437778387628002895904907770255178776146230363713793020812129287814084447834985790929049967826830918254113304258655236297640054062248962513026937831127647454842752103377162109948726053246328372508087602979720459072859540152815321707940764107317214278483758465759889055944696830636611368191818753533831052126126400442034531002115644388686677637545352270512401498817706342784324231993141426348839519446795734318552158031848339611807804930044796232551538225004739099457571694715513265444613032192210758233299106542654801166321370271450842512543831928377825576353113391548775464497906158093508110704598260396748028441017778050700098655345169920171987664857056923913088246263073335075929296360693033732700672598260191694883765002637133005981500172203862970586264638837949363955385281162063272341846072678675563496553054048733835526789525025085866957735294968338370946802995014448149204120892078587158916936646818355954734539251370448457354025462673307162602797702167530786468104959309954801863067498836828660155685768089830256648243786855341266762889671492859087103842303884133050584918078614278148993910880063042124326184892117349770692999622859052603165111062152783316085279960541779320698129970364576294764787378135121402475910801151689822905821634681080046737651550793384676101814953238301448090951919154679299486932969123698851522696262527932917778888599659702359563388605287627380654285609143563913798286431336472963390184404047324289813145050789098784315423606765013655980404896907770216151546437049146255197320538065382842031323915302243560211147774409783636829297824098430650332272857048713709382020656570317556420521226118384885921933693897233007569300182180684923199663890734590217839273945263160426035501482081759172505690807283019743168551418511913180090188252614017336759122675887004933964135565591401034566774157168217379953696455685469243768127088406773582472255052204844119351587381953500937758811973591610749418624811476302821516550391525926511776727107445382668339557723521139405275196519656791474562526218458391074482404500015679670719113527417261288624618369987836355267812278251289714023564078872904052797046963857042588706992085697807345562678601664510606875915841984638941727849056334588933585588193210942198858134439912302924284650760281429731820341858484995673627738365365578948421403956186354958105210606881705524795924391771645345965649828730597759951080545320652559063160040094084018224394843948287333315848714285858501454431508104668077935192932799407337947087977444699431000048680515671843229965398058590632800185823868433119795373429629715453243039193252992435161121384609608953267782193298941797905348849259043023677058589517858016560381505444780391658934273753635556697298106073520595672880605667186998281146517133320291612597588400985235562901605095352629442658200837520417308361023069247419315726874008826916017868474971580588266968534333007596666943358405962865922603872842687620547424860347726928278820733967909116890750342778477821079421770092455684650054612413261546799940308054337667081236181252491599441278538397467026469180192636004904500723737220198924149691984600147583608106157543727259209718815251584788168255470023427712538308318340472487209293179887512508160389181164278577272515683735842981773736913203222347157591595814684944571969699533228557156833060338913173336984555610017740009738688573138462168310030655041965685945155509525150349590452751012129568781876846849622031319652052540375972424589300781181288651821070269886539691924355816066843638738616193267384553414657923318491347610570604426081931504093908214228290026663615276315754878365002103632492119467630534221559382346878849034822975531158049035508209699538702698607574295154142218781439546455568933704813237661940905808320478336582928256458891528440638321640282526402759047422440511499257701655696233817243905169620567639440656817000965057945278757950437939696000855602803860963805689577910238344945120015612068835790243324394528527827430112137029525314872260595783531795126993280640683022319507922555501170806251913224275665688843894358983243836017155373796060199623218465240852691905111520018010147765988034999314866579131724902728404847579301356652725907987391879658032311194136432873501949954368086277939353088414608802119097678210680298617978093280981617425859118115173884461272524819261167454999793743153803511855077447889639306088990416421698116061069160030483110559892052923828184593425674151015701147589902590372347188406870283038122513858870789160637718622000146680260996655452987179508975039351999011094458033006651328730046986573380243449875289418127439368936468186969324419329116493568031704800276898868309173025402791330524913018513328092603459203261358044392579977527856074239374943809270154703235460945416167544353614126963650858862371993773582357933058083482332986762557926224151769335270575117720851177238119201013538386121014876365880574448394838892839047745840718811475271539743287739796493321347035018755780185787885536664819689946489241096236995231801090370139249093065227129247196254177783861392124416447803635884291706695192681787645763895763168448662987964268690431743720808212460253399887326222024428206631740386694753518318389682089250934773076874643975321969743242909863363603267445074690648893836393372212109154944727343447052615187008800577849815140149701159200327162914497997364016119181751363587141084195695789738241322871328035140471742748497864823685947621515869350027873527593407307807055915047897314874802034253730276274814518127832985775928427492894616790345008059559715784663376233471359914569845301950799671069603175621915708350906124225988741259355869157798998844496803171134401574712610914551079831662574410552813341865626817751738440026485776700304055143063950327565007466571747382798276546014689952723752580839345985891918545948044062617242139353754339373602716173307616193713559302523760376694152943788325104696404433582686973832720395843274046065970917180175573587859033198832565737430393660503595094232442687857965040635982014590498638036634301379420447123095590745653272375805460616513613810369217389544118255349697193564281037830868594017939071643087471848411961716877212646495370644432802795501574785047298743193978082248957452136646159737346920966150781142878123024319619704930533358029795540968629398506580519696337579260730614590369464047610424353743185906274317667092408451148951690596381637432436093778383824339132102091533358836696799026210922400007347567432388966971279791167697961708958280150766783528795804835809781716128170130983349048943248139742273178759990744683048696411202021396243492760099786794100531301173321817508240767496334821153872124130824277302389571321768818087737559542750418214792952589637454025931024360741490343986166771416821576213724178172765373119935161256551955821871211684201248026462097019492843838508565122877861085612449499726910228426946926034987305524062370654499338206216854309547084050425694675266664793102968826857899560587283639799871484527054894703588045139567567219268551467534867631414906801047373034631891687049916106962202094376665267588883734829263928063829591174927520509543891987327660947719273434274913495727682386498054057398777746247045071552358782791641708157618747775745133324646126413695088651524345626519870346411125329197459426695695003589906633026979417645386101844772834410565918620748966896768741537512428585455792846936526693505824086741553333015020372519497106051602121117121521947156171824289209502739475260219338027303729588784406696488508455697241193312096880562116956756388860986391324520480008764736598128894324072588924818675583395643093252006528107084095062555150961706043532371582587467868586022550051593038949443415624573851043775287392018560744242206131242209293720481581252831456836500131845129182781007976142291750931180324497017099335901630526652037591656934389905674967353958918459162379766800712314577958139198443206353018971229898561199043643635677392463345657962394475274507672331191877408134779999915957456486457071328881892598198457999967419243368867767597226524335464351228274983813819744206858774742254490849066129693369369883522077007257212527934294621513070833573020593366303319243029697541722819480814078743206094147089216254536431823106086576324406931376180759897398054692580397005617824473392832501687342795509699566976173054681163244225037090626096392400098250337696658365556973309324770390793646438092974369694958845755179201700914593164455779805113090382814398960754658760472396766531293867977074929866178805550654452350202699242039906871537587117914769427284288549516663392620984313414932510149940203696482808790021096664416616545550552086674915504383663936053976795728654506394155780738167800249832104389924945024788932080603747050390167471862635644511816948605420007877445367368528790173948805566333182680357731462386060671477505839639159830809164363411113079329133199074853169421182621934521124558638285345364416757586598328041703410141664629627315211817809441484090367648888491573409058295909864485249352651750023699428438685499579299192430162431970960730458947959256809018876852009236473682884876787231568766572342271597606471492418627972301164609305019082793159762638907001534732525638626597325467488969187398762180590848425309609340551580780359450161710681924740908926949604886161333780757566923596997528144057003685663151520329960991315802612421617131120208787949507906738260298749846536474332396932670849646071275893927142405521051558304099261050080451598673260239856434976269287341052257454621771475688921911675880801492468744415782166305834252131594605023413565478056767719513971727982994888658839724335347205895709692481968662211506748076471772760439608369002617202934503646013914867919624912918269982273859852594960071393057646820727349330737447377703518267109841737818547364694974911659405757820119442660458205457291581108241209637682620298073889784082074445582086096118735878429528071643248426053292344360541020891726221515609305396817805558247263015642843784953692376913564143324615157705015565973085992246066518197587151770007772020587080271537222681902642278896672748082571124658147287430044824101235263835633467753450460708318902243529266513988551695536132723730964361114208461711438065830694680830980490685597606167562607176727101015690882002501068533261070605207834475713488085239259239517266285167489735863846833115919608061652652377326100303860731898602408242824215998244834141646980038766843052950322917722598407423278184598561187242819666140415029269835353113990353740627986398478181809946800773606837581852826044137624585075018926925676688466979705334200368910185110787522095467476997540143225402428985303372058648632245479139212427061003292824617278977565353775676455625031465214740016525061688927089867691316375545022105991077274154974315928915291752433067827276234346483695569317593140209528449654745808973911442451160402025407348918691192236338365984144286634710176926930195880634544999420549731368077540470705301358412592894520562914513490529779701577968326331953895482943993541179264896922531584001174020669874691807152443074267650359294693317486001506122421445334965525952848039283221001085440730409911005980807877348445801513560196108398884381939553220227401094803286273594021438179338484569368873270502169848410000841973336492469988646957770246957887725691137622494139566812650401734510465583252492876067953582146941946247264528362268942106237723348892530870555757135174168765610579507855586514296551970834362272275825284537803208122086160544301329035509565929845444477357632696169383308596989120126205920833270665088023908570333885645071568306055238756901859607220674524199765771116857712023447885246755448098981073294959086075556883119593522383888945793520055264072555391334478501138445613275785487902289282195646413610783852216740223053396166253107721583710234718416167045524601563205766376123637153211282661507907543627543056168786208025718647286977928502962057739212828598410342686456401994838556553718658198959003338550573509425472179297674860154833827965067561493716749984173807842451303737819392118085691021800705301260885909061743404772009929728588075167812180572686695638325430487111189488740081397077194756439017870506576379538589538397475170901343263746055849342733623047955025160854409406277768074676267195441923455414500697412102368804200092239204838123384525377522445708199934868527774842015353705306944124000674196338499966328377148158918563391285296496774958330899053824624388806354116201714538500438683977794562911698851501482695819030472616574472933316952500007740005840158515748040568249296388637916189616808502933411748482552782788559279300620616683761868741032345391598017189022444849975126456845777613432435489864745476860993619049494204226666094312790135959406744778752767193557531220701354521013410613367302304589671284063921982033572950865996960803619126108117678532423403273576758727553358534567719953935467842642076155538759284570799279353170044942509586662031888517412275477689692411152708037629425604460157932779088645062878351374318047638543634778192962832582821564912172999878590097448272694469529772216618518206992395905057078550159900008411922552583685661907519696917676413111568959152259901029614229909685935950516514344166399071378243778705231893086628121090919688552535822723563387279787472515071808223260769189217796415341085420281133051846241882172346408722779073944133598029646728052266869425083137664964228430854631496951605120103753514352696280554814991505671520615326990919662458469832733269216045183065129209262919583091872553751106997456471228731930017488571226720521304567972348710717017794113727016175124066123096048563977092682126965576559945481651944859421270705391140099685301343670886852728301126842482685777200754264157147804896148131530720394687083722278879846507504333308762807430586341120379940704912828777274077195981481034131833467779259051697630065737794667169737563109186347461379653380449034069845261844950007076997270204191162080404147746269667996278508335657848234188690853089375581735195288721773676347171355654266952092404733787244724062967477030701914942630451556982468782591441984966915027567313714717371759802566568400347917410875283617614433993901709226580405682839893216070016333469605717194875777437630428122902937785583747577998449749958433404082385690017658898437209177669606251344940862829740073710856498209629919683319614437166216648157887356535808701240332998343268447494908365669674338810786413852339218175679831969618026919035653043514641462909994646743018464599560822782806174319046401128409973131928514299936589583445141393194829989550048947833708888326316150977829078518493102681094250523242074170156997449792494329715851596536375403521611720517147881702509226084025341325614911266525039777856425347788449239234641958786972498925942082892332090930140452528633512036580112044764596022205306726970871826934752312873983240899690105829491381048436016308760412395479164044761381657766455903600874770965167014547733222927085777845351304827519918238651630621050712936919950059248607887005755568926179174930309975446824604562563923306387488140378794605129749110065022896224084198465428093978683807550260102822202840860542681822866640800869282180489626201697371179659074796687600348048544673824427325061840503425340010540548652766325000242276653781304237828061978396903326747778019049914264769547944814869078309058002448171082722711435446284840812372055257912242410840170902981962189507253696417123349504450547640922158817412036962057464356657842959995593964310792141263704361937652931108754744879102569254992942640904689399246873170439715891416649125265317688879762370898441752667992698944373795662016786492232267338538928316741256332404851259488675280447498698143871185380855132084076026394810281738395916210053399981699270964133118721693276202976189256369056598972788569454573448838613669143291983958969932264236729609510311916123471780920430239808333481345703264658038707779685674986125117458076979706512037718926991939549261876274074346194786198642092014351874200189743129475721799673196411146283167021920456943422444267318094581031783546337517347850604011465594446060653509099216479031356539295437238941231410978534043489234527815573940930351702320921784033569409659818329836531633534236978714015034471671476087865353373096287713866199973970403442980544109971312996115493670623776538729943965787965238089467652844787423009299478638647956576247020068196629373503232422146517165679516434840798165657010624177421686666382778872477207525459000332178130782397627552996374929185824272549633474685541973777146622380938605414483281146581087054670111978440618282447952546858010724009015039887275825617135883788837942631781903192761365234640693221199284852817394298818337994635958145427141083711522921044217662903790373781373065006358623062865897077107181643042216046617960474201214739720739890944922558026956746928000385584297124138734176351452112186126727483079496326257022278815339340963285127657724050933865560252716635522508426019634366681956204398931385092939527800968220777958945598403693311947660082674854010920631492322375316558400443260989068468988240979345343505776886092944126923902969352826042298777516403748163021479897304123507724352846261282095320364878799189407978710439018795162419048722895633397307477538692931995973531412628068025028913406663266743218906488513184650195005286568157591730972350387044361176563164584169493109475924305746926644085864649619377766504362462588310477115488357893162060422319709792538621879685137713772489404898310533935225108023918734947252340060533330348554640651708310714757803822840667224225931503943412288244196334937374025401155467234513082391732510078827968968567606070627936437165077040196653511220913628455735170710393590579264655582298926519850917950272172210343168816017418757489617153380476641976129766623714176836864653783642837476061006594689095725122432538076156748847965805353319403431520244870530159197223026381259114785456679111220305749499381750358129645562575916210653743321573381769779129592794038009515550231187883210879732867240311708831549570295423307146988738330912756761289811163678189336512726123630997249964042056695613425115611025088216130310208815362346174920690659144730100989587395326572944386986961432009753526917238281170155738172675294494203248447117469457338504653268563232128032586701047341325742486883239104459832934808338819588753174352473616205841861663018588684304565452662896481185148951754372310284085922502882255402790749278865241848760096619699624128248746084745427316861192045275154245297527183233227886600518087872711690225567353255874916922199968241857705682960753503971386468188591212166557565144536377796083086477093188295460820833251401428803292997301371886897426936690362870971641113155356629619165140015885431407569449210143625526467266998751238824202622243031524206179045768571507127486089374219833407622156334428936176646677788213424058643408863930101019189501244846540681337483261446230878394910164666980573648912623345660081539517996488200041621357714563819294453079072810516605063637626483643102671541269103080429261482491864922413836732121093421708989455134426979435226472864659361919751574929126521907851690709275621904372305416198685657018050954174431469470594132658234067241823029012913719760118893948598317360549320445079603234600847083144031028712445603793688734222125663054092888598778404994121453568710366808967861072823324482342393546704160522119769622254214185198357851246597348130431230120168826593666429800883667501824991213601007159214234117063413902672983547051416349656586355810770729598388455772044887017631711673222578519799365601695095539389496500678878992742771325380178573224072069462644034223244831881867095269140611616387145478913336345110410229763485314573104767829576198371359710835069317372914883084670980951742965758641375203287551214179774493388007861842081885966586071989079124802775393372048422008190850082623154753043313794585115200771743454957328916962605059956451550936919518194422629702561917951084693642248827541867408338126132046382780746033257901133566194195010628249783354005141415868937256556009898483776308990632977276684602798845252055932786954350692002524877967335459927001755937066091166114406963827105708666801408296334045933705624974933794147840503790140008308152958330728807724264774432865193289911964619262865394256299632665498467782919209371181962847412284175068166780118956484159980074542588753990210542904522625528790913853442282525045916136988121893439261126812852015966724514668262634079671325242746751771497164927993890487870064936388474240535918148587789115275337723087429445697727403603488551950056302703031437484878191665143593740555474594153825326986715158582646211953573693945839350449952995167000215944887093489851670601249225485962564880527238176077691946890613585382353576965525275996906155359600845484844134968719722504422092253323012701119093265011397979531143416845033215316253901482862593125440767398352522091463581777880162350660815587229864504263871845145057862328228649481738549022793462120185384107693939531649345875686814620872386622961492456276978010100783284954745858164484556512926247923005383518188443094019516240126767563824073378888738315188964221633140267901605326822911269669492535741286552381205081022638111601879852399057032084804347210933969324546097293148675255522577771432653492113966827584990611481520076845277642589301300952457131290998510780563787611717428794862380728453816065578018572677227738085638722746700282675489520928418098072767651232417527617411735977363016667804756646405117071488570788519201890508617912916454675390310379436169099837611069140063036849768961702904440634169222767647728834786448281559564894764713747508430374019461681152020889161087656795688130280425893381057822155439051169712286208323448937230152182508116783316243723360312043120470240367399371520408148795254523542978769698057318628431358293960304132227108650743386901098181669029956332839769038977742541420608511068907615786564877181538206478733925774319616478925908262018028125524028118091555311606368051794866184862995473117878920536155963097701518148013542411046749605049023322375350791144270717264868752372573676030570965598717564563592367252910853080556061194572009288927667134403027555030285949394955261656442915799931195570271589772282007447823778591177513039078866436687482099579679462144681344969659875071282474012665973437677620222666854143830417882122556770729614933775086971402244037372175626298083499955947873354213393291895145700518883703902695404030294019932495467084597019677274110784735222373255427244998494977498669150306762383347242647891961063806616939187290279804270519840683882371989095728328108073622039133886719418235710725540207110977805450631588181630363888827343411742636032729362903644999916645978497528089961066004170045217081355204256866404038438624555149558163998606357745488204399587022658896060835602064675387478779406360985327300367931955066795633948544304578507601957483098869999284497953331525208033537849338990852490355575556250102458557662403555083333818134811357046560695036500883734672096393555556850043082444912639846181975453288515664296079776034671956198470938177179891065719391348914763213467334836422528399672580464727229071275389447888002647423312377212511311261032345834502791489470624671217519610175887399067094004709869185895432840629471588421829220564238104825909452203699570400496720614357946792686764240447012055430098775516974992832589846686141593890126483275478275182587657905905105728827662706665891428995531775443330144685004106533316848031869894814979215618968894518617422705461128749371705942325172663426505658725874117466604333832353675551345366685506807379359339486003180462207109841955863064491107747807273049579707235818650957402449294150662473525613012719852936735069466539694177467841552418199427577138152719801114986738011433460119876481268538324523609019142297201558426270239547558233603248332938141368674984385094312130365764121328210986892715463262930096878986243175756800198710993946119155030518158246830561245129743125986437812578800309402683073255323239223668139773127701349712093195696515955385637395914632073710425195787755937758539820761059206203908200367651526133940171903368516405399102978496605946007383122193585403513087335308765853374012357981770169580907239094570935365626232699737021803973752947332812381076068569958592547023661422324656151130855861638466003081921372187477894432184639539109748056489569079767390368515702289604481767646775199079992178656232868972037651458104645547392157613213541496184263124693993292768805077045390675938864132239037152180012998505588654248651483699721176119704346428337982728372158715167565056182808834073286149249617991224955924239215182962978069591912878491501081134194839491703963238072065730056878999145786281598043206784488853985756371596862724498892368812989570247696193964141040462078790461904122226823422702834265095925741278333293508299177174975201173563225387300030023810505876887597050411588012550925877455307691985056265828189282033589999199850574639139015647668572182294020136838379828347230250929991097631435685273522286140852830491883335863298112604905749083147177068773439428946429649127094825131551335662031566385756730177726463391689954748212142813405413562337908455789676063880805263851567396113237417848677651960186170724367239636272765553982488015005972544426488441028828102560105177493682686793017800912287018403433573621234720552223617382771544420749580101656845292508113958092297967775172387045982220629126983406428834945532069918794759596979641715055131263185087257995378311848782063552917254803877547724266047167524391617457090236718889846410351472408866790686560889454450705204413798462826341622470319314808151923152593738172570807533094681179506366400116842212828521896214936381656237355335067180949063087851382531089234600267453563804422983158240884681025901437144728519550499653358171755693550248549054874543944763022040718147203505443788144318662816629304052522498645578377081157234067951186160437927322229996030535918145855314849489403812084557687442713462964504951924722412472884625007153000545598751235631215346321592905408526188964287459523961635703248637737998653493666985330783863240781681779820934998274751282424074249313306687261263085528776422074142931796736208711966905677596269361254222800550172869014943323355424337602718850155073834337665115111004495828888444003094416651414470311646328791773313273515010816501292435181948672416632612519381808944127861980718197959074611085569295513886519325357614873386160956364927403571655989029470978859027818712877375612799661445766259463619938892923015686758996190113120777633957652204637417770939052842563489722793316123441169805979662614959206534974561209069349246168756558289275490623766066724519320228900019022984304247419312451051484284920566945861311661894286824175871509265551058300073500265878141096095724423958793880282710906154426974095586781363709784701968269414684111370624518070825219983985811756414866954167317950001534988211413842949558171981532859890754686693457115423331890778517677895201442778938540822566247493468646508077986016693614273182400659849445917843939570568656451398655187366427945231910441758530005753267576676275071821373090468185422864328241571796896324225057082691741671911865868104118541566159021511471502404478535763414921531908939357229340815245681095256171556415469675990816035226784010601956972998630571897158866470928119164058528603502828765817394157524740871075881019986844956683607262176299723637893938072509496860074697560155515115983365748052458660107099561302164313113757779794835783774997197549183685411071722503933513821775894285144208441463567849770894060278033491111540553462502122481453591686116091487930343065609328902541515428788990374023643223310250279483221573327643431732173348418442779841863665308343774772202225423193847019591892639140933997446956390751577681170496498553606805030700602938388812634756960979739960899006957602324100192374001464227837741559078308323395100139189848514082562384022763603875987476983731229934055500077738704713170826522923952584441556677289305705381881633087931214641889311968470131779265766859239575311683323801231770912114264495884141253053267258727956741698729076070244096273413795261885591334354325364063569941880894422609332405436999752524392731832461528558408447704244249674778898355091569536045241751749856462547344605751800645260472546107542609931747405836369189202202039665113761415534653744704387743237951557701670151115790664278940529133025600350913957164934824175013796714824613611088379457480768031850836199022557390958212118877248955184171644070531434942447447134920761093231386162049443010694446962024270679672389629262608713439941374621886651221611603464490724133523794260242310321276357643092692197084050750329274444630282222532729062976065022099853787211562685606658462440371026760182708322917025144242207699980893902957860329058519742575846486723071832918115126083158910609937819505291200505337374135583972311301930374711976613741489742398382300675551118448027229915626485770941643868616581415663238290797436360671685939519847137364643645718931667854569769146955870924143359593451380336192935051006686631049598953058068343752657308990630207870714478425120441098956075479490905533685903322264894718463658363835622451540617050935990596462667477706147107484332767228465375098451859059324907608250738684523585616878152718004469480529401533482633256231350267922440165737864695669831819520420268538270167072612725692306658091686099403534317590793850421532500907316636959452382369289124412163631613510231299444453615529887017139844342149413068732581367343331555651034658616223932962223626958405588165307259261493397604532887612850235035593744778734209319807413934107914626817933751011240942481365805324918048462285732238213732257514920109888262170380158356447550267378867406436152534853849446285367922223244349226397782888396564415565205790557068481717552799018924758528344869311823938352393420215493535971022583315598371241081456604352591353880104864760417970775514547439753702639964454477797331631635781337127498918756300616726018108434999744369527691304094737529997191579433597905948349300385544377374065457558082803596122277395822837893100956149745114831840271232245330446463029688384920904868977830807049313805733534696591793257009968922663769665797386242431758710861454441661142435593555998801716855626056768691699625802472479203354966488771998467903299151566681758550840717333148021653937538766133749507667379335856918372059258218881116783529991491882276909233401440218185274135274112726551810285041145245184555872097531744813111462023831618267771228808870244164479827223951291593138189016615745678002348575786720569700782849926838795179818529749981463634197416251288601042471210465175133283158558064999333866008370605338292892786477484489070177542235695720065860313810434875026045628222126389585859890182345027361598365287942889218932912677426233666112616782753289220465905377060806443593845118130618185495520668235129924853661162161604706341975688472017901429676874222001160279792075969660894145798652837749216044831937548467779356571469225621335643564606988358768141463008522838313134470931006418478695279907624334235021497707717738867347744216887677733642081373245200108886083696480179879000897579254022049364299536509964062812333439335050737120689822332067973003658212832173609828252384701837520244020915912978589550064969396980697803984077827825743119297658677283788641964057500191402757273142972867678900318880622619574490910649552175718183112637844618143646892586668531144101597378743781466317590927335955685891885678480982921949518663670641720574790223321614848048525430833419450808330378554914623135185023130436431191072328890031486829321185401044304732409035390745622260933452685984661839475669870137937143421209211401366806287851886158853451460651290069199673701178181714534046387089658197795927527490850706655608718677810573592828869807814676018090978064927548970831396753714793132190497183499000676308284495357245934512037050235083448052252441235409998002288990576849129063039182474721215003401528211236156188342160283830245289840782671551719623913568479753537880657263096791450652256314195328746422428833806683421586772803761158563989744051837357425819816968893339174250718872192242239043913986135607166568388704799710213347070115231949505961164649787813200718692481000763730098552981884191655355612342378047750638662758592460896982910377657620717062468627395843204080149130676892864245463310225462654826323568793072761890912449311857202802701336995151705568612281948471897401950947665426074373188814208041910461570027864380150478260948747616878595227808933084842074188205923519237067533876657439196552766355088925319786567241284263974475915830286859907156872211165010966984089081762390319792712884610817720086401724259009024317626956366680604225105428772223462066973953758303744549689861981870771354417094272663838858107990743108619917370164593770823740366019516837015796603136338004501652725289138125760012850795612703996026479130617990947702221869642536604205963410951734291450802591677719939147081865568456892186279134026220943861813883185083012038954923603788128982710939394126962429201327535353507381662896448888816631719439321654435819374297394812783101732503791899217740498975805011916463189406687079202589467702813496927816371204684066795199707230972625768335245049220411060748820518261657346449539816305311848589618803412179086666411482387730744470397985531876244669157035017681041507218821345731133488478081709155397019957000376805572953985282094808012194645696330010836093176781206430156470602276883363865880206675628318401180814154926163283892735989951129612911956845181666809399639036881974947229439400008910242102756894305612636024763119270222471985315069870660954251361575408633158468091301583494123702794385209315086183795978044735681535780229964086949158119193969930281411828537686721373598024125770304735644460639913021932834943027893285303556492011191292371775434158294429033575439814126385995087483571484999857392565142770246492009369528486363583334630327572588827028528044655516884449625307945911727252178721903351002209422135637902247802439334854455515653828349351950838410363208572884207642864561044410881788788696285855090598865194792606075555576218395822470136965112811467633841969142433489200351140668998250022326171667216549175645624606898468055937120574359972634656096406286603977596349342329386669952286066481962963657104115646860109693626580531190211173937960221077294396893211003236062666539088933924363264801617591678948898469269989456013327865497639751755669715307568502669889818358404359350395503361087872225029964663865101460225176971023539821991001880807086022578759895011246303478520003496429162432546708314281704359631191755297595882448094736172006573646109805030688307859792302868224337342054203638063481734164383746404851505483681356693051645058688844118821473761843656720647029210335929756325785105413315090005805701316252922246975664960350146640465840637785059050165601072324706391908026049772401271957670735704099810458331386877671925416909471066525118103624323640324338277107194237377314179318458465076112632481872166700073109120672427304044241258749366907843100824053423835488214936883094784779645603057976540778614240086647565837552029097639315341682327676020976664244926383369006127392616160244952651701868741185654771845573082586026507081079158727063189820948398838690186212065454537433692960583092828815714366291505750555979611101450061182753471031932426667882579858430196768715319700405316492435898816419011177629897973879153545165406302443709345259567510337559738931513995091833269379871339597742721830239253808314877508168381076076584966509419419438034738928960921713647964546770774636245324839359273800522981002397557382131424138597217607807868047826853395058875329041520946203229356356972230155333420357134455397551095152408512240247440327178217157995750854459267740278822072521234520108825990895755061552234058059937571679431551204857147640162862637667483893678927012541953753142879252552932198729921908832162718695553583421729268473435812947717566443435929012476373355024469475332195105617950416720141759519885242407891247752377900744138180862351995588611350664254357019610358773394690912645785074287546521382344397592416188218979772501327079775769994713979428187929045046783193499651862319074675605951388338403740574223382572566503325307272868538294199339572815321934853925506668765298267338151639435778559195864747107675942937646011090621223710009732248939400758523957781913403748547403687921636751113910640932504864267214140947802211612391144570720118220392910992853228578372042794766817757187767602441981998393167795735692275929860342825504204233708255321837343224225863564195502693445277457920443537467986882842517366764338781348692522431461555697179996883153539428392955229970689445257118380811576648764471853352956680522120335597323079351226341466765234133458600259572116143158127550665755931836329220293349756557063746298995302198265214312445555319885528489929901931054832846929496499381193231287324268535562939356751491802500268191476185156140105806698190837455663202470128963533083291835075553799315042581734362731453637165298590299917960798088039790234976835763347244386604710688365522029900255802517044990849494697261269245706235446757886060893140393748441004009697648155939499680454072701032711749341783770630247455059992784505642822835968082054690181049423047739941066594929112313885012601559417962313548165476108520018547315455676835826426227032938164120705115502345898282406885514215195179133940253445701524194843219332291345752231600068003772672291896040786247229401397787980468819374897846387135395672706608977706446220368748071378111937687781624870348037162314865284802649019920720778257725886214820638876739158367748908512131169250467829941756916130247817885543825182332814635102989652393077582931602698805994393000952956262162398275511760308952133386713715283885012590168089761838184352187138706894311375481063383392644184092416553109280975828796550400332993344218601155913059571546669257630156449353883976253254588657366539074771713763754093251742276656062228391495094137878182319574653778601976181735273677797455443392087639532077386674120178747902237621693397593634490458228633673718983153325085315162188998590323981613522857016871788531736844989858432257396549443400025059810725735369547306757998609988813268972533017133750946035299175448347047619043296441490798067310610199780433641946187597344964712958155523138521383210545418130401309130988193132827964443100782950627934676215908826852992377095265418349888206590713867855914703226675549328564484735027889245871318869193262691640901091160789792167558440689597886266789001380863173617777413215900538391810012981993136006075099589042964628018636853803062435031084459568362409336822708581438616358694336371143068003650568442456337565179434731388362356314314499105152250599314204391250925279290443659968880693499465765982464058081727761020863778873801252493342471711937022803904196271098241861516965598239311327875125788507877049990115611377107556249378602574257722840603985846939685147395144150515695687533856673093653937323570487382733474784409985555169325580172660671860576871736966107138282213050769041176999430880037131091798208242797669606198499647557029806652168186243519393503383437082838690337853663068347797780568230961738372305043663463674371740820923128175714338557164159677332122452103736640337975368528566134046175357141521092296986322473770042356474192418759910640209551097673437493049310291124082992642398329417395674830796608131623219402986068110722461865915650627827468944954385692468501437950600456753204166338544272621070332087390668239688825183613329596109296307949046252528694153488038782332070956900895320895579886166654592936641444619172533328066860909674699813500724281834974269447425084148371970048958187520590324795523431209409977910235655010849199995368832345232123978884347640412156187296287195686113654184085384562428181280086358926157732321088950945535175438929954715904626907160486517971967865899969109305197422642327696273906363808552928977603716826988154630565042346670561555918903040930039109759791266322252822536249073967802301675343953648597436003785228504036050425482587582065777429997582997858474111745227841810979616320836758936830802542841998501556744353205834664581007838278146069417005810697230758870216421377486647437793924286080696935960549347674322641592423849085091995618462636696903481818071815709980001034231289509701687972115393318213012282560246492522430411517504127200741149396839041254774465762756646990567878662611154686105153083917303050534434693570261228107070855162749636516879823789887380958529316945200847408565203044278268032227864432655268156649541901236461710726647044328281365455081033292753741457275878696838817979006880636514556065382655312429056595558322642308890228156143962969189870284882595151158042073363572238256175328414214966998781984437852898729918373581075449068303053679691937495398290936830826162647937261906289567982837311945723230837387319292489874952096275633126571682933857790578221604114655493284222644250773534342396295617687529714491906770186530505745862184789165850884252356467216359640951662945790302432114007203541947626129794978284016238552157812530287363273397807827113879282695319481449645938081374789487275334323798424215128696143398641164118007921978937341844412504863058669727586149128227922162566719484568030085811964604058941623767553851013849392972573040335352785093509870437967849020752182022750851239041632858710188471888915607337188347687539393771143087109212837022466412748586945068734058261391627437949560184413767686106041697873397829017223062554208850659231977207626933649003311116209343555326666590732429934727449953748056455247452070847116104413235286524228544374458800392141433955986346337546380830055307156664052678073798355854820285046530244410100553830428136068725224427969578201445314825019642221390133273861477651485924732535086558289426555876046337061484629987138676147431401134169034001883866152012017917624167795786700202593165417894255002152388899023473371383225209001013223297626153164705075767678525271791409612789909440044037126115852276730401523944460318115235371266065288044165322940897789068776678254727294145984880123953081074200842725711228782198742357008969344121594717000396083075543472209870402744552585137246173402304166059171339761941995641916203851666689345798447099449120926016915426430426574434500166535931335504204784683381416053170503594077049878765466904334161310743754882174866511048969843954323343334291648153755969253922665328123472598239434801964598529136675497761288334765678751717936113331593208733176070691398794673700113578031139878810177033855612395192532771081791872975523407647587350938358035248458955166692104651448197461052388593769393996283185903887590661984398517255043236739323221068898798989145874096110231448108302445629863753202562400386853188421914307627359495477243727521058459368899715021250266346148885050292926186879372218841232977573836570165114860851576678331694583979640338037979933739478714661401704598459120286318327899733533946923296655527113118506840199339202001244160396194701103711121159787901680758211170499307946834532819592354521799839957707727858016373115330982909631356588843720102232836004596881749634023577095641622556882011088901621703368767613415467160738100449856292666672393444253623257034719094282384425941349590909892289423955395282426317188360238466696881971530514091462882491818516387792005625158972609765231412010307740205181895030057105406275637092864840883785760861041509985005350622560691888570977116708971054644898780794745651765213073010701358099835803723843194204490598513209048428896166148582736103736152791706526835231191459892821336615039821350546597947864127802613402903118903182114321210139913008335442707996225847654612738412520234756853295745608863974932408572288643617138116432672846240666824837739105975678727851362425031863896940132860230941944525011887939166908100575616647197436278028006717475599301661435660269358476394438564654527714508237132318274275950190432340105636349072103874787872905023145985998738298786934315872283763118887516567609976804619014342326792392010512370606091771566075244280170621577910220107456344357495685015321351064742670043027513519534423532230400342042971484686162871837161678206996048219636409629818723272278260290256333117322112903844453117968408260440037171357764269411779665242169335258042918139967784819126192831937313514979767436279676813227695397525857076556847287003407292766065520761708369233939421561500603188387120161247059913524400036229346178717195461237955287366227805466940600531353765565361310768917129703471666693889566513637639357945379443045164230510510985674633824656945542656870423652311930743046566222667972526200719453821457379281382098153592684472655831731607261153922739319179934652557251279119216623792428243675798485920869493730893991734092796677532474331095452490193813452402963805556722569125266244202543434937722273207105561959334716218015671708922651419439405201467654655024200351955258704500180772886249632991876364856439458089290621599655130040531730801821371605099383138837713372270398314704553147707518612938769727920325269451811277892358215660852801924503826371396386210050891489998220786181904955893782605972905445615391502097805913708529388897922144990231990249812386643447018203392952216027449482732203728950243546114736571331622018334672503452996039020739493375498238776413369229172660057615807980518208738678259115513997654402291330473003560274304054555662188614457106888796235394984352450075509237302446121974384437554518720708689285500213465588295357965395445057394501034338110577736571834412556249965180022427491968372039652580301178889710195072258651639907616250832496759989509735451623978565691704677628869060604114034040890939144381185302669023763597725817206213735144331946098251407445078895699177066172648146239117266120474495912891405085531605049601357329429780689173158244122488250272259088960727750391581860919244446310998973568952951391954059380151268983887379877733611560046908212642725947667534024888011161706424897695773571348388202588011192181715374055883199586673784074867329752171037010110231588840771918647162351361193558510319226235239891658637945843410277839074756572658017560801578804509960840908218169486242810147135762226611034736505761091387617485043812460424989107005892679908007120298713909835302690880144978380060879191707745810002684747579471656099704275750703755573008876557557832610349731424804324786921422720975520530749601993074592576021142445736514509493780106766550930274744690721418636026106217318778132719827411216246396863403103748116596193931387117669088925873551486818339259649802114696813866462718137099855398090905597620664967101117500064849909126374960722060012441249709163796576440492979526095700460827031484331169165233464572871003554211872054658459518946156175469959030911896512468986980781102309345318504216590707710658676485632360284984034434587263734086456343310800653654563604348184710034367504114828482764898211318357352806739154198721674958928034726033645015083394506253503205874855835753885220474509741238041421683874911313284809658879499293662154075041659779424110269075800165930982920826477017255958610494849070360757174050761403698888830967836778582043118412176801954185984415222450472741639600331020828401151066653265276941152497924663201168566711441290236971169143124631222227667085264285015649015379219681113522499144220658114670999674264349020593823979516942795906412016459526337015558611029419830753291483067189511862508564537021685118571686965753114753406173482130673101161921691437194423539267987379438402406756465427331017924679552057672304648959582966709804089674715226597043363632818393370412579624128820506619815857434246963112356474829337522891165721327335005299774320706326333771825286308992378104992393109594913446215194810084141058954093538363623524708760317472538933810706134308189604209491633202457802814209379063529331378042037281492234516115390545152060583142147144583002732457420903636525746765650138848582472051188617699661063783283575760165910479839855227877822195764216497015637143707937855057891851725988961544779491379196309460610437112639343696024155480322971285035315115549544229318031654934714667356038194119560607587544115210357331963994035034924104734489790536345490827383744646135506920057153635991503158234145759442234978032709904967990774652320824234688876705712535013695381118548535048004755877025882886748565214936181109893264123268168942703885483711002770594295262616181707763871307182716205483991062872896710964352773746619278481401309408099783721365642408207718250354956751573502947501806944281990244940986202990053577792384194265910184392556944992915141559854648751189379637665642046715907634870301941406263362260750424489312805760935632462258447328316444439311863465210341989172507189592108898318389478333139271266085773573244158195940732583215021473625077441872618088645115985402688256107634222486184989766536809713987185185238977344372326255827717259210253985837706052022510399472940219646413613769777475265231663950136517594733332940058736627766758244141966201709971728100292853980852969104484705248154097616986299053683467798436958185076933384714974310416324891845542022915347493360938589136948588561963487674205999246041687942047228165798120776145598650678348384220677116238934596058629136486031581750518324013710105753783882557497372707773054763076395016108660210490182322097285698717441384065191319937202144506619521413246228528500558170177138199266745194957683445865547362480975436700442364109503742431002526808066294674236821916472004229101285073493287658407287604810280638518241472226720798035220378993727317362926669820007714394465644625909410659763229119512064111133754816426661781820694463864732969461253095283033992815090131829707872290858531050516674447281461217847457711034405414241996217211083225957897797137648029309449776963052639747639917861767000844051628977305795301117747791492649156993571636078246056403978788055091118000073675372281937165803612420100725540126231661931792706366733987615537053373605185255602727734630126063219410995898678403768118751321225301599272517935572338711109858271294839427302306360689998824533336255201854938268916771083118583670484620171248682597640639855228663019857087072657443195594510107926436671449926332838628732827787685794379139732538273507975690213442637703473012055551247107159052853028016095220757281096384047990880993671533853495367599161220134756741192164547805905426749553966825147844704709115847354915620615358592613523482750017014458944569806589694301746819451207955003324471692340935773104908829585795149278632533712073146712707135749981435811621166995583119757452293913659901612291226493367494202751360637864433313882854556786541735682091736756753035858895481645554427236286695893218376095886741412502952542656773597467230796049520127195634670057092129097310007544377806135907044422516981629078244608747201837917201480009923981690072119904315115488957036067681980631405261433021641918890524148717288349814358142406144975254970950580621645717483128030786640493265322523064820568438882906018984141192987011970995201672685996609818802840013120505914317567642010527968931528369085495720778332690471920441974005273034162973427944198310408088092670130208934777722349677767712582791141221001725079476271781260667592827710896361730767514575896570492205230757258056657878439930897150618243362112754333625116410531746660985236841328058362436777740176691793695959440441893727457982526440960392546865667927046315957939190183705972652417909310637507390514402728876599697277124324187797311496403619632365753194869119318527896710732234492039327539801805256321651974704732337763686515182714779278877515165037200056349847917055425740525520441104292653795723190118320735433196629986933988069533205029301316381329055631221581652451070284438428224109174929870337727413841973529008543358084669822257754991220128083647461446553973415396003577027299338016407520622462616666382309100643617649963523463855487781974523252486942094629973948552835247625942558233445926115259878110067422381708253186562673692523187630095520659961503529870995595647585586486701697833445709790992664753078855550848910319160285112490301234436725922076978944577998658995398841850976763731235616715282041534518916435218271929550354954995700201735113180712304172716319556828421829104400820581459453248460062319690498170132306428838470786929850160819867364871052776665819348009095468954179900522307759364302938488132501659086957059854050770125088939902415539849196680447556971877893887698779130380133519248255399155572974473972761851127983296216193541284102380611567989468864741035947936579701458394324237634833969775188342160084691830806896280359479236314510348732658788682439258544493829802607472870155570359029682918688366585002238865272339093875025354878591896947708307460099039801640639207724218004610761581244482560084215453453076410821799959121546642624830012005346725073267965123411802059524035294731379270527472475016190838081791052647015877285360506628557507347033640602850626022661300607615780215678771775084002387756838441388016329318438463824897584880525653546516922834207276217518579548547239169142454636139499871274521002427289482160913575758745290314991555492329687094688138388379275167103875514850290150990964961497027211123518602367558011418392791360409000549058718713194959435477478509629171215164941546924214702365157300871202498158160340002974656675178412156111752287871468848809729043639841888653711101474083405618367047567109457721601353941654453221580559253336721144252738428363711043255330435550711173628514415448516626194142367532377278687742747061182514800008942744397230553696240022806303781184518458723256354413250029431380436119047067434123994701417755740476916101890488779246197272773348368126882420904828341865968321666472476552667334913471216568211520480828477353585648779941143777343828078670549508806060728756826515213076106168724480394013390410185823793568497659472205876598641955769535155541028073065327879461948893214406000899773034880636390908936824433722628334858978419986871939668842038727510252193801129370757184230292998500731456719939966356815370624597699528135629767403964535065128100845548851292195184054185845756108783868778068573945321637124226129622066173510270490490624174725453338698467874920639243270304229028769732817117320245900249965168882444824332214984742724130888102879453869071486268192598377259331557136558823142096581554671421363939979445421606831228042090696342588817853368391044765321909017483613101344389171547323375299151499094003183207070199086265344728433886087615041614378506590602622898197681739351513655668277512276970147028686706084313945633123031042220892705347959170458786861838737242901752566142439036363457962214135960238787840931908045959300042323185285558513854928117115928786588562533856441155656466388095841645508742073443724166432205528708598834910645130819550329635821852025356574954701243983456213516129179572189551367618657422051297625979567842029516300436477830663398600547109937091763533856920662837072950312219968273297476377873035449825734209591883278336403383579504053724241380658310409266679701132213598625171189697832506820175544378225426193601973601095418630263161558469266253992640398775325368692668747257047457520015826121491193679684947060990689423183099723794353389443777297679535517699689463800404518958377429032968452731833868293653541230875169531438335077672624447376893476342881741840586082334999473606461640641462464765011285008696791078942078295086828356901996480253563686522411421820135305968842060294050996487859380158300695790582814722132322290205377231260297092844021348801591415818776624779518478273088795866264383451435093351883833621474921820623816166942274665736125488505178101503857333401853545140745634503136554224972722958328180527085610643933284511010883460535653445271714420776030204969477047028186309051547893071632199244162376121417091186021513600418276132251411818984055698800886662637915221295286286652651277748947836127007569546340198788078024991341818408302557100927565023744249254041678906395393775584183608121109895779792160907893606620588846134484463892761256593765568827018387652220458400484497885925561994700369449532707979071044647411929770827078688462032841049552864016460276922811739092670962884454579553539655562783900970434009468558623502729997186602966819969937093111122438918598733624524903613278841217031406221711043014642255603341478847682875361518868126827104331837541315133311886080285524100949527961512758522635358192341226159989766610739244831992861538925754829334064995087470069756431297936872105787491146706832761026605402041287719913634842514900687159989555363658221085273401716060893428504580911373293439419164254646111825192191636125564424844612601593596681085912728351212783925471513664714703938629225772774168036183404500195676286915049857163010135589945675559583881067357863095063297504223118410899988966590815792394107256117790607070316550597777411998076848683800816442888360633104119233131853389933686619976531811286114611456458257988875690589904397392192778986443399656884366681873677980038641128145779001263801813530259402782935583785007011344807580461271753289788377077194537735833903579165210619357988144093081872268149337022711487098923153940341880448172426207252710533698246581184093272154171681457952117010847743939110764401992003851212546888053954772134244134799876933724285982783746650769574554067480383031789943308953692312363887630805151897995932589895108941513425564927213281449937835632514008342317996235335532146199410153520396605487331169809973823378945584772964888058266387780153574134619891424711256648486112773040305033822275861075745587534171857700672170450236158415012110544009521190700645395910580943661436260774290997145740048627933188468675088644512556894997220567693427397165161738220967980997088944501053748452850161404871663655926898674492819594022691375651843375544852837808528143515653228232907400027616765471892060527476809481559208355012070145430735568933175301839613286948072490757186271234188275208495561769164988762293267295777490849310914684203332427665225199164913219294565764284947941691463471406151245810033823215945700137765152886864340610043251106766618153293855030808959651362242543391160147821760769058198462544934048628804873448830732657744525914496804126068408485699746125146548131357539868022111972536551246982664929725005226963096550186105915623957984732325958391536397237477851691948102774289574547542339643696667642426825415495068821499317509148454043852222336597212270858839575380040163813540106853867393358091134717431017832105038053112915383659918902276999369732716955963590667240036848166991155607650015564094338775475382568652222060650899361869523990272802200684556057315937330129072220443099640233193118309087296210449968840517477071522017373186174248756584570646566026841285829317647906146240807799643974642664304929258595927021592209473299147750269324479079185946826660403925746384061560603024645219572511173897898951415124002673975890739535285889688310203828308071049044123065713874334723258179514199474160134889485687685742562653909409894599705128402479619385544907599059725507457075336294602794929183512738814555800530477562918813824491324080707900933728940821959964165444116613456330336066518037608352727191090502685419774105226760572326513011726828719389819468450139957904682403232607192416326431701829857171930422134969065218589817500603864002073670439005881899158323192207231425702237222985254963103260576719671251831070127269788410441481247158269336918354497074512364630139989403965378856318572217613147347696031607354236675128677186239311730480564878199657059460008191988067785179432646979166897363181450648381874411229679995868329284676499243073968072613644987736289311735516146524793479064661732702726029177048021546935688313700619302024060920969265778303614537640442249227589681504033124178236034863462810949809155372864074124734072249731936085887356668942464553212208487205611015475205837757264662523848112650366568037414933011469933639798046202662434581857298164547565597970233025274638747116015279503840159426161591667715183295292893570469599647898494425613120614344635642511239162230441739240861001496598826526644363368400919692331380158125193087236120096796173514759508700505582899378957830706423685755592597440063581420086345389022643177177228744858168226687362369824124951863145834761686329213195926249889555402002818951865006680627927029504229338356016347605296723675956818979273324720321200295721215968160572216337396471190808810480125386622928445717878030371720004867472580289149372593839446224078552414963220374542543244257863889574859490848667192569693843807064135023611142118910146178177832179202767181388738929631710275158661965174339421973092167196957559021717468807380427702766428999724256387315675306169398527585712571564990025798203041442543660514139305292867548561773324481433821405692466407962512841040337759502745142438928571357661681716809243650594576849637655389529320270500396587182174986695094741937987916729872488254855266171229503634921285279736068389020643274742484731105248172170091085146279668402884524534843567604881537169499061186004902376755596501974202392408247376825920386600038494311343714025870221589236349093035698028886412305393553951944462546080077069929644219770097036183752011468463424052713031569449658275877732860229988844967857148694176878608803271144243393727357611171180137862943349031424430129989888033165609058208015296619582548661308751718159749644953421911362128271784949546347708500263124963518301108695868263421727918449806070595140827934878455027261348866055284740844875215618540320747750231431676621348546875709917210487817349140048108657617790760107951077222577925717176599510341851740558041575994821203703223476312878540353476525166422156033171170447285934987085899574570368788568032624678430191771129433102968190225506534740462432973636545987281306435808763532704959689657364917995140507593055556120596677023919145538409879708633690347002655214571180789455501996812666247801681207543875964211202983789432379132896957639522344433771726798467295639094211379619317791905831446811522927388915980718275131948937820078493248340668713819917425364084802380447376638386836567113597436088963931375296705758092371482674076766873317883771030238118456013276350853332243504480514361663096938846707821928119990874438088332283437800523655449517777988576432551767879764221032074388979069907932882671475595478755112446666843108386595856462081020244166318978673170566407397708290141192493513800227020722050800110810783809729469564100650559438719030509851000383466649088108363305925627718920738933407026451475535504551997875233497108653285234503248910603359572811679929379676320196109586809580827325351637736000902921932649798367443142848442760103246011463309995036720061734310155098076401176291336348292499770234361145650461905473741460396146399909099867414846800360310884316975796409858826356507263178891762554632837377616630125708532688219199451089360564329566328640932192548463195190442142694769253806120205703547347951613893152279502751152839811622509654039243816772623310261956611758402760409605698870892124675637622068973272911366814985504869808855336690389092959510969412621637662496920094694434178964445662701460120605538427322450529191236133660643490842725684312249845552298684112237969675465142798917362530008443448305672314020451231449994410705977701706842988062290280065483859323359686828252058906119089751213266582009505740038588786318214069924384959939907302807340488077082967968534190368050201335223592179000658347233624365808478213574433707332144975342082288080199557885527119442441434839570382817278861918989723154452533751042055363069981322728524775658150056114012118776253348682104775892237701093409627405629559061108474092599710550246040819373996516378108762562737674122996123667100661375788855276647805097227424783435717696039738060929229878689417359841347049894318578303484571525818017418627727868461378508651804119974641600217658803964988646420332360254475057295536099317987545565445215186882796351070889420881697880906115277296162289202763465666742864435683619563780346577809975093641838874198693315627466066932605552070176027188569886851057881540282647143944635538852642231478780962926890993395406251662499977230168852984727952019085455440910022172104042214414115152922720830732134069299389053950791151509081781494379255556330653799398688366563235670461833774140312091853343779035547136187035513871407021880247397847765965435353835922271282355571907056763151756456429599918932229577080207864633518013111261546341423383988747548228373865807149542802083749355580399022261287441299306892518054733714438813462616317970928878824347477747761393772577642488869902609059312031793678640098453446173550134839610979203879365493775249152862727201591765047731366176344775935647494326683167515654950890508180914157704755169308898979102040069847431929146937379741175008848182704185358654789821713238638340534811615617388192627345984600657542723465522783994164277823277442479037595315407867850036697037487347583317619998787157734495695903106533127634560872278824429986870684439398775622186226164270547289581206535065218429897813780514832395362144548913618325847095756097510677127148258285926497901349611166778568188037330063713859775508095413777975773574922213163732428975175929046449247969850793548644128977130393802332713000621738060189786937444299074532255271354621683042444142559377247077766591318488704502562451744008779183906172673572579130027021828826171027342603915510872489966679428079280555541817542463683477264851886538845760703830099825568945693657272348632840771364048342806556755886768198061959035394869539823552347823657107919708133795276751671009893868010874256608964647472488841688122184713115050247432197104435448996703083711475714631138873090922587656304271580411854897997002542207572891642290650460949852593656934340246259291310784268512759645706566134546890898447451701905910947836376280424699498836759263159441739779729227271506625098067219483305587344668113238077240620194164813632372402602036582284093370121456580278517678074940686252948434875196746291776783179421473256205451853999270340783059840283344725639170599824609501819269642700906837715112495068959109326439308932131363682979494306138971352323470603637315243430538944854614355475121158809172882006402568546154213517302169082417289161772007253626870668345838413887855351074409956644848523666597715981698993339522525855051503929964745033667045956509292968104945160216517223441628671463699431428273673543214760044736173673463658311789321153871467369938624965526478008922223021542434476486029366212052296504193177887128348408008376731236031996828890007995775284520249323137542979278195824567746997548603065558894889443369500432754961808411963428002136560516253884302613198513080404763132702389696717551162749517938136736526979075198584501713371059242865760871178230684251446441864165081456359796521413966636490667843233381246249008565679382639748502483090109946136460091276622764421527317848290389940151541678901235187797175727995729181036127300538045219281082174806079667300707487905192345304416941395845910556837340302958745441643483205026920748991898862860000164057355321631296332529479692816411153992066962476059138396614010628845876486691125599362100470302878066923048506778664609681656207502201118121709223559941376788538023883845647319582412056497572073952797994565998709442684045441392791041307214266207465728434742111466552103013654627170773964738049110271316602673579145181534517779248753964405086542213532611406745475476661553657099309217081734395283993327928161041281517562819213370910329935108273774536780607315961863124421708327860023708851253729189845870780571569427079185430968089322455383541172084106152433746007336074299374283251788793532513463975497745507060317504713474942676365700357819841572762793585204153403088951880928845779632278676757438325025624063331741260944194012980393831117687329212436702498291537037295862986093926880436039985397232171850679838061843813972468639050551725991813037371630888410427574726225835315032943913012933621910479697626151115933439749271280899678381400424682104434106464236831419986264426237396492688619456603436383264324574681770227428783465510024729598758866731500259923116587826937650207964562483228061349885847807244798675867590709480027878556784323795681709080841976273846568548691234285714471956102352157500195005801175859041839313892723843930231384569210727962206660555950834602726127137960234962520205511919617469162295654794670815423910085151935305404761021721218958490058992293868801479744477518924650534024864011829341566158963545282201519031864161180335088923993381551223125054851039251171382501343156207353586937899468660845440827946517845314907377914874900397438639327924413301427354945671358852917618320368681216442077669875575333048624608506242152373877908051896807796038858861245468606996427908569179375249152757101303031296719522841515787573533914505397613454796831522708670545102196235108447738165040588953470976784253874429999181816845077488528424267687202764365023930386700664723001530775840859492966321540647207980693797440001026544296957019870820812554383245126025751264355265490441607575910927750493483493224367652114303369687692404646924897205267686349367861898590820445076881412228173023788974272577889020977190596287755709537319792799306640239158915993628972582177398778265966096343070867988346301488846787332281106176876300172184497078644871252486371696540337088285871038726231692531294334639306396288453876788729314690189655170069913273797827547630842989535924164975999682392950772965480633297448012709875549239303801046727157404521344546828748411762395821532268278676268668836835896376715900026482415386038995154084866179511270317663133377490739249725563382186536520037775758901627405517231677211491581535271436728426014819105478064290849884922390943770166184570355858694721022975058645025545270467748996789907853863506978294013790830702650726952176840364927959710337151864188840783814524157079260641892537739562950750858647377239254322447184407853240097250782144251030886651265091409723405631478408873741791341833074791798316103473807494786196459199875296970578061152611219072164691925203366905368691403466517257205915725450683975897611332015678551864924121318558741521238762515740298729696920585514738324974539815726236219722497323136543825126724982860009029838007674326921581414549609298462852978333439110267758774871289906979036599326624709595510980935525140377746523998855747748671251587068096985453775438494286025708582141286810059793972389257872818336965004137940171687991519027812139640745907605068078581006890423430510189858818582309453821881081285268051387931495625795833315198680535522349782685430395525095382105758412846227489510914391123991475277946202257309146396193044619687960860029989854109344956743859602731384414193722269274733997843384945506232992584341423545049840618479180724916107297059707518084468851418275034408766808258511836682595610085861470833656689558364710562575534241919190340628815655506178476867795628101703161605155802664947082047629896549112200228495588946318358026939259789798414022812046914226193899851944191200176448452387365846728009982668414148061388251830530686056622837210206489585609574344002723387204878747178179512910142609027431101989968208744402493733407580851206735750897700805259711703410087788375210760903729902826544203766399185000048580420215553365385486635263539550560975014797918692619004226271791632669879212847515525764700493920171012454494127244318085625228877325060124520554413631066853727457212589472192569599298941625368276043978998906329659220867825288638332600652201955614610729379560912527607534249315473166745959259773976669136020050070170844824535956607920416211003019424748879929057407988604102085093729106863573357885830721747145613473663198307459831151831619718250921957520349046957416607306341739510636627015581576487306692744437717845503934556401963351346957679393264140252297943503410324759465429497362320693671116754128658699868363522569263860790059770651333119769298053269103572722395381599591989305639259840412438968018127409365776173062468613403666547749500811961196538474090436726457201788598647805094546422284718501098407430727544568157482457804250942849661193323252851603713368458706552926330082338310573391745769076387709560247808808057011537306680179206997730447838159692675074655460649362531161102556357679132268684575330395319528711029493353751097925825996631006100633909215693016091148694973680215740426265146105386542191019793741391624800071143797058783353146777196974509867284355227488665586986202797522386538872105746669167713281514528490020647387051257229376732419947628448605152943158094664552795712323214501251513538086572538828640192904474368733200654643854668543745434633041803435399891156820230972016385135174500242539218497551235552788546144485221223165396340751094038984810713794846742069387127972252110565836162587711892736189957311714420715425447806353412438513397246315027231574843361058763748915437595365467565282078185493371889970227545848694362099774827083457400092922413957205608635622348138960136858854893234890924012375613807649094240767410025780943977063975257143720192372663284670958857215871396258617529438057367308424568853136418214216679331888142329157378086248481295934370651389507380907720157402349523908639950134875345266213083143328631096602224839694872985060102670861749362727233043260334193349677648054595924681041318256941549082724618824100588486162497619502192902288266047999339658707077610823225849966422268804520766319792222105850031063742437451887703687091136690358170858269301815540786891170696560551062955209705612257984238104368965286482808935520195921339141304424455445134101159365422949909705610029262703804574530183031016909141597311921816508556985485233221088976403355158758451417424444136480058133963871729310600115744575942182138700131722561852855119715296870984902425496425413576434678021619813868158628011544505571070385594864383636281572646426185080567266453772756732270523534694308433999581230433424192371618402881626841587518525277234393282045859949503999290122974818571776996439246328360584262761015729215124864779165201053857652521521524667155567074740595247890806075697728419546669105486518633420221946687502748581284478001971470214361644365111205005946461891359892048367984280857007595913637640387178897174206288201174933303758615215000232580043014107667110296407292939941038240241046405783407614147798676383027170488357351202402288857212562095100366428934967059558631210782599571170057046070487152408549248568469475245301420521462979500757111522748245800239640436791497181212224307756062470024848602759610634296499792937782581740222392907673560340607682439468686539443304925569909354913724378451333896491476956350127312473230175546706732195613737682949300685375896670882598973675303960378369442491916272955110031837640953303851036786041595635409592246043023146424429682020045039374397859462909351323483486439859505141233596461679000069565945457972454354961505323324949169518869548408658564887368064629845737134688775895012363083669605342265142186577927582729747091250184863447840706004771971234737812252616387040973598686819691733682778154163412328641956552357037617840455277268696823535632877250823199153497985919711880461493267293740710476316262237194914655965283732845384497979461550040854638290217719037812770010359111262624527136867407782688495945199178500484882038582704395072588847566485325978028914750647098653846436774280117899648703806198161623434235654809232917253112240090499772262053582447182133311276147737493167394022623613894760516786005860295697644353545549640083220850367047400659079378851512966760186697354013604431695871209254756277702895952671277133346135224120111610123289028246830395754953217860723894369456334640536218656690623073099376335319714443909927177115353086016714206148970258923861340936232204563884338188339504674040177442632803842040231809763143968858261127196729811677001155610056766101834670878441905014412072121552456580403016427259221862217532665005568526666238727007301313357532254356294386291943583750529629555772294559859114315415609285847515007436667765431412847628483249991467280378654405233967762802463787565288514544594852114122760033985793786448529513408402839300248001913115653277816427152611748501169034270716121932167548977959085239526943878962034900827518463722095468526416021840414361967705353790212515627968362145246282559856738758822241710115883161059847254297770356664307189588344424370911986597259995395631477479064416022363472256734119818021403722645982166946239998066119088956757428419343633469494316073261244958754589582993268879223613658028013449090718352611555983157344427064769838803685227279777439770861004201952144813888650180694193976234104726170352873651531288357610728884901199611877750270459745926206146518375439913824381911240246003204408008728483176601149931877980115958614421502413221946942069598424918034811902081953782959548974733316654676136174309601889688388431629817473879960963634998039779118289803441490267537129066646209927097181375137469650584330824355704682300142414982801273322112903726995522194172323557416137815714575032943915409382182379748247628677862238193143850022427325685912185395055846482137288311667347404989632058921417977739413858788217763526990418278272151311226554612486690886773390591218080757945641284662981915405140965521700967411084671173512093870069643537071534573619061295498145197528785749902041768859292191343182578651769598947130939534411017861620448855541341440847929150705129022115322759265670968921260556737511224048470424353643150348338711305643652715332513133203483841475149613902869202691361098594639902164345806674695249287936592879066972140492362298158786105693424450927981911904614943966456600459940673549876746917737481182841674379129023303729577817262983343522365978741323925254337228281584912083182753499413824654052874755953909456334100301038505985909040532005321769666604237272038803257846281066277748238833364292521584306517328169967131746905045341625552317926481900780727855128235723871923295116975677675357970292549187759362523804094743996391916055788764699426744864703957876882281873040372932423893521706242052197269469087850738486974107751800462026595113850979617489881432741874530030544999548393532863072045677185222036069465277275605867180528044545999376764444118105968158356049832076544181010739058808809950651927160064399423208437089103651736536641161049253144823094501821273174273445358458582484064309381473659398231476896296919456618095318550326905083511594186235233183544383111445865029667076990705405576142916596784961578779028189403612598211718815381044325529966322943427881131083996294449927019003000730858852104839043881591144206423990312203729870026781428563495576853507773350834896243994234643680172946599456616235723249105717434158415443020894461140758945417490965897147012052191593803318230249905560571281624496293514365126888010406245295630108124627374279151150889785378026434152853051189816676684510942769117287021086230529026132994846741371379812910892284657314591331929816748906976364044353251306339220714487685662971052272595411922793318341585165000510644651691771983370862604266648541354442090236752467036093167984817075405249482495084023824016762105033252964272676463257660438642410244343072436418016521020020153357456839465964194600807359109941120896063574049668126282143766757001186543200825985950286321101647106171765672634727546609939258180055985558994450240635869347746439750290543821592316160668438962674306440305390565525870143906220903911488660196246284455544893208685602993320605425260625158732315660238042409324744440813777636884113449874888297805424034805909052797811512036809654467718970212007337450322043804187487467810713074823263386471468375697846388138759333072577356980336396244050666115427949496767854693046678621916319394665326241467054590113381790951383502300129589618545038427940146186546689251901394153590903511924077291361572088224150060780394727438957357076636098232633432556382878294943710187179261210885808049716054329263107666664622138093408846806056392073174695511780737366557631511802053265241807594486148832619965498779799437980956361013292830733835195298752859126922138759089822080437588142607377455986853220230806898385408261372909297298856016262010665368448579459354641164393476359830589725457895172972863557878280741720292056832828606601557175642525240839962156922336601021200283913501223460011063922475474299273086765168216461135866587434300081082965205808044093557543809342071603480541358576371001836609503161429537494467118839439014641913158525703268124163461182103864658673567017339436598809902368822346924359118233871403416041707162623319555571245625138770846289118098433764849320466548240563933501647216133034919203962465344628389535240323763569672371720452446682129892776487724855112523109121292029213490683263788663098451078082648109121192514091898574361365559766142193127917950092295378563528676296948481074584396132135693682544042152520213772924733558166210995682154887801584657040922485996608582401658783543014728756781825980608925069853830246689219381638131389021014760834585307180686982617119895974428083623131649178821733687334086654939677475602985733647067125095416175031599602815686314490086423773368251851259798647326021799494066920152092953943350073793065199318380972588921899827121990720786642034240742468509787095802425738078079450054821066237236626377059911642381780666941599724753872870542143882294081332665253870129437918301949879430135764003643356671499474865253846739659130585840215712073313824403135098361751579889252034504322072677038516859006090188234477180625326173238369483337017489012174768173589638836283232381385323140796229753141998080883816404849806284559918757782874306455407698272894028739781651500743045053260813339393582752607428402778111166701337533950668076315914980374917006622171012467513953644146175899749215468253222731275527541853869302516981256411633298214830602362037017742535067897729125567143516269545926279044537474598507304917906772649408431522663403071498953107714370778793913745910848051278499502167157882538327652816492832117060262252233913162876547211291834810127954551952171854730626540305565148161666256947313907696319197412869153348529295785670144695679483020271992810742048596475151683051364436665442053298042112948261440186396863581558045301946074261706652463490988842085897206607540870292508652927833327375251572580155998901758926778564074436021145062809895866069594227195244143535330604625673963047985021377763022376040200391980706207971531230824972042991707616126640512116891766776666374965602288430036468657219248554291828194825465780640820765127604343117157644979163162866835921176853339580363623356362032671824569919314244793415740852880338574114460949021689667007903332777444008086719886494885773580562331850104406334466914256970119774032442406887340709122243891968703907549621001235993116791681379487646260786676408458772773603147449159782534876003653263537224583492375396992413612316670348208170337477247355737569039847264649893188310694479753768173672511061577732944334105913628246970267373661732743631936231415359631757697707014775822368270851694890342224149953528623836521289304562412509790561898184719700731974593313227311260759152913919188678738631900731306960388818436554559722577120903517107675428207116009940051137139609218712693766892379854929446494414282037573615439759998038330783041615084529639792647810819809563008168416152895268754548063580746002661530878314015154289148378424173522987112422222201316756862799301295305023954964201719823808977347935377331058262032303554672942548707850379189166190627541300354305179284819298780326081981094135916629984445847584394460966051838866532147497104687222555598432729739642647127446047152795200928737003284356642572667834792073126226779858253123248874297199222316833040044220796872416573187617243044121425393319686969940428172071373026704857120395194411099247303469538865656952244745218537170467147014535790737281076985566273609067584245751789223464298715147165177071570523486658272262953291148508853829542855456141175459166953287785142115646878282654988138260162297148828169266035502872202556243493498482184882524339360315587978403875055233202322028306449352589997995607379231457703028712828417623090735339047001290978251548904088852902177688543528168093316470490492068765690661216294277952521247884456093483567484911555005060758443576542681366064210647237545315187664023186299446882370852810588276096732503957570050230491230229115470458864183109584043623271242871819319397970171979208640961060920478675619757723436117623473912601596051525495541318111516301655504157600605553441796816545995418353005865710016493595181646633965439377106635912657406355562443587725785162794235763229666592643372273793068015781188565201799120817828890983145660060008518022751373255428019989236856357209910827900532486206196890734977958620970968942207648571105460554577945945766896802743736887195774667593092994827667091008472128621443314987850154379378618032936521252995933619882250805787847102199867660713341454172421162291030535221863144972259240248867111910502915045798621354970112890482725336104248763684290105473669879439953000901628534900746457832015095708235189659619586187374529245858835696955363070338701483625533618961615463846982606910263867043479946366085325291371963122008142439968057350909626722574540291359900957863943335107999406747826856747932538162165643259516460085481396228029701449530547388958730520607323628224254976104588705182933786902194211015498970859018494661354672775451215017388719192581866732933480198631041449584125449804547043811786193118235417451467097377993075164751448292036666477209070848525233991878402322825949331414084662143944807087011436597630742046147823823794143981592563204709220873215736277360701604254089065955686083630019220511991839025393089924935932830112638495888768782926641766527036353973545952967809362689460774315877661351698762843969090026901127281162030934292426069537791553422926413786757524494567149530695218502731133893880037403179480884248823121100614394719273248429680301846129441611659266182100258897816818245741719696756966514067654540118524310702133358316097666944000796759353437865362207802610297922337478584439779488205382593728147012465427916484862249064460013880868876098949534769911559437853935534994486075033650247536943801086093932868377932323709586136082783617776973683744072065444046648027075365443207223980420716338272335874459159044931070336392941896674321658698693311388263012756493896834007207738653909163325661428836520974960934602032845816175064478432455044237949750969656595654359157238301199856247854927850164515954993906932676367260996913991992420895617323827130163005268601743147268806314679495022756167152087701919808877464107766350757283651337842477144270129599738988148219244174778465496421665021247424570745237766300065737636770790140911550280434557193070948980079518779127745279677204879290981813849599256752717143614224625627145824771991621521876678046750892238123828066921249627447614575577056079934709135009974780344757057074914304826568834282397237789080447301108047801310656634922289522674085287621297267908012665226640084914627879385667303189290552440117391240108284962111900943582126789191967581306213636982598748045389190850482401617039917349874741340766353045890733264972054149946463604794235006866250084118802057739397975075520426060346687292342670802656436483314846743811801933115466309247430433016813665476778101525111329528657550078057983029740011336372101217593609429410758755796582398527608139243581247519495464067456412712519557078167126869004037097173894180396481636402183736514366050849771733888573773294077415858774468904437419911461799133943099957262747113235384448620115303956462620906794347206814233146978548088267168882296860588516467043893035358681295155706028745373233429301090298823530254809997608420332230574514370509596550234868648396486799588813678549548207360776753877278438246074954076626290060010690591221558676028821428255375782005949399141295966056156595547710561859151859118706417967503343426487616097347411139034901371019190187172694319724831547113444926967812874126733525655483064313830271624990483840171542652110621890502650770666986616593770835056324591234426907115933597225977869144284625245188199776885893174472505568557503843478095965522587677799103444641919462998111134124828648338801560391041595760423906965403518385141650494611251116688279077677931848807310341208428035527479057577553598743379236492935580538984362078992002376725372857491189255740505172802350976717423527608370403980209439479085833974012832302239218275036473403966581711065402767800082616463997238102196281095724147387901291934636732978232747959973066599455856000906607219366052096412383745630281257202428832900308289848361206717197150455938631991598774184500709012322860631146218638348077275812393593340989777314911620350338990288427534954946092150513940992203685982822133122951971409992537433678651391661127143440255332850426296829851638676034379149104332267179428911924633291888772402932022862839698748077003378131529832010369677923369193117724591288154307376947490956006910893214433072544267047916110177093838053882915164927093637322071222521867253432050248362324007598872665489383310080911087265013643355737807872906787605168594944512120613446409370333136613724316976121088014520554166995152393254922917781497028187791119396807360514824872073512413172066992786304335620095461479785311273566572900970606058239456103067668513676942584397326701968193349440890602806749403809707895861774897831810381527046247382619566642790841405148872506605406264634059777766495059842770737160692664350729158685709935050330980275249789413242294418819029969407833723168790364603827219254270644823277195659012253154954639416897523571469958179994216160092235693842406770284289148411492801483399271001835637386304272837847519147679118230742122219797579240298417768687556553635300657448454593323682265519820417343055021388271351803029661896108164738682953648030915075241113922743884458888444603225694978042191034173431208873854796729771890127571848810541828121435813381729495719269578252276605000707761500986331341628613165845145163535231337916173330072170559297377113793047149087694896224106954291441195874277540019227029568395952149456577997628702133183489302785595299609379503233471931717593497974480840518000125584631766754238354632510673745750987419885639507613858791825988917348121426330018023186276804165893837417878578240377306228673253762164267762209832535722816916898474448646988678820714920225019492256539721512573945360779103463004479839525023060666773965442534403663192033742383913986171452961488955236607863232861581781084838611234334985534566291028318202573442315427984112812163270347653418513717165208957796260673725209466313196653113346993478790189973011453962085374318821298417139667227165506587710587248613956404001266501120013361962518531593144491131408779267579644718882117113694357039844730989192618686896199169879980777775707207392830835927196766107584115049783572835604856904432267444401741410732935722733510292359335578203141853768521366546584262636991978549220083790912521666887179395989040371512519324682998913870385921791395242841913355100249947849541443853751836514076972635102085816269044436720201377206321911199397892160710107065359633017138915153467183301065532542214765872161850688583848109410281703369061241463611673639720704658223954267398455244910976155075528789744913433632930370879058827435603505452280090020828508387569874766742507614238960248562424700181827472677457458339458278400315595461983764009940295129061173145083482325322512121362105066006027860968557420187938203182957881331889688195031607302554467901854851818841849455875026361496922091305672790510366876472699665967684069917451766064747460125007200227988111962912030968082730406648129641817731795159867061294301110206810844737108173771618768170040875705942859285836733015267286684135312309110220581346171520908928403830049509515831789429433622602858649968545050586370761254727625883308132509370572544761580324193816083604196244468638451927965881298752402267082055854830845581616244168321051157656807137328520002619072650168088770831382931213520108832016505375602191489781525455499153691473986910907561649900729443378789672935642826125351560132851170766074922802727162577093558438219311790708195708898792191779335128923542602840603747535225108454674281296519831108357893034323142505097878356623504838356124206802919464072337706875904439509854204411306286288239810640457710340024049628798994438148800959474350291913763725369150655943217018294737102073887954140141030714907264889537979745133767621035651431639066364333356507294680880656335905103690907717730761473984355308856560418902973259523508930788075247637037526241265340923816697396806739515726822033443389232172763241976797352558409035257736138948201521013984487014067808217402095850831609817433415596488147532790113170319181913972684623392183313976508559925368866931830715491536677749058320003553102493813098378660505619298558779771271282476184322789822827519096846266286783792258703243575768429027709829883053543857986590801964841394475978047477136356420755069205270131112129931103066170200310509128025455644383908422019350222010598750504505527814821363353426094229284229701025014423339596720182665807941774094148170441984094226533748058955821998108915601588278398187854355668523338711390584951420739020487426050662895714272461368517972503327545999251288683859250697603538613811893846690999507919593601186979628463381987912119343227881438252378818229569660443362359657377968644049817245567654988561962394823797984796078284840736277004987444217464665081458277582575441037599963577080449200573960094589720628701488134730286278015559329087876344415869393246918708087255367208123397031461144573324339190617759132059375249431439971435121887704877037768220839991287986025169614065878310640896831212601614534122469968087657482766213983286870371162883375691949149922070095890388310424877722082083183328278513931888719694399826754850844171647490147159716716002240416700985021457227879356186650905922178825765875592090375967758916155043955323003737080954261522620844631287987582088484314634909213093764531921554620503738214882008102792276351638917347085287838691590525556433150691795161328530100768293992035102355412318530001706688185279646354847057002940812514939114079288025386980587725770255538463888267159097176786551389322546332057711457587857800666115400940646851220301047642486189271191413376938221419271569322359216093377726564229404501273590219995426300572818058866965951652975587464364882341669199138217586690495849743060482996705434313566074341500148913413390444211521705911742228986464397834967862767251378994049143848477534454774460999019738823957674000549405564610869136713725776896139038070569867677351836866345828929484903234201039527417143198886432332725444706935838936387989893434010449308157490921659311164758106486163793304240186369939008206391700042480896226960424654829782487502503771190489196991597529771244344906410975392869312749512215175964333074554884221993381232219450569562801941273371187000940480448053944579434443208050995623143849165609556621953604054530314732804837024050932874490871010592281217069174474527472797477364512409332079782507662123626154501498056575284322779864351853704840451168120658972124763821900281221667527734074177684665968221137703409542489190569155409707316492134469931322417575008071287969232848270705591406994907071855794395216019944761033787007710884594443412820873958046424388244661459283013653460179530623778843895419519179184746556582807908836950199971817981418484581971273033597821745887043978984731193066975430716143205714156882207948149025570887539684874338533759056926439884980538111983706055587668126414456248035184080850985153986221150465274579843180643566227566506894111000253741426969245502804484872442102031957963700877391544926189128262022470068777160955647379471016940785870808505195039576823968688891918585705461725005523652791680833121575346534481641800598583018997045924386798028993404787784160106700269190276981455219476641936073096908711592917577755568994978552439763481158039405029019365408174461548111415716485299246348654313951943597294636824145341858701055761113691796953958399713951405257757103950621785717681860476969033037712175273212386471519725883548671924164147182529307496935312309272747339908620218766087966371191468906933491405005504142376900144432239616000914959366647523536913669303908272351896338058403901658009495378514089639278637289544562261813185695177765937220770195048433196136015779006373726414699074100578858261729213393253988248906388468806327026304544276347688387932755434522225711796613367597909639108953634649357013240472444386537049199057072141472093019917446501131246723099495182660161262665150808647857548830852249719275063716631785079214515310444215231992659135702118326207387171085981387926946349504730163550471844264999411583236508645829263439865511796911076594047154126761325246946484168537711516051379202669338814058533704129675691163542872512317142527657314057447244844534720911885287243626349717123412135863323822324111992953094938109180888816811325500903304682862085630414929447108191230740132209185720011615199388821122857025661545988014954607749637128156158696256375433093890309939083268687394528577992800038083068458645745966917629821407948909226073858863841722747055498608838540789322851313017392187841717264925008555228552984859137283776754281134766854985850742104054432830122682269698721969522069462197764126609298987199877015976373503320831056163138329783649985533490107613926971306982627181352641958460094017938024669817118461296836035050350760053647401872090210772789701177139091318969900839945061455638786262045091727710976963751946634781319852083678969892592671586431538213644281376949021474297799530876349991884001599014062969334802614211892405377086090303825201765858663662819626812287488175486246687390061969735544718311664675428211171661163561069504138524446764191496918547396447103379107120674931733539912380077446723116695907402566039066955088182535526694154750422048721517277160138355179712643415127500632032418432891562578707652568692709584029329422781341843066023389897404087577104445190223284348255862470320835258938621720849412260463750103557411275075389534523083311529262832693544200109745952385508262562931515771957488037121329128064524549420743612867011862400051276121941154528522377517172881479629829937532063667780405919086900833644379029102466783254982897505810939917250670666271835144641412393086893035961401345029601078816125671694375054578420203797312849882150474038225390975562255712706749634329524114223993678359262524703545968664830455128745924626717708543920129379585305791743577235795007857209622247913600585896730010552678000472982747680043812918196699198779360586198616382908270044072068100221027961896800661603258730882819281482104960447455305307187605104590036926937056516363147693358743864399189606106026165129905514092275914819625179026282806836199951073579301577884914120881140385064680750532424385969639868207839999339788301890463710311535236601473367719389194196732609211113340682403913482640003851245779398659033514834127676881096748763766336678764828771045136007430134292241290165785146665589212822632941049934859801683545230587052105570440120602256468938200649019412398411293331246736177241701762315441152138957755613743593042610742756817424519505649417072763926198745144029586191932767467517833035378530681106274754484834307239735783616727259966864374333014859040678601748183208538497543223174916835052021896880479284622896138323758889461706518363564520973617769295619142429695662512782877955867001745539942859103016977760157160502886614928206958845490411579894691502291664117031608660052213289694890347566554993315285955983304948511704919521885304778706214299387640300681014487819972331800567634982887558842423443231297885777749458493006459726570070665625469741750604937843696439005516327209020265720583247604008535191363918325129700242767300048742324650214859281448166388447530106321790223133464164095921540491365536915877401042748566826811975027649538686855506765051759333418841707311944446376157338730533675123520431844617406383536965884111140221009656046178288595151152779166581488789571496642335125053081823281739340791015620266744205514694676542544700646331145128130939133054746145829252501782112341797961278719326305156598155686348250717036265977087172809945205962659372946795326907189532781575535087173910120985454536102564234895318121234604435209444498102974705463187251765188863366809176570013767041136526302848365415136795716043566510706174001652032045867967124025748241158795450704391296962816151736661105037242713610454145366273375473623781860478232100981633140715262980870973223606851545229676592937122838228725463440760559283953103604590529282700578551126599115466086862322100809845606880801702053052447861517013602421375066277929600114132371153363154310468892514311173846476881477203239357463065130428147290150493359006872850814274730631333491296817973296217657092099401672135600106455121640597707304559638709128519623586396572997437839736623850851718421360196885325607411914287231757870120075999913315037914842810859411968006526177717916571838511597458315160154656772930375408925821488558178167252297735607573768721365787313868206122363520229019436939462733477456280355135010116520204741868957880654859457987509832142996292300389697957523748828216443972391580133906959085992430095956509332430979119603561786450235928965401671483629262010463224950247467309954911026613794505832159561207491165567078256263625154994175412174443589833089028967346816050045615902731275618624454493620020828344064722445025288623484310410363779787168306445413951150885123007210745082837572533056081475024569434962408373304588905348124946355013203025725653916914515235977305656682499654941689336162920483650255725266596450093887124247095974507930879210647750419747154381851255931376604979670266199674556985069819259177581157989248777101544145550481435472733080345910239754288750471301116944967891424877428834579896389330051582726762316287713548225360824200144440176429530680099086293545517656279903282975581315300669380274899603206017353267981490677217834393796610618158816980825172739097354855607497992997088477693105616949708655790983418972996201418899209643270892451018301494539684329809310421655233545908114942848614245770524518057741902724948626187918562385372940199430108025849805312269710725855437010055638848677157204003893842045188202691963987702573086258529386895856724305309612452571735365714343160710924846037785449949908504300798926506250958376453745707003530713308998885438417189214010288605356451738093112147195950503554226795959796983296474665436429004426604312017944751947039064600173026850139372929031851943606324809226290884183744598212900216360043091393229276687346670391822931664547198191719701203651681653779162707134446643200478119626836142611325010567524120135863457781625783331229203726198396158441924529246169604148097758761646103130326772251705674238303594139236369569272151936447567599935976301762125138460336527027490660333557973359778236702290104672556613107981328115712850743319228319564224078953837825194914281650096823084955617805914769306109788039979308258218235340375502027252779803732990863114921099371203575296828729526550040142501104469056685944424066522704271177525891718057776745739297676637635020699479572344115139976305918846439188169364988293533974465735637828275922062921671309049169991116931770127169649071618067366979448373796023836018555721753096991620496653948061516852260799284054034004588466271586061491279338250648106755381185426069112728378045271993798123979364909352364307568244343228108535241789682084858848513131231106698308753633936585932943782231658832032382232856530491918572585038719155571054782963258736756353694977035295698881033774368748378771928642172292334663271852445006939112907190849011150052056994689727860946218022729620174037848662651832568436126597521667485774586350120308470208399844496176031829816598435440249339481889972459931435076557389198919979199279653781986542064231544967940965517544834139791300414218591968903958102096342458465566015081361618604308158565205581764739862507772973402912887145540461418998058019810954717440442292495070341642196284697537126931606663877049384866454859647442659837583082516561083333766099369349770637978498119210284344526234141708920748584563565879550937949197707711284508226899247048604070868263860512752565580232373547570460831774812112633767057156648051911021248601213501665772959968590917720039253374611217313541762975440792647420682410571546225695328434775523784196518471244591033314495363447455965609236929492939585167023226017833398667682028056513087773682044248131816938521297828577689261651790172024438594400598394588531629472438526907110310725350827691021197404378172135624645209083379946319903681080342612562944378047879535947222057138051980258283198296155782472513829214616721109630272375783421564584106331547057177781900759910099093164766435980802427301093990012755366395549732786707348230459511427863178448176037001292027942258268105198894667509949773345465512336995130168872477091075887792016275802005238767129044685697762310882078398854758532786701709281508455890672604601291931420092362771738982923368153643650748512268428110218419521335531549853357442793495885826302721843672052117313824849102940867315012168590841017584886857608068539501388974917472497601909932182937876944485679776536065846193709327708153706930806464425332993500868732809792725356695230639397528212669568680269400127488436266620323535849700778314070862564496102555829635668569410671755050757287982351741459634909242808700736000327955087259124978876189428516930745985637027983813990971588621066026001325104416527308332690117696419506509221215620267712447030763462328824104962535791447165061960649413416494241838396046122650399704760066648017664389959510145395046978555124472887894447920333275312467100894418569706818463238953648953193668714877623617691061823872738788722241634152348109491189181065145190221943952761237023607033136856990726485450782932470078256777339467773164634752654095400041095139898090011034849874028496118671135740903163625175983017172472775903591488915337911299401502198368793173114461184075539259202257459907307254988215085037388489157149289224454871936692982165593905480668366744152817010164142852294969821504014412303925351959016413722373411848390923616113689072962604925900889667615488334690753152579295464231503517706900520314791336841129840950999782690759713181001572515199824965818297451320270185052208853637573448287970382019264456754331538800126434668238833855164982423401980191220646672356007757688394936477218556021138272613035320007492848289587095584016757203125680507763278731858201845923143451256396953663852904419255687910101617294436834960670944833585949927449116962216714556864668302402366025134599403626634151837604036424444278102270936565594906851965850188647458859287232137432740232550956257032425440558830186887381419082672076750104738421799952365759425411669007102313373267122532157130528091363686062415768933946138829499959589742146268699231845841913502109948406383748855482174105103884637785156595535758628104711950640955271501213557272051566287661297053052806155425132275346183844797487783178414808540495448249797210037527007309725680675024016048138810541685139064837189924530523367634443632393677787945137121903398762161118539633476778987937226318947750650322369558669873421094117098164286591634325889636796051388027954243751297725496785799475768336117084375449628545651997655312028872591561765707943007175972804509074672593886825290947990077631957314327640521507844635502301209648258487719899484986065418508901248975906171913662559804059645558514864513224536155498601077488619156285908447180672911051966268738371365689827427272621660890410999782492066053262890227690040966148874556350682685879714727227068877485844956400061236629365553206519286347937523341687972956047507414133527884912825275319731634286254275948162573652895146552212119869233797537950623864002082323674469096766289010471686885683352502347686512398120742187364568421424015566796049181056098490499139284218003395936131044524171139107660183927736208015771186777698957766659046957874653594089102014056538592185731701690543264849721293930222791974726956035303795488664407482189737782066677397135616814441298043943957338832420983108054263729212576742268089051094005323454249683174741112953772970829144562109462474745761428127158193396313459883601451240895446957794705306668454413786634185155709554617599454124923148077057600261384701369117677250593823209326907465721146671430755639115313472340801273028592909774437975473937036198445785023827597465421424296910869048002159608790874854021388225100198015551324363400867854077716612867932419240727765172448117495425837142662522595558243182047659125393469199285243160404052144488988975505869930878198546667773629810179058840917346929940841895994318219083614757746532351442136685198365481627139034703103300025630958732403796191636098388569278589406359137728225572983963957382254180363971016760645059064953010550925774690059004617277769648863908046111796470379690101227969511143490824462077283990113549844189934960873708433565360080289282625466208746458532903027032956833680979140873458092282629246134527367439311291402579908594013903554095906384499676021574621813095092610480753147508349374755252147682001880571927406323793355241158342982591274514886731510277268266822873875614122947187998148162380938757860104814220247000275972969732370996142757161789479673465980325848062920825777661472574538009883150676791055222275757686178190913396883976707397923478323850148459875082341587004781687181521372941504075762841354991581156000156019272116049687099138853078131868567105664876521078168763799170557904636680048008592391491508830740951091733313246217617182767007912736021880677491789290415405164383419976486156348051061283977641435816884664837498461697277237786664939224055393792534455712067135886156001579976455861822029369804905686774277415560235569250360578279104282926675864130037045511747180090439396865089587935264070786136035990164931112832741168113665703922463365577499032649342320526650379967204435101545992958225944353263695953927913108829044387278456143917734945758894578793283130904140355589806905768071347488844936553938386274990642369866293970081793215886435359770687891002191843917595766398858315385220324137183395053088608499657597099645029676556626444951032008688441049548102550288802208534449303695386385500326872340307849930922523345889399193755494722973263947265807562487077050105069536469672165765783446587442873750987186127906943454136349181600168121631548477131725875139080573154017568046392614873783669548258270817900768557583942067452370326674622237191059384297513118017524483979994572323342504456183332823361466051432978366684662475564204278699534473967867616042037245683533767633315029926122103412175617796759158562861750514580255688519596940173169393145959082045332054531003207383900990631926253304772950832062325704310112552568438551644165245261212704656367928239063164174657772143496157392250240346051134056582003884063124541602176106239523187998169736211723447476006234602546946665284844419384828905151497940574745078183497372432739496561536635319546582015295483056196221912670451406929952712636217135918263144368384631932739325051673934513950233220331012655222006891173854158699772680137039028265127712382760021196639744454302523000798137271692424159786777445053381345984456157892164876865398751945787033317536659075121933595770074906311455024292663015295306433430593139507738868869486170805066038750067217438805854872076868761917366801446305116280504175648749892030502039296451238867082359002367867918823278095088742350394541973101132445131453649308365481093458309819199249949161346141621261244635256241989155583931809599805873037530118278301886770634978704134951294153391637635464386990820445316907589706301444858923645694092053915295585199153469765893963651901916888811202289032467442967556553197353240997272374300196069207601826231347192034887212962037036713822949105924401953502337035144497726989151779076746300541442259712602704163663407629819817508458326122047209099558921470186349323596185807999576959595076394450209298772511401666265310845840577367347477081075113350240421537744929961457793844899002558966451547169300329902912309759443068582431369653599501520143281276333794906458881465032484041390510980147835383050756882153204334457888460509668522593330979497380507692020210841965466191883835596297361220446188164961532435852927290808659162685928794632782823905704096575452458951643818969633454891691564251565884699957806401330876275276531292374783387971324836654832390335535773799494632686162223864999625365930874605188318380469345961300351319738760096024487483481415762374238329064977279855370522359975144949471741994113040835257352301731754000820938458472447689888682366673056134390688632690523610202848383321369767777560310209709816110801280488070195482226262271783808638717157931102025255897899327099156747050643058489075664789604241207708319598600813235774785232211384956130010841520712628623335128334422286340240749733899366442375732722182960463639532434936242185113025877853672700100049645181663611164140557751948814557843783900606156827194654706939432011574341084626357105156277231648241727687857529373116608393217368844143625026165202426990947443624742739274880678430884694623693500167156438097740223901712322255916546806385362496070601526596040485562384988188233573546686048605537583485071511532991055780655511887789451178767390632679785744418082280204255094751071414293578823089679594954483893432923823625159683142909585294883643984302106485739461334490825693858209427504055755763463440144530308286158057807619147313945842020231276862741027425464971344780024402063484507280466499382337396096068595584543697928799955970344167337975176043479124476654728435103664443101352792011479360573048458053029309719489663408981035654118415512318493376970818633406423449116575718088165137372899253500518199027752372386232066305207676977480301149577493198001842992061586007104849632054786588419401161808336829209500720820663710557243799245591436030738083626617194283951708871239747742348837656581489827426572949831833110394081370569966881365041111419840937622879126972834252466239307748998626818007803240306358267483381873478227291315361683263827169716895896715923437976387770289379294610823170612395119472674070346905071229570897487845981834329722984540111964428274606929596214629091935917417768374388680402726065847091840775789481434873907190809169754106212203461983174204191683623411089730750897730185602341728513308428932297397974030099262321166278190846129352412169850272158080011675942223670655166711114256965268748498750491553453708180774784632815069718886304002988344919025785339746480764477522542118658680293273225971263936173047806009965604422975379018453731304816248800425223373359962973436521566394344455353698226519538532701359016444702938809014515169230455372125500215803623210886274293344557932316956276409932626109614741462146639004355956532245387872226983248638057400817835669040044467132287807956396646040349453321901599863112524662470399862009628678549288043926944921176986087582528331964484960581558842866284965005803063859691597997011024572258635446065585006439405038985956223866277100612151755771475959997544386766634805505573222744783800259081252427166320556819993548519130961925278494160480892893734783266297179308900832216685449089590349468443933572349720079882548479045474751482516077997471102486122514563097342091756994811395595177577001232006820342714003270957538481618528330709360877674016231027269158379891072954462887063778258339148315241318838536021207995995353557595155104148053304296952602104432295272972642746471339599529876017856168190519061068406161683449004195838080005832196400076485698765673381084136966655554746530889337715415989505824096411036514642740079093192045469529437866275393004080927898075636260860295634651997861590319762842087953851682174767593612716323543222419038980969590570732878724078215111823684443819901728283367322387393408850155484378743552289069029221265775107618153205442137421083100482239500226257324463636739981474317942017533049626420589312301042745549205775136835007499520113092459687630489970013648552960332081814379373496043263498518082942132787336888673681814026292203637128433564064122181823825744676447271443163555126164297124444017783843070474968099726831097443787252695651905000768244064124809733795119438618284550626308676303721305810891640456853304446150155997923894130338705710143986328140967092862337647821466752007069824454897768627277865424296390154616065815086521248621064642323168848986649436351396336324343365518312386567309116753757393273791902612655080891755857020104870062537438326205144947419688499114857049211264839696450443815768240582598488147123872537709951419689106938732931934075797512280689561273834078796066044863546986893404124425378369637161001395344822136684919448574363035536923418760263947107168207455136810919804201341543419695670190958873781045990821419086921313262106422407147208607198075953106604762769713245089823912316889863228117102563723892111348504694713098326156786028902538950314522124554792497204820080337059398768078098208061678358159810451011074784989636444572779974660831881232245519379872669754945395074035748336519316741068530101915432266765753301311267022666899185421303851226576817492416117551777886825545529958593456560179625206062579036982148705049372133497339102282023763118665805306934036328923637308613813023108253062076795757993748973100244286693656545073239382039713100527021998926963807657459946992001281893502388154297892006567546171532635776115834231572355938788040049538383641731659140166476838438479304797478669887237685824125298152103402222332246608753045302319129353753617699918333113842231332988059733249137392436045428871235185389670951805753124467057822180870926993295629895185590292135638855235643784701128952748326925415452274887534589117127796946595396580456655312065563624922468205301759020832617075571146110440440063826791510503328115787287361525863419606599954228773360636964658946927778414703743836755933807251891156151868974420842154533375982817392522985196195435414818512085124169837474963917611131883115657893902445998204469556310146128651851996944748003899464614106046072819439660467450275987401305209670331686877216292244527676702226803678342762520814922842372324878911536733868553849186177394630041914778555957869419488027410303968857885094892408489832729867885498021378123659607209225860969050354447007221899259274584370892679591168231893064121133297404778987132344341746452235112327069461472893263638816991113202085293292504634085469052687789215260115841490895945210564171327465683893667199149121386017189645725228996633556976974690831678630918049379246037895371339655135929767145059350400791123972990812075674809343538315632918676331314082442429532488666915149155169741697417659255758689589455570833086025781359369539123855913070020956135038063852080367905448078426124799126566158238251748700433253577094603174114881179187402812469442823559799916576828722087499246999222154323933315661098273099313757763407004518258724570772950389910794924522501719811498948233753589716846068120173988260262851703504182692635952414254883058149562449755324984094280272901048618711044088986649972228060453026110414795570156605119564028089451565624134639568152532799776719340188885592831930904054502989326654879735173809560226887067810649585002527944961546746738634033156494610510300518174745848587591503470407003246361910600102527585185054907441006318613641947035610120316255833587529998517779965251458199278593067739166741146488108889834602692083323173528278202089724865181170653868253824709094511022138790169666020009822371963083682380239596913332347768859557386467634157731493234587203114906604328511055117812078948119156411404103541440281039715574072862981691023068999039582224790260812907413655931444733483326178996396974686097155880024296566296896330251127225969569957530037796456716777805200614060643154343355132219708718862013816172302365648657658095370856643461907735175477607982889935648806465566758437621118013707571591713258264820469085578784972761173667290156898874154934428588449494629433982099738659972586522404072298875483618651410006636264296918718916048154089746027654476102475355707989899963917113904851042511372214155524448065601755559036519941968249727625609846354830478941197712915008971876763894356785689617453230310972531637778763671369828279769497464291988343362688317045855991870667145588535025614313838765196455692666084065168003591685910949339437998108514877251873301490346936407674456097912580688250982718076061173703750616895435224042596663079155347840850211779062428941216591659406094434712565336079356366502850986665340494271192759865316804497336766908347094191701280810745689597952420356274666646272156943360505239557216532501854350710363229394792911292789311440749283095060421564866243137368336280787231824780655797847761696651654283653072312726077944835586106873586725364466888940854819693927461984288699118807754356425678574571364788409168329192331797968175133286277276963694753014340730188914207583033433956136168713937887396094025870702073664605566540062132984289279383840378323327126747925286588512450137184858820418903256870668862167845333629677814822519950596666748496774746090424098403261642430397938948767584625512290264906490371718589543552942196408289881139778875636952606479172038730059036831553190324454614216966038952734949509938652670020404283574439517125364697899414152516688288199698263562894908279132078272391217793156916691918982261610252222031362909101607762836930435892163409238398734053323759016641042973087656226348396660320350153945886788399508827659253830852648847333187465948908718892094066364153066001257217701144209782090398276110635341416121004164178767807975521912663433899922168960075240320671919480947959808752696894111894995966917542950109813701574754529350396814615264808449109663916298087901620447497559020510586690684138355868643719759619761199629153071049670705746211784318449244835589774597482125933465764182590470533982291787969009646917597220484300149550515909053364310085537276576327848401676733846452541387627106955885155556083820746117619270575031516456747347804703907718073562763216219723654602138362009777657706879201871597375299866281545543275406259461541887641710281083532022342041614880097714171009901814106183607267628423404986586922998139670586298536491484206990480805643409944214891526219560634683240026181333974640387721775389790992730317280175867650396603918782898533757082744415761984047982953421075078152022143544285642679362554569379359128590762867321328480628724620943445870664262098597233015408190231846078150748093693945214828225497767942297876072693358765467358233307372878999994463641104896863923659568079838183604430567017982861799443149984350650457518831056337914959638981816733466990888699094661609090789595909266758729834711821994306769881810850291005132011568611450359913863607930209611007339477152318916863947683406784243559579680043812274183018245566515065595594685456775468008066473172362408499822222355614032278080813063096633922009272182300326305804105587406579694708638480247643291901498733654644704730739166904571267819603793269736082361410197625860193636176536961521945121710775168835178714760618999427241012288220197097739539248034450899877881713139272503073929178017116552417883833691310898245204735897807134347352866540172582844628528710832179353382301893223030917032571360818065640830307347896531501418516756054361118316785992143857101869735177995790907245768308019151950241981274234149284417939627695458984975819716595170642002834348944392967111461921766954991922496471129955602599255783425079804826218870973794540690860441787694499716486713676892149921821481012121143926609660335332697367371579368702265597021086780586618445316287942370006136534466501712321999494798737707952881523887073512407602972613479329002389429758498893959249103061267271493339717511720708009948846607490513848937426750728158195181511522809982935091251603859794265765707609845749190319586276848253164765305559293023486876861973421416211988925116588074800464537001070936532811420852039004756363783526096615836324573211706895533788826249377786711785090907049043221428334578386259852178135255516913907123057663272208530566645361718356416034673502844632377031798828720726777529170184697415291646450354337608910761110049730530556345549143394583149927209233744702536249060936836540096891831821094780755388982988555941394140650102078242363703685489863468900933070158010379747400171917317977515673333185543815275615184604844573613348685730304028016037644773742988490796208901640018952827340897539161525794557017672031275577692236298967831754212658990345010768181979507871265223999262439659414551425133240559586223001383150489186030217786695420537207603861121481922203760850222532315682935740645205084157373906152143897691067949680834589861713224771207864533233230574793599232491017413862468080111571228394702730615340121031098144072271907484398313847968556375730282875511140785018377971021827838933796922094884942087207037294841288392844593975172413741908137688587302826404994525207576278306318656901622522774994219457913421227068955696659884479460130540774297081222018538832000130833046304253950823703903057860123751852882042947324450451419467657256118243152554737296440905682818717234486761944884511623365511900817234843737999671541559581987261663999785619034228990782067297538210160614168057395016739365528858311671206612302759230022559026752166276929009092531138070391806757784539387953900733315688314951578006359527654016670473093151734272213830265444040991156648301239950670551593332226099615832472306320006540692928817594932832454638889424908301792716924468241071571844290818622235073641307362750035935584581487604510508589193179607722471433356666127834348888321610037824336426828178876628837638292019109006978137693287635089776268070038609413616028397492194924875483220843795121286156856126856326026908145403782510049922293619465867000842767492720848740400105479122160586249567873217387070243326877963747018762915452056780664513482550746528616318176134236729196814197222345384836651331947771384920670095375328544455993285318080592789855303933565980192346129854959969817500739427455589099402413275362500824608228233677600985345489461863181605431754554815947551228832295421686099749415846826055851193961829334367656719271082867129362558614222033719307660756389997663619527410270049540934504635636218882165832260833079288031456321049844053784886668695183301337724431594581420951676135397923711113332953008156206432564858101227226405807542145047624649079862382864492192645019125992070701118485122207968054162810092819972838588111612104495684926932923696516439902746746035195626746037985223678316292247774887284427265735432649415726589408658675236237816361183981399257237866277214485008801680028559472897924186207596817698999348800280427797986770041896025662304532430208729794181857694183666145492840339996259388220268418509034462803072682838275494713079157410353741819740776822872787356738439377765659142027350498994598876739461000617219728878191918849297235734698838346088374675478213217535978465509100369772758504157866834355926745513918167121759123402765181583197011398895731324233667075730472919098956179738365315558864345936735602638454989931804443960384641507272688302933099099756270146112210381592685822693894010874529062638266332257566419285238013125323373612119892373744152363193100980543864992927795835780849753030714254359290575602759470880441915355138247536921896989756025097505250692768103542963343887496526537715356135830438610034777421769542373630582138633657357968458336133527384385768633995139673068332365218719966559918073942162364807414692848537330276124761485267834928151575100509196152273230585111681757722594873559697928842219251595797883228395147366613282667020711821847787333195825261915422506345544688420142645148731047732692588386370809693243337229577638478742091393275667056356244523390237589723981773939796511814640436622710075961456816186803376006482952346593502378576316324291631152781810307269561254793037824469055162282746051365931115391117145019808709663575739092157847358117463901688126494856461880588587649427333488138951952178457160855543447420708016697452140204250770780797775424850234884299625614400716634953977194573668813722587197960836498573523307738702637922050693495062669245118850255340038255927622809648293336807523279149517371675443806756805233191258248638204519271938595745778724246620200993220765662408183811346991768417323487370923240635245047118225384305025304750764318830258638293618355714254985662217599640348437230730282716507752020263862308433213383445141585211663874091582559393195755439664602513039304145238640812002372082367288425254351664729385480503642929836390164723487244975890880081842115245320257779921379088571694557486630331784620872571846896530934754065296055606480241455482525415627721882300480951783522346787147375725755346517950021600896167195828578232765899406929282874512158753362541457201639299615281153403465720326795059430254847924000896779929294324793449011463553085682155776177072494369279301874795186346236701631041744859533392511292111696304307309326915821953721246455583480946793105332122046616066910268119663040871016203241321738844127875224094241594877552274659195409472366456350365622254244767850411573421530162988661840112013239259107640915724781053436063541433577739261323432959093658605552037132456493568285569908692629605654680406256310465097161196781859483375131482897977558689248423180080208405897314286455111406739496546234163220659905171062676111124463479813147947771576848415512978906434892259245619357173834938546021794630099637603691755146365588194579628436204943229839304993428088723496395740056194705414493795424021211885209177487409878695247650053971159919703424321714225595638276351450521279900703940176810864741766440000545054985470414071654438862961201931781854439738516383208232296973984505523219895772646238828856163792113297782906302586266948688291661625746423790505073990497527742910153450439143930371021345057921011376587446488632906123147416144968886988528208572381585898677029652386059295914725937731960137542206599459607538275167746853591517705927407874411708396962042963887214673084793068699363267752328183471450343694756311840464912652187947832025542906278961178584389785000909959518476697097149417543344419406907475589416379086744442840522341058348661533611459010577653649046203400282841064285836479896962173278790400245287193970911389693786718359663307068561694514771913400283014580005799437141395535320662574217229083946384167991391651168049579745836379397676869458194413360715415838604326438417539494408807953852506714011037345190515281899725926227315009617201448166319076383894977943128972713633021077063519004214864047786039682039166231281394251102931529133183373231461767143210113066772762670254975260533654640089077279535019418576441956936129943252305895659812563740247891560529399085508929472958276430830775616750765489554140972505123841490805031897992425658578127607451617333078541912495165791157957903779723625583186724871978320352247581665455230229310199778340253444033279711724746077290064574406208427856614592760406594162090884770483182373893710899806565133851171345947544144335266593145177617215164266276986929472784215448822270682441565646285122516722854021046931483091214285987334923558981552043542147302695305223341834207724973314118814363587237987225443704812557990012977754591768935505596157001767140596938837889225776352127400142344040606026787788335571657364018640519292493783757539580304621978825396177382122369942937320874072101171161213115831793491188628477610457823657482639907042975281752516060675642167529945216959827390413105935320505909992788860902200642262902222937329234459293911092779201966807311929689285407488181278353830211966923266946766146795561194808594654200756306786781757225389223308622944949048641612169751661067599064588352944772974511647357428077870701342494075664524817074832776368553612055716186547117858825118247423492389670417046515496387781928358381120039970480315097167185198851089916149152448934081060249357789609781115444789018932275771282271906287113944058123281104735586386755358161137432214572176312018003614325150112052666768160454077011017137088484192099748562751363934895072752121228891885867802272336973208178935829293279930543408324221966379626607587158008218636952121867418837617864703572796466187754491849719476469462569285967656646933247588202561864086208732615325784975168028406760271073039335232562195462830336976556355921144025264663218011873616313940372847580905993314611257815556454493824435235628503995676751788456412103803337067042687191721894464664217221981361096006495223400862129821624838232233679724138625774659787040888241364232726250188803137381868748083395625184255176148391881069120354665338872377829117894575812388483654624023304376315293651323405434193538814877111863878016685864920704993129060824926683610399752393341554309811078453802301379470019066506094398519243103886273071630396328268326011559378252748220247957343615667430305594062364817434944146276267460573922876230965988970720700402875952462299264688595861387626466216341846533242941343047121432337226041419457397148156419673665218754247326998167709722092321919617531009016868942332576215748558941626965186577634528067789746081039378160917994191482631264567694044426708839088792949100633126806686365835094965972609998701275233927730430054012889061738666683835564327060896261817426232983935277959902491294864661882716032820393635809164245953016167137894579063603980380012280416980807590976167600799990591612100871264619886689999176847463488290541093624541839429519391726321414036109495017771878982943863756843132160859610770818996831512351592271879430258169007096427639072337696253491686137887238635996198935268526310989018526532123972249062323623884233879000631312307231657976256401065389185976936728552648385193224612832443535652394270417010024029191847583969611347641895358243878903086142594147087454773985045918994551177384310762626664321117795490345009178557326613426267495926752108073942892722787324290279957498230823479327681847014596785376958132245722360181572285051499798174113573672814757695994060958973796939642838940616937272238082125437305447465763495846870322260173637443224502804079598357768495584583706880959728589565277706937046319047412826886770275022700338139725702699335854004622736125771556479435973163558522381273123973285130782526198679347283482837677854528534892538507729166540866566816164506266003133597918636066835812201136348091202703580776763247109448017661490737683886256868902582574682520127856626208141354535140571561460742661850977074457106319283414692049877876992139925452444145478211368011936667964518391653710103084539751824417796135265567450574663474467416085023001213053753811570222438736122378379677638180641292979738109868789135206035785287957993707128992264919818014719800711469447531843844512625066390419872807236891478401141171148514718155839929062867827553293976090464853956082192745421778559850313750624916596522561732927807704394385927860530760903437611171544554165709765748131721841629408993843995797900424832425894827924188049084423732460791576611957920626277844630899765274294934473341194337200439968323240322633406461697430961103479065493539802088011727244761355145942672644052627096164890022888891687179902810659874365362685155314393760299919060817874490243776893470153604917282117833287302379816742879222093268507720378600025137213361643777801821650633847042048508241984722395329594735118448048361908026170510475485832874762336666127376831001338663201568812730009028862314397210175489164643591334484213174082341606606056786956776732593394672651138891927072491131047505767236598227014051816225445254758470615963801065251813250532702419084805359296385929300868888284679931332529561736492144175376129079789084619341068622149001849947415906535890102823165261913663037419780459398795412505273088181839024877871345888908196308887015525533572282805559605904370014006821893622850894859607613887014241878304875027378941005936456575833761229744111198311560129593143152696811418083721894560160830575999398210253185180072607110734242969165508179379539009218380466859773397666161669087444330694023003945610872763092828312816708457495956187833931507150204112850033316960429261431433633995722273101152834454415486917440491501840308462692797130774944214807656570016563668060917807100687553724314593343838509472750582573774721996967550883246433426783446123317455839086260940778838993188404849544203996897990521471802831524763876832162338340710932139450936265511293856815534520747675547932227166344086508576293748582297646907696251599971609019883178478528015406836718050066341995836517185287082371917583470845851833936915716223827147695662986637197407216970085983823395102966967623265140686358123189295372179977331154954049857649457296850472292117645306721174403359094733530355436033280124883622895305012982383758872394629983166270744795606225472166464692523539374781735834961712117065294881098962273861336790606891204045590336335689132320508022913100509421080331943205646017466508857129907099223136030524194857742712648698583361375355598169305403220645438606240881669253215538878494742085003710520388648738721190003910863549257376509748814301942586576415242605351554801719162913893332564607460275247033700858626549459175301890018462820964621798890855434556068605931246918784515609759524448760228356925895095249456232131327562285612053564996272200110329459193121163601142137268543710109248714351479314451149276573721335632437961320471035682644870442379175955175315801884111401011003302166154018510027549776561232883476553194491240907363896984781317413047944308526435295884598119706378467648385955708687857800994141318442147453016958005264572998470599821344151757832584917145265552058408452322317791540891105852640564196882136717458582990154393194826567561384473428747395375961525187071000948001579726403017625754406097088888294617691283375970038803788979268419860939626332970757134564372893031165629264977261318420830009851960223966400363450355662143510467616305322863440277007760154449952324487139801581833336301711559766301006513944342815454013846439043535178196647123733329221995883310868072303093701190854439297183228484052800334946325195590179796525012232453492078252308145473415487305142144458458512019666658056616945858546756782875409935397488624511525558100632092209530225681546372307743023851138680506065037784130800309101579735797991714472791455938823382178091157735108504447059902724308429727467959104081865856431602736820976895798598480338390551664305923294008104189004982701219189027797433305243514599771573366562229207959572192924501779739343776285903690793398413597075460315522043305314522945756158182064590112976282209223732407737246447876308397280065592248523144632220682913857095651802280877671431163298817415920112651709811288698634716763636671410160734722504731813730896183108831754341628580898944982931212621961275482709296724044918933569866017536899122466374579525556778285683185403206234598684242003637824573420555288576261470371143066167604823471299916677211095701261968898628766399213477913850443591465135125401383625988370276190933338828474288995964451466358112089700455421841926366177920401950435915425413156792865880219994008703501810600043285042779867689965969251927562842313270432309752677798548612237455843969307352723813779853488304588715473522685433679111702483674741437931822611463856554646970301674738782929180051585719475216976067644196716405357092558889779992555145508169561279753720998382624619522185258222953996487552359318874140715944918782872679532917212887811824937444388116834290415816053023030410245142913165307414539100691947913119513307472853442119588468178371407047339168724503465271453953658850186788643884747593105503414683633045242875740247314141448970045855621175416706713633820389757491055072772692800085938956342107311208182364611006257990753765912952499797941469846519373950187406625020885955298984082833160480462193147002491030511814187205650363944622769946776545692854401762536482496473769699129031640387565943770730349593809136402903422256201022613537376269489517329978356429395264041081023865938422171359999603390410510796345275363890766355317174138152287741201428374288749454000466864261610194704536692063689731962943326211651182035905024680163739457591230510142338804178840526499990836582999590052056684425827395053598449058073805726103025336958283234407724724895971992068214589902463665074472160215014957969957874523112147277383939976665744711181827152233724827177160781106931323615790488688219087754316865875719449403101345629070554503261028097282157200246779342780641897245500569465869320237298810895763478309992466818820375322609037375729813473593902520442642930028599146157549348849965447292871803085735684618960886232120983016704772349847070798603585501193057747947499884973259557960555620913479518088300144321444720813238522485972519976739578594702624093366265058090643075435072402677748582631615594832736481361982146485178164331098285269720197709092570310488318603053513227025036682657044642608119797405635739864915479966241016403815310405030836936951332888589665163129420843381086751340150410475402997476259535660777521148017098026126727790308388571482326883721039985137101790604310417165381915286134061828656886389896092416746378936978094897494016337359112443898217750526282105482788248130154564318539425160471588400919707393775578372432483164679038975070356452104953589034786540057931210042095333649242298101615205765159951148650053302390968529265943739477059870085409296421718098850672055150912370907424282344869522884762235942800574187051667045458731090745212814685050011523236720280814081542087118713249578092499691217033715141536069114860993637985123741179408122686965121153355432639014284886126290325159084220686120126647017050196757979810619661740072623720887288179154928259435769621684687375365213061919943116737876453132187201065721640929707841718083277266871351652794721540516526405067974633004838478757631037045534964967877466898616345099629960532820624262677215149799349651910103749506221243393072133570748313210037679096730479837985148186174368548382040747968869276268545928875056672008522615831189782359295291074300137811934689617890364332046140681375952815007780303823646725618265082032539370431965607417414249401066690109449128464959874376279967520525897470425109984563973437632701884636336589394277111238133361842472291182834659614501851001316814325472143320856352931902569027828888638922474918239663214249579518758567727140714122622261931176972184767326064729882463430149367913912747353249206344021259064634390795076411049826834464492644117798108367234057487040184857570370609983374370855979640421797614120112844396330660998273731971774577539453645161547574215017671298048741342349578517710091253525087107102326451484187308457176978774818485258753512110299415584636832061574751211750996000072125364300841051435818164634628543643248309282204204040730860550245771839813612194118127927438232690883063705434280194080430644958829470317966599338795942540350662451617517113025957456141549474318135990134566176658854195597622484976529659116347669103198488665280425077550757278909104121897097167462429950070157803346619522213328198784977471032172647383566050630385707661342571461338673146693436152289922005462179766184212481766038861489446232758390618548816561565947950090563618838271362605977662262375345348697631403678730724953936630656388698683013418820722133385361551938881746718581941389179601818069823653850235015181825136633813486677801109403475544133465196590469282356855426778562395915617282365996693199921019573177694909323512548507638654995461322397000773028894231410716563123323201829217342056061184637169042826622696435166464772642360585028469307118423217911902875153251689994337064886340512745223329079088233959593772041579894723707076612473841870666302511185067747035782066133393801088893402016892035303073190689055513518022527280056500754325616182504530675919147157446446136987683054790379494830359156448531782480012288123320498938104419861540045919105809147358956897338458265527427304834735694347940507251534811538690499377809451467991686816869182585965887731935498192436053866801020857705468501019695782583780803251593406564372498876275833901019181933170140394398994181425536489001812152520757722942360359073395818715279601337480669963137443922084303134897830884577029136267310803555051143665015923295065625697082487474194948462643480425116433783146284749073249956048315448158955973220926383786658407242694524115017959197742563431839198054495914094689272725958021211008071861298667036139198000500653696467421683961067128045494398660008263944907658888427882512664828932612804761873364392413769951573483155843639412726124069823271823211045249586037273251895721723372037765126673734062940438751410737138642390233830326297510682439418053725947024689665828800873550866974451305553473876741781095522569455008792216030320251568145990908199353535218155602626086408752631712701433738304622194068336076504880915676061147932415389260083855499177031612089525410184938584260462745742087690188317133149310357090154843368661779013281160240515068697831579969951404855011630460301166104646858608637796882945574090683450165273329816853605869366045858767522400783690956345265934838166548173225269243099951362933037916510874736066500229532057866908899943268336387044288162888034031194762134256005073444901634777991092015539046329082485096075868595052110640943169212905757293340396071807305315403828083885320023813404431740384845172255237901976914663903262070451366607357738315105160666638585200489191221496891272714307566058293338602845918692752184769112968348252827309322698451887195068853652673791928587487158518733066956707819624436573547061464983170507259624311570641923111089901065739678568820795289032002566596157765096190432189821687774769199021033453576476042434104155270661768723847471736702280199914132374285924814256077751920844895054291589933620659123893859648565431070630008730531434531145028899897304873200676960322461330856158177741742395596401858068814158403609246325509045751349840878278405873529897018040402627865424911432047794553001010217484209854919081713109498493010705876939715390588977651122781451856832239433848244923619452156217001446045375318525105383693171957681781353194294018532526192276190856300692791539458354866555975261964751478819636435001777875086713734929567110801044618511379704230494434362545471509131060428451914608056247175088737337609478442965234898264827363804620171326045144668523153903685435343513985252181273012851779335018436387231678070846445543554800462600358919745623251636158609488425920765134954815748573712760801318074565770388243824620064212357131867226130746146030784090634317633637739678136914003800095047829242365871258835142470105938379351438414198150493032628427132151736585210166400583024935401244801055150482023043733782510563088568832671959286544605790613489171048358875317035925975018291778136433131110820517343848148646047797850669131913772134913238590908391340218339269919860371029133086877304069478297581926845146746941117814636098524702510549316443671744487820940565704621714016605374609150394909705343107622821840492478981990277839301779736629135949444180521036058418162211378329427616848975858097636565824107639146734284889147616346632640877941512976294931960041303170458907972288406648632075182408554027872276992542869762322442808402607145421032141826615221477794787869584676782018726657559023694944043585017578452167870293165668781566537905786921348163392607732960457581267128286770803197172221988093588789377040908343950594774169009151734984474202734731723807166747810696470033519825035161940399333820849214030934897766083850748604970879773442550676435878296661336884141681252382798094864689448667926308462928419003772775367979447515218735334427761572558343346264017549913901684699538585828460633302703538130391119181469343588587644397830922086842682959614744945083628865419133218356794613265921273679991820135119086019348232888976358586443147390922135177329469577535692831978134577945069695697578482677424669447180407409534522828795080670846423239454220287458300419265514833759074695767609506274861148260096526388257572005804725249912699487932836109673090999019661007341181007928198916601595315078818079235051866569133204619467197907263747147547532995875404651614784916021379230117803646417654871780034047320323536641935713802182207822399654842768968265832465459423105903511245721736811542428673848647004732980381777585042766408420543304746412166403286337194550673922284285382262800422956211447500028227655381673918807874918885090237495795582627876831181902498657127743635978783846448711421383120646967102258541774020833678097051561326120542837380767945702474716112657713084137274843194762085322983394949968719772697587128421108655145637787032476989726161139573216483684639094334897623996908609571436341239041491808704730762394858957340060619982821593901231336055328759123601938107832216707652618193573273448278881714501229617032606832119275359416784917860261647597504630825472811865576677145446421460532342228204188052577277002539861479494310303627570744616890472619791948078035592534056126789012255418575384105773302563698405840913217233535460276302748715458608594417065858795045978120170690209667703342633962076299972900717163679056345464694421445279421095367278141283853062391783048140173317013107794022571095073592586424698408717730390582299142275540270074277561230583150121638067653071274988619848344640579037535930187747042075236071348519905114553665231797811692077221181149760772515198554454727121394079764113207656931924109999669832466575163671357710502733235292594695659430614967162487096029748395973563561239623136778592238623260784394123096427501766464923319191259195645311291663724160877533898430904616208607800791329931200416620582535121008889209074162443094322835089004728777918336561638905945490687959171859790616653080166559318716168763108576117041615555489444784527710482441327474636768102764426813764416273385611481677924294200281903938385026328316378263459260803174808478774471192893448706925172925421476497640185080874167481381702471309542501578123138272304703432514385042604100976054223979779659510770067058795758606672952328803299386487060188157508269409312689597953795915803884358134430413008657808875132733621180659345989060313173417104204919273442023417112885857173479077080763462501727983727999393002989707255968337993989476972898934966862300198142347822561851284418989589357035652244759154271699969691508591639554947190185189519128577981778585229136061342145928704242198114048757877377846774555357249539902170415984614682082891899592009632190195054466487315593611433277788527573661922129680025994793215131193612496232885236926248071807087645817402290740139838156118973404993447589173724244566525930047765144839924611535035891508644802081510861961858871017221340196417579505960590579810000947678009246454290355473003878667315593860459027446909645795452754328703042676340005026215581407804259687359032571239363903860244105953160585613224089441122086576131891282993564566517463344492533775966743936898116982012900785109036790700010671508611702310072025940907093667810175527025825921473885195082962824078501404738017784852096842699634296265972265842959210779799495380399583161834518685123154577911676661779626916933347189117058759654369673903999992158677212114407141054437238855484428575806089137271364392200856648550881351941077371246783830438675340005828775054582437738873433543803214385503428984152184585664729762924389476908246886604698499734121591018811448215127956031655032716849519677849051489509549600803472649861161363325267893750640669729100217968096420005984040735913908141122443598342431439664255994462051125311275078084858535138181847263029566232513326134562003585789128804081920000009318782207370618848298771607017851728951133641494246674910111097174394615227893299285977498867385135772417086325603330537164247471425763458006603942606684368813873067277130848793216680277101242397109676678825693222214742563164783113225476995666698611844269233859660946761790333782897305499551033287113913062140642551567618319047867188981637959647831515154814279598160675731621949354940193323601993378698184437768951712187438561831866734175500512782637125346752400334126777452733538931237285986890811771174680877789947293961011454588099811368996456771003372178383953345834916591702161529334621921317922460066469602156122003409997368627838330393578302823745954401286940840973094147508933535547414556183642404518006744789364771535713855600464142031615180875037633747700442747915984353602890688245291120866321602991432998462263751777049405666344380043462289034695386695561175455267127358324564928213292165150916236510151288174135170798042614594961815572736243853582992299085096185312289416566145421405423292156201998872151933722042690329716446790544734383361125852212215444650610023927804198394948263648102270280993823750970735018798404266722089996235943383622065917574850194143978964629949894178500431973070003566952606317126357424222656513994312639425855365665707538667668387336550047801998319216463815079552992704312501657742420661212768617670310818325370583425978810089355264479236493242910662914456523142713248503061294657765952292275280278669142174968149596367752285856380187164223684831018253898182152146205289407998601057309943671858523385769498909569427587984348242600625409275141425187099240828449854920517101138423145360268986478999906196635031605470908684591518648379838464392223833587696560012001159990940995766438495521244162839240449443201032763653562628356157127034523580691868558627779660231067766611177919045946615039356427978316452871571099914143556153983920877801683341210857386464822821699391561769941918819171312012029459255624657443906569756426532666336504806579781995855152634316649022904177669117233852273714789790997724622933430796326427251818280144215393021126385994523506541324198240355532269956999980493015323268869161881073531418128969616627698558683726582558278282219157367977561843772878713641361588731882406140727933704497888415699165410215859686913266866517875295424275609364212582976701795486649112369921811158451945399225212928955299820631773701566041785894207651403264418990685701012795024615762895042012139183635364639459037011944223329635440792388337288475510518814726969511406767457239625991507295168715999469193082599455303127036849680582652203578837214778274883789977897482308148887495646267259245940796707902720660064621528333955875208097171354006193096021780112035404668615881203178014546171604568177993970187312094551824305017689402289998667965626846900990219911855522848516249019898919940994804819726936995546622178151765124475579091740428416940101596255879150939152477545139443616091194578412754551760225739370058493507909219330954743971586258773284953267308513424728208943694606037262335852008317783222599750701263444784941327928686842996957161120687674386434767042459034446698781002580355854490453645347199362048736675720548869764564592069691001121526512261668256798047305139001562049057056772539465655193566934429166294050323169482221277602454060837389976505454764513906327932492948160556347800580894840311809240558863985485543871311433640083616316075745677775030174874511961189653951930897740406034508694324329193132062749606176544466421574738819340118777773599768886727938917382433493738940621222274213844808036210015799530190821250653676506239182462036313282119692857170974843003718634641799286412564278964429158376143392455586109805219149488571404257927262050295619312210208250077111803103089969431234573297315296837520610012133814629221886460530623820969132632501100559764580293673264189400387751476044264479897032473718324697858907933584490076613463642943080230792959411024847207374589624816235862803278640522757361022601487935139777200098486131841545596994545149794863887625243783117010302359547406002926686985572167867627739972963271317742335427607702752140386345568715880629752721882156240737483029295837838718299515523260983788156880652005435930176840624659276693607364330394123267841679526043662475198069839912421169472851268241851369587203325973753704088240905485586430363100687578920548880934970487669237049835187226053572978723559901997654809517722543443354121823837578082846973056494449526402960018195792752841088040615479774876008823380147513701251672689159163580729036203845455388461292215033008625880079515669549746718271371716348845620800370766266086884772213982670915769508734185353918871061811671108337102498639120354779231445200312038813740718017970325013633907178966448096981025307083478060850600473104196464899759399044477710661622874682459380851635084251289491080565263415208705348382928349585742988797569255786191919316450758926495500407131203995434719729847067300181162477391031572199393109278590148041796769734968203630748422598219821965354082413625209023982175262504030339912974483447783957884048445033395483999866222084061166764600249895851602981052694695385485050974777800153447508248695334397960094596819508741758526626354271131986268591860573065864326253946530050496167741498728071852435087306237372267705362136353312821319098554634434257824306229605209220976603666974574805598273710506995455906456822941619668213334801022254263032997333963249885316072174601301070250957330102669748474082343319393468179206018771090771210307520314483662187514164910333383790707145057039934120918473946757636688960382479235796195987757748295003361159306785669054421804959387522314728718746802335991609621751520539185412981797989593675163496626451243216695717074645605333830904781262180864336781700463534970580903163222961047456316805453404402770207885798770859108374143875839713479651634413402679887862520888124573855728814817475058272289060507051356366286511029669413751226927399017927093962311652900512651475850911297257596757971125177652115678752765926563091647748417221626020698803124995382816933376924786197892661451878464032207323819614727759554796063507423048189848267931413102181684733965438127826393627800357870354770804338248127894370116924127150441021789120894481809210993176118056907749994109590115434678985788103699349838623133507866269643165843189404521634514276252737582907693256075269506243946862041046469865443729433728152878529228890102214098821754577605869185025204658166354639986321173023906245022116368008278753316169064247640222951473539311516067198114791719685933584147508135166939841539356331087318197004734280761123011739246022062764254623783298866639828422170275996395117227606561799182597000641256450470909783628634891062226697509939347852673765671628785681587887471889775150323883695180941602333405988054646448108679225459824603882329621281156964227938302294272155591546021568576878499928812887780064497316797310912945148108936586580307879590302053408224854303959359616260524501293191934275704096521724684299860224877494336908361508448604967510838331074462806812968446418053673109756301593063782965851905569060478605300663302137152869193244426485650587843112697154545911884310082523663305983901760712047911894601378253014199953594153968867908280323321836211204063090892443562255306157654828715253814776590446592614692257816915377266256690787523614327141639634355606843521628368699948181616065275961045046055811655222623050302581350882863582133120024414960770666335206124809069937753601067232506887783264280474945494706296966607509401206668617148665149639147262585465135259988750827382495481831540713879910587902700389785340489317231504582426749224847046877273036575605158829549935933889255819969806790949971042465624458042190913018496242806018188801163171895525825255236602061086825690144300104690188538690196837638552309104571915138009902055576243558682388682720265150693870974673133216645065862174670746144029571151193805131223406372663387754507458869639479755026629163649133803449258753784658872001267779588700088411547421000697785839731147394019032817683724702388187152996488924862966368326742471525304473467725536347093822628333139497586586616755158940004931748692358729654161784671322235383848168282881726178146946019574422447520861929142841272990870927145508219286504003790391141678313645958200223565419507170022472927390388451378669616883303842840087857979603529019973425004431761593038876084096152323712273001378987448617780043610320218216785126597627033831451980777347417139417163689497108149892389769717287107782596131366258238318908617009927365866840629386091022535501151201885441448663965068267603024962146322264168860662492534435684835631417882750889485662884552382312304281095734185711421360449329637288002912580376098376351671673711624591648016330720265536372205991825034710627716855229562510019144105965465809506593518448096986231676877513415526013085780439939155065506627964815887012668230522321729285116164248368444436365415686389109466407535557332859815458141190163764690532343325049650022899282182401235926087721041290107802655569041628119251593213153209451714973279750675403504388245150193683085353776005205930057104563160845793387715620902026651387147092764892879449177428806473895837119132958775708701030682427803729761292471884017288634676850672690109361296169260521408119059694058364598675544522596284475153316105415202426795201199330679556742078464170224240202277633475989030480365771726614403843565172145681638116055597558152619848688809543324119177814172083310715267853092352379540744717941555728652619828736276431150852650797852162445887749894633362024967716785944276716767935374818316694384000263685745886691834380788013661800706629167449367295677898909856019167736462516203902583043452652713898939533744836155892246166106512117806329727692576809719118223828809412865095639835262502221499586831776900582346181310129781506210400845752551776716555537495694513167162738038770421938347373512211922856985781787828042294276185259594567092905684094339418856473595981528518140599368816085997598028428393118419123682339486770133870926801787318461094539012734373049441518966761288809792197383519296246692081819195281177193651451238210716381597916939354008620495191770414534091891529692012494629718497604983239864492407290302109840906525791735651426892384904481985468710118676629329791315053481813581600849392093304835781850968356926012431971966812921693735197271782993619325963845906915147583819058079610556654979740209045832004107223459965864653037191243611060495194600677595946480160233371670342870125333645010936266386196547995960098522999801730416416782919671157918972650204693303414209150220886789391333097013717640209747912027142289736558908654766121142477165695736719169722340285440925324340208965838948677383196924701588490923065247706218990922833805158119503812460296298088500399593424815238514060234207659331018444437655966059273536855561658203470099577979783899401857806470813445623620318814514254085546311163854679637803390842352134418885408761603951934202522034739660934361737272085405776829337667990440362707602182418489173397029915449417540941532115895007696021761957337505006346029374748183883224622333612147404798361088904734281682513204279685501604760977843225267477687376676977137648114557565822766703308093125018714191765713872029476161326269302329488262414679526589888173267316972812840990876469129645868627831109264238584589081555695695281553575862101035218779069064841854863991969270569278646166808487452768147308011964193506569859535565832031217035565651892133800425274863391450369489329770070946454878217267421150058766542983174095692272411447232154049107850167622434581121159897613671086892993302374759519128258014793641718798980991455568015748047712642816988723149328714835900450261308299061208676134924222569130411964782395509256415053412106934015591465376325848273052794607788195236730419810694414952588297267817650671525078371380034438425046725134263901544062512518366806716365136922251055580505727817748033128693936184227718355942413009595005364351736745126087805486262631089235993348128248350560874863381397706023226964802303748786967123266600745263427182676463323312797386170864021321757241576125974024033657822843248808073689292042107208926464574781982635154393747240986887596879735795634669875230442523356453566043610817933865476023538753367752500041935088118116765789190749455394129321183539090743027119319727091466046539329580261164740754916629139641304084329433870995153883340143375278418179779434931357266737021404208663794735735094707202499973354444970901029905045320096285312838892323240648646655385455967249293283952960436813524625572517061317575568072885552476413320818800461097271525723617088460109912452746351306945757407372211031305053666514939996774461775569694370676261691771826831306434262994137329113546113944857765057251982503747490723162732910398333329269628262953537982530259523934893439325484406954654395145120367882254791974888669103980451456664785226943460539549385508051545336091883754223710246692875094084274880895682805395930644164645039218569156026345673235463709883268338060072884595080079030839807640519507245133129673273568826033097249703423844541928012800362128841697950695585967709630180890837591647172953987110477771298958473638397647547146830412404598034929763417432149670364070075802049959489510855828428974983160266314449342062807942111070437269629696630952624970394387432046899926291272530840869629989322877410896247534664297403404938738364252555661284999596775685499294812356628121859031142463165936381886526402599688813925885399596084348964608145369229968208743225237386389454889679537486930643296908357523665004857873789866614193600595338535302986302541239145505793402177147648935440813146363157758301188456913151716413945720322067948735119109436156657337378375064919847843488441985962436018402544826551910381408203950659407735077918877089341144768490125504897459514027306196081118814271695616853011212024896510333682444524283922761314145683492056147542572134976041448579699557431873167752022115093238542923892102137788953096329402966418531961041719488491124356653962239807215292838030298193000978511637313822623373131778916848643152804793987443593348854388684765959155587656545661575443184355171460493169032415193919469101145954408072193836169104975998868085755264095212670957806067431251646236475527928889424543726813868588818064075011628760849074120797681171822057251688297863704085249785232894618095285716911810930073368871129674492473809324488976691290491043013108790309850483158132204847169140876701907417677896400164543140930752852781964418769111544550866693772448984785379109131874897418552292756706498208175977827306308509491057529258759970520665797774793931520086453081040897665713416618588794919263540657144076307948230180674396990182633039026689168407439677712849805431990061756460228436150368882680681072047034772102165514486994621257684879004919559966889433089211536605671449244676928479533828570642046061233742808495346757640051006385565413232581094162558521467902324868325023787406590008735284924792044411099143835109709527311697418344822138629027371460600092997728081041108860380024199310319973337386548917553656393938512954538307848692393285086989215602719408252059427641015517694162475614791454127388084470278191407254322240235948833928567920541178401937338709274660156621697819173405143668623664454066044339978104783328907384045981955583531038197998619996247077080165938862011300430986622860028371756656166060083466120975231350903849519064178056284669863726043551931235017291723727908599638529485089952296900522639668440694637638091335675958849144580114457223534480163992370481176546748884141806909943714401475841013747067352030034519210319610425890708746875573680385940062181834366807112556781683461765009929300012868059554359584631616836801110099804153143369638051838602105418104624967475983415074749890607374071120275256691604269560899200090323455766341841589442260875269219222985415916970420117383363335805855415204107765173687524141514487028943467462057009721195407824335113053422380036115301730247144486953339074076279006061187091843586899730478658096564147659599326621876537672915721071891412772956442616324302114841895493050212632250777468964999888039967130761414572323528222107759514551976034781470066789892598509357851338529007380391788497224999374597329642658754443641091382575943484494348480345585847174668446028085099034240634578564566750293590163302040439679482144757089704664446433651238940979757646042330865481894667962389886725889973018284172747863244548333863110975264067441326039064868224492121004172878292680368559416314867427837528252856335191059092849136095407236851703060472705568571561455097565951646921699443219813107729094655792797102548977771836204603828193023394788311834277672913442036960960655445663403259226857270260879842408776453862876166353159683808626103200964191396799480084921723670626397897617313038137909576953115424704924344494266868040305692613544548028260434205055209110893632600871282278643955036144202296273355502272214888951686759708220626604069260624115857345953455418739095828708295403722306700643900503003672737092609217765302643453997721679352240445726151963330067653434909077055955555166874959322566475752691985423033613483753913352647531075679067434391434653449533482116337639185189253895221334061048554366749950366062589942890597574688698388433366623440913080549308199265834541974716634872220878191658184031535291517712376730372522921176947668732211677915682454088395033717478074054272634209728035249917510832187885403121466014496283602913195603995487753088610361361630346092418033763301654494552849370651797196284880511372635748060292759615698266587410362819794072328841234376066118056613972147357654132231369419519579034846477429944673596857793802288003743130402387366578427673222189567655778385425775554772991483300105511353397133045968861601355687008638349307915918168419024075740757907225624495440803924644545292055484296238740325786932673432079649296843801557093901440669675096985751470897166698009755414857235620703336083354920637770639955177409947881316505746576179890798782572860380729486797987648709058084466264296206351705345699499599479869726854597871430201927667222590785226649607331815198015525102067857359302707007689813223799611096819617220287060729559034482271102625587816694533475449334130085077188217342568084080117124305873022482543036052097962830404380872868227786826873476819975789773538231849702630654947274880918243260248126640656753646171683679542562567890596594853750360516765492718262810532814837547439865898742660988107597122940366685611913313971009899043932829256072814574400773940425431865792977172635485818599381417796411635615772341392477635821502749838766741198605411248116768755344416034669176578453845374634658219166072705061689932832709052560544567652321776365858065665508220345257386316769851408092779519230248022870054639456461585584937775705165459067787064385496068435602795464826608561210286649251574267209140483974795747826996231766466873827790897860557232904944459409343678418609957495058420863169329894560030826964707716641811469984430055580017127104138137388632252930703327516224169095427851378755960109924586279647826669056372495171308637058801779180010068555697613470060492144566606071176091876021552083885087312656593793776851159950113520693065015094692782947642610826001795068592536505074029048812422065599680502932730352959285749322293762807418824006825118612008099429075731892787498673032157291326895693577675594632943566829323742815957241973633275765952940860378370231526392347443139632862534032978276227564416131709730775121552741446381461142040013925517353394876762448160767847706553308502826945876121253187957444882483783751669233065409834154714782692099123823954280931889483933547342303187740747087937727520117974783617580666219106101720328042540818998885961316898747521217332250020036681073839184824182551128973407217509960720219193278505730324885066682937576875663528545434634403077169775111214534016093202623364661186795777203713855644218318306185351343508520958662842318217004002855664893958018053446219504291093347926452642370388030790552256019879905581945093936783428447316453755598386820784434009658577766435760223222786403030895753513413550556095810934238277112872326574626086932942509845448039628404382815167994319044001388132143841936975174809283196189770097380649485334314921523796208082137525541014972215266754326435297542989443555254108285104276040610451466046325470501128200935540037209508189393942875671065541318467521751144774351631585564483246333694675092924583122416016011426674315526977682737753169065283819821217913810223327022577754417617337123356195802416339323038362555990129432934038021872296778210757829613172393760508172325366834301495811312662384981308467911752458875858634177303559185518432350957509227881567582917081166642628600993894400056549608435820841617690448829172061348855258038362327422034876231754735084542813360106248727235414933882458948847493478821483053223416298210593555901946868032662836543765671923675304118564883005378428195889534530719958789723371238426374867888582243304653377432361210664643766477323066685755266389944753341264687185741038655181098747170169662814196446888506576287552109768566176335927536584559890074232593127720279103976309328396974044415563432489675461842707009983971537521757601135225091329238505818199482532302122871064858129226069206671118374450166208237145638138101710775485131969903412105277162899705434655771745643945686849994769319509936226255828788501154321623918978453931770503780042600363315233518159697741217545627555613459863520696081067634952721360701390573101535118331245232693290590325513122125840314446722204250090266261878900677476572785109452981123928410589155259721690332364246888553530511904199283504026009122567877984401750928833508045207753542476610585833361514726403999485146362070184784692470247314130332658260980800877970815864668239293191655035843810371209727150255634673560470354564043804345734779981736337695689131068654663065493658467615049268650325292427557290495755042095141030941392469099939794287658107279556377616663951270812634211979907940137981572070803851971726589377083969937540339038418527388513563057629892785444137213219411224678004879541150372767527721663919053874066419582125309469982364682881649589870387733260364526229401967417808401518870803885765095313036089313765299233518757637681454331460714243986834227770962492976502630344813683162821197478004176389308807993887569514566353723186811759051615927343838123568330902766992138314848252500084908588148028008365253299037708157185750505700276693637140080542537794762461840387797515060584808455244112489056173401704798664760303473574923577206817910832373907469918942487262140969771233448180342001756769511799306163086274383278106313386806783365278510022887976285611615210191146631026395420238457934107669999031884881717011377412793692245406968699144446683386416250156341803501632920119663596587562198436324705720358210534096321678314485745239445156403930692236610413862541033421938909318953346724850606204011417634644191494179122484732651498961092353035939438877247867932312794474286524011608898112080922503859554610531045254332605521284593261044704614083328513735559474205083997219695811778449797547233846511652909880455877278468783629509359515703323110355693662168303962073047691430919716531081248437761244903761384798195395525090054161531895793260550615436494487072739925015487531588941334051361029112570391341469377531110820114343270787342982031281378443997881978354498442006317520694291989381218002173249981490162407212279362382665900162935588616743168618715600862434662801743256033520113244623655127506782766183180725345501992000324809889098554144266676413433263051203778517782807226046610304341796039154475134224301002067953925548733387572759360765501602238573956249811808156905307610599833511604458125802539478264065136255245569611682983029381423338325733109001259809621082106328703864839875388035458284368088862694164390543449218018284506422680826231018687429365158018523737050046081488718826295729184312343139463572546379304431264838956770946333468656376416744155703803521926588199873162605241133846929551845165127028618449378627960615581458755709267182206598163296701136815835950616143652849422401392901454582242879736016090122274784372950161475655821175733191587651131764639023193805330644287849882186562113646885860428478384412919924479777326840253293044604548309511334777413959695701609727163628099960497764587286592841864063768778630380263661382667003336926981761550883396001888122086550309286866701933163876458307717899140478375854138523790856589818918427096916005321614794761065395520506283377332093892675393278982775131567353202307761409919660572236583758629269032645098430198754406704626614996113736775047509971026262286234640457759428531398077312718635708793419668885416652294246190753977322391455726042930725833187887737427289491551688162170805027033513257815784320796723097131257891694600752183782243406608506636613725374021373671760612760884657980220016279240334445240962349407100666074252394609893971640857641238505292429894491890194666625184220022306597648801394926263594355755571467725852885278793526119209855091545264654892230206431997842531572509081792123044900323639261725397439496333165624419307409549003776566826444786971885773141894813282787859461820402627738054110890880159365552532607746005008330574641614264337286017710982454260178013165924762410084798161320209224157093186812056866845160187585781523283386663447809945570869583799526289490452638685816370090594610063397304554814011551591310652348483308042673069015768222807887722046715651792968458178258958219088290839108787634597884016298259597858830372119493311540344867011089862330525291190774308379607763363909262746818596171385100125628167908414274099660504118338634018839521697306576359763936348344966423701494022594833627473104148619267776601554151931638303443186348437669226052286907595936488732508518941482554493263305497358035365658592530635164310278120529888142794153179711119905390897800814158576842695889032528412071080178870772510851672650014111323869972589143178693422694600753498858047610335805733057193104944897232271377911755562432676060618971009187906927774943874739440572567819627584931974545607835464018024887225750592594260822788270868457798765633422356972989129321184713127877756979658358042318713223262024161504915625339611912964735187749893181302749951830875501513850824642390526201594362565955376501065831509784238407324752443185506885055402226193893812792136407892056130180014959146714081473468360423400867820582902764883969424354300009363415138296168288504190743640217009879906853534237092587331821433880725143986609291014862202203181685503017684779185463227681209317243043068562152939620573742196136423455382477048991443816164895099260513478219773531866638405390642110208343354655630687301130719148284954240979264530404303375276047606760826979423435878674584628188971214769753737816414299708659632555542810185807243014746661705965805430789320224065019259924608628254925719027521002967647314137533375067825483451025288953246391451697048883175286856085011918236343412524230878446241655122556299157199334810696219338170932600826908339517746341719777878264280231443013899396939172056934628444323983525729706162880376587826470096841155298585062864637599724553949236499621516006977637970123482815039219963164350781668025915758296783961866934075879795714018719916497979252750699739687172567423888924284368534013778648817819498670722855780395912280499042299231152846658880966587651912010768704278268341039506290092062683347154208645537327828190428568100842054279611355774443411543467047435751920286275901466349929175376738127857830952276006809996292483709473469464833313981229097615098847682150714767322034410622784541176128382488415846673276429759134588793941986332943851821099302901863949971502057879624084037391060244761055134759359212859316888270461290963959657375277965025601002685360070254486861669511405929864824458213825170498849341529741328092622796433604937884074381786978586152722928214140436663138378273141056377584545547821545435756422217769330011891247588513996158141791203673226395450802032311259655753502957350483806296788952734685385634465228474927428200406105198202399140465969653876655666407947911658476049345020385788569291571902013315223424249193618729096786443691374623494818204339640706424353274948938385896472243314749531155186863880434502251995134207216635432333095717351124678558092611725606315636618903503202957764629526717411345895741486027656855155200272485570787357747418707468125130490215545998201369796115258844564401597333060773196420244920198839743612736570078364170738223902856914485477475197877119886794983736717909772807867822294812941002990155912299092022889855774506982231632414057022205837939775593981949034534191115287440812352977658841559781836872156585493370262138132408777590112277467370671256879089759349777376480795599532307268072849773189377286692287698026175974456044085884359390414628811557404989392716431885612042737914779052198597301644461050119690967810499414817653919537117842548443005480724085626979054038663388439617449630483146832059966041616531359175986250459347292577905132252096912557230545756584299052858851201327485805249816229657663600591980899522831630788304680831915041406738812103248371332939588517498978622254071063752852798176244360377565401427686665380279683245078680035074493188784153527880588816620322558844577577526312486868632519184491857768721952273817600073282442242073083979168111030813371649686928839638189657314690146955731533651807293139955773552065547501721071047021065382098681196829705322823754430237736805490548092431150633157825591079702137735074470292766015370215743108243926083797870135122399253581807861147834328120456138348773987024837604268339571733916694457642451384590205641500591292716861592301953935074894906049993800724505634384967736702257003601350910202823287973515232855039795540514053632574457174351989930901380158234240277288356013880354878968927019898276563655853982602998387840826825301821388999082495998564529672332906622707372213482359118715245135061587931465111830196712604844374138791729625664271180529318010408108462168487212685811500728164688119754721801206101675985274281352484675495264415555682482472232615834356393715913472053529276576883375481574246525934387572507958069944335883981617141519667123189734611516865145310774727739403943889401023274627681921986452180991285555992429396436621998590846724529843298492272959820004816907925809554064518603395449518575887915940681459711654845688446743478124615938028859474237895813937481813206232260327453711860402889812207161989421074805605273066927242373187612968887855656611418407337334113795216756169696885164198924417572172047773889141552271780148641870991092059210465632399258467832217287605583123250506314159889577049139165224261326869109624359976439448352982832578599757956409293135936117175935108615181681153830019209562638273809315221460647997478117284230030171761804395717425797321205255659126046249720363398401598217132760970537819328345416989521571194702949981640187952309430785302286621781584485771099565654190540473497885536614024164860558564257616798981528263276000675717526262783063950289458377606261301105792005079340480578215281920626320577228075677415581669324401725461529551481462146335576659428894924529607219260984458569600824046320008510880240304153116312382931994374464114088828121483955696003670907147608688652829578481086755772490030594712955926087344089049064230402684615427139174351624466530685108241365325597271985021446025270385982841007119253762785871938436072319531126829856708234079349988736318132494185029095678531736084831653569290448332264632174445910028846613463044652238934401088445599564727963324030333654571535450869160119810684755900863938846277649468894803378672256914482066998560838998147079951018960817918600394702991507174389475676183490025457590078343131870407230716672676048495153830044081938595884178114844924520569014909778425550645059500872307903558877070781249909576921724782544454287251916447671436652302813060978159331586421013633310888350690168976212836242640677199693407831623205169193206942493817455119591022543258552159156880212907065239857085688943449059658590456008809501664441899335922158482645817483319008986385281260647125356323684030223206042409510575378789530177816342933631959966815239358140918726560818569394039134657094279738597772901907768783848199608114843357630663380526648305317274684449718549420451912500207897981478324726637998247899033730073444352164943952269093642011846721522806308686803423112030743522440390050537005115951760284704049199260799619635232347000780782590577541695480991996075437882404588615999871872925540876754713837257384714556480216430484882936378113032109898679264024740203324468628544175308680188355406652365464614966805690785190205441786904351422833900986530379543979255409400807768638609895116617410385785159850353339758763847040841351010943360724073582834663451243726267635536742835308991430767101929489003790647652986504711301628183062629362447443750763924394396257622145232038614933102911183223079972737220628263243171774021022041856660150046218123075232389952879751324877334753026609656316303893277358228363626805208576347545424682846743991526829156395076954120199124911783949991126600585023811913625808782607924147424355327349975783717422536732754973242927852817427941104698393488863299768884687076893892613946595224208940135673930384127330064287673001604695780155660765980096145611354400009553599666928359667231875007925411621180520870571470704359777296874201106249564383813957007789762244518639631155763877334191681864142227765667173464351749254130082851372822177123718608358980845653169043254410236651701373808302293568691813696986586976513216080308666680831745230128940576119868318095364333921882426782478476319099089406367677098412500785840333769392123397234407180067853005018348329574364167505855786621977385186453266920923722552828960064937904570663890444407356638484052696211562599250478932596873433665678650670836796846074305283702506317064914662130760825501009286276766181136414183105604132684194685823945827939486844799891350056393142450313347831248408652433785595554199868232656462892777807181999703861486394883608284881387908441954470437514759635900968610851608198079534297025693903133968248010206712055449066680556056367071787592047668580816133499097186901974134385344404856855288600330741862698248340123111453731588809737651152636999887319410008241615244111471781692210934778612215815405056075327317607484214984544384926379602082343677253719957827984492561853382365988733192714160327919747288380767065234665898159051982828100860326953315426502123444266630507133664892841604872617944590800753426284660923128371983394045761636761049148876075240213867475411909274309057822768017673168656551678598736057029405558515849699878437497187653679076468836455647583827175327336112750778418970599412978331540063086636442615706422667521768277601539652992799573922041336167592824490014166077276385580149710393412572758033656288150367910923189461665145960059602638683713806798672581092988495753266038688404501428541022246043527973731880963261432664342680967663533442352672746985419671804831573911875909127920699489857427626037422749593118369037625023138907664444154495358938123529443637564998579336743369693583266084366849262951303977668869950387970968344335045001071677264022589111641428399165885266335945991578563153242991797484739461194985984935563953346872442797623762278008710213326924215606804577028301970350650303692304845339780555438083458675443054720424603641791732163319575873744299813482856153650650569777889143619403192914275451134682731549591127249446818381023426433711085011985639350869987306339384354321799427476451280759589192834286227571192453959094151443559280032298877837557257071331083392585081344955726905373312343376115087744723431763628738646518189486517367175159259626140123214631862701438319277457578916798753497044202134606796195523615182788253223725162143968469432522204908127419728715793566801341003399592363110064838661315232169535374942092106387466630804012060358130832602350585519021131782587747532071003104108363656066659822009522797920696559803304554910316756587664795298800386811893009254576655952881801040488686575521200539443129260047712022395987072089996182579817355230225769432061676986172924467912172165260176452682155050892463115710604521546273472236939309113061354665422035169725530023168582433102963391568587127627901325725270933909179404201909600829612793443573251088734414146411363226846253909205807104296157022155266001903213808477379761138825120092763519899154470010265720604228150430368903144289956392380074943015322893943707230347034828652480683703999832124592030092306896655990589286104185150379062289998491877052635219781200264027025600974510883594717701464797032051498344039129672374126828007917814660911160702696801552220981427907506337344732270446750137546208495488172525111435507643780576935498705871658108661661369761552194456981154041125102360386518755974191255258910803163699744618599081481751228843526326100497751690941777902745148104860698060445258355189427538591519790784010776628732815481704698376688336621527762441547954713136571090455396801463578675317090574767591580390104016543392119824705538042586412200236702551041983190610070878551705871951304863698765409807663795900438746460862135779193364137390976964338068089445559865624069390209990332863187774395950803811952576685231991173647571514511159412697178680284997671649730267752619538022885518412569308256817271097392847888248464794307180921186755187116883222397396792763941800754946414618930407300927484785781289748351905813738686403430350073147954285341890909083303275130719659836981089806243231928561191151637622335903828687172568999451332212301585121143290723891113188141153077372093350267211177853564698775588650848662659101701713869026746239633366461444639970429503075258788754016804230943182613693195233554939274162433040415064087807626854366619469996681639504524681764144519675876681228746451673008449418234527120408006946791873472377949378903942242392353857699375788166153544976137248058526354942847968080007210974396647558371492190882367329757499102427439501503581099394545121383674474322059589796217960840501463647599512397644627263384290599346699470924961369075165264272857889845233398469209408572092363531945638376867375125121325233919783808512752445526114296127519399691286042480072884612468244191053626257862618360494150595863598671189380032193587358129315569006231433084143012924281276073858705846229060009650965728931724236281750538651322005750470586705262331748403780324990950756023203527426599847549604292243515658684248171045110729357639717571394588286368052413968896120910353639596421394291841412598377921993461200697279296727919009249119935128917950681144924275759541955458701436506426751019427759984481602803289092977065709413723034919370878273895286860909828235753960170672581144865019529959152458106048769527117001198858265204246861172814831761552724594886087313300825600565676957953774671195069713246999330022490319581740562374062962440715946922770423141806291983417153102598620203195009147054980363347588318444092269177909643413554418788784579816363669776729523300426862989404578716385537525802182509155325291211805446920497709120411901543104056613587261061467224729258930961827835417700698758026824803241957579109614703725459842933724594482390762909312597947641380067905224856868153745354097637932064048384225423957004662074618130272744587016407625847528999574525472597852922117751566057494101697141620140790694822549044896718308933219152685990314045283955024859687137525526110304848625455918016660501954443084942887955552014590345083925182579924924935690034595862857463173773368125793337674341903128447890393767766030560134820034008506161879006716609870432634827086152907749329604576867653819963689541662653854049543720298657324473981239836760992100419295629892961248752600870454971380281243276891173244650362599290813567039443054999919843728305439890494861204742093861057572680650328310703453041529293830065932937363252188165702207055638780851023380048191079443418344405054838749572683055021101886777163298095153161234398745494279132408339800399363936932220517503662253037500244324542068625023813871569057493533867600119682073563575750401602773480161235664518855630119855056637378834887267623241172125826763854707470173142698857427660552935073391076683671111005062102056988949208280659020854977569358965569002196255589263735135826335512543802731133603548483286118837008790911684540685638925852676312757770539660582903413620667605057257233964674735753853964993873054303902775546226546014724259817450285016468775823710111169245190230937734428210759347034757412420668475974219515160289587393170457518769372687889394685991100208296409050085881681558286359789957130367235742807022322055301561030823630566874438979228305802274499993050911975398452449698029371193596986723709760868412669337337375611550957922501819247003595080726496339855379931543992279629661455019727074313628113548693828610233290256982819550844488077023395497336634929341571070882739905674737231738698336659105008654289146412411670273698384449562120871298891534983315202714511752032317520466745719272136465698795098760708371159422025587197766895713609471059066187929800521374443790269085024531075341718318678815501707150013053756694358010401843433696614399127808294279128521471991792402542177389833147739138533879660965734136306868382051136179512622349837564466429234075617565532799722571611240152553788920026040199996527146399449300746162590577963417781181320714718326458886063988382812309790363039735796296225381207230649539656146279331541992451649375277837631600059868010806949968860559515232499167282867257268804984172714816809297895653072444170778108565478151615798793215396072718600022075820735226404988847057145685140776505305456684491904973032003456710847496132421659611659352140948235367944363428036055560737363228475064452003131311684848669613320365099905459808036543325263169676476979989008660286614642941128103593464087939120735966505069502396516078978173173922430862409640978196952614840329431834047514133401832347064115478589906600144585861730596295885161811576252931737868299092702689715051572546188601134059941576648218913151526512964043375896915367629154218034668413178959759550948546158645460946246768063138101453140718793270027812780711401098865620787021948320701982202985805931651830233774851299941982876101948417374243719734578421333822010939729416884516042998345051136923732630898131318911914136314514012497564974545690512800850607888683487524087042740505430772016427533926867164865756305786673100056710792226026215570483128535129969290279512457809273326583843130012199282043412806010156715970376871611688629982090359607043021503483799255200509395000088169579628126133301558721920333848003252401751071149106545408006765213473894370415082469456917557712624672213696280987374813133279169469056948109233626283847606482165382508361134819314269028163731513283876474770631157466618337166847201483942076381692937799802098402415297214824906438529732317457209138470442917365142066360502042172391692959133918422672715920433799013660898831357041197167357534451329241583034485321633308476286291911236066502860218048053644756460768309214762438000428774426006115441945905057766903001634154784512667106883432128305707046969876164634955450919178875849367547935511566273201098464465772102930451887665337916178102110734589924133567422381434676648770275182760108708576155132025090101606525891338839076408110885082212691763874908548833762493200985696214936169244345607767200027906662437097484201619041920252373246791297711182595159454077811155647607972077953369086106505378090011877263569875091427880367911640323876222078106919975785565749730638529965969256672762774884560597539460267378730027054594661550612502413465940056984727642305961997924930157808661630391127249560843837162886972836402395538038998542435036724786329603011566688757240128336332773133126189521052413480814801588228008756665550645042299231710249283171283703744666323038468733655307030960931533774125595567445387242762569312985293441703515432865127143339955397092728842300598546574632976383020506339857518768725355926156265674601329324547411450688734759361307006926326754918711116890964946136706884354710421299660415808883407471846955771850356483912814049493444134389940606085168478052559548647664795843092995103546012220752367422727572548514919663373587426713775783975018295519822238189269530221780054422977630363115810954176236396091314637461113911728116930667981545543049487818973069526154031133448957764143751007853600368053114197740004372301312527246153768287018843259902608428346084261215342445535113625901111919018094765944995920181412632275742083810465386867328154967604551898247654671197986367552557055947134088840061831642382782440641154594602588854146437969894038684287039942729904775686071893474168090557798702844562088249038278024511819986784114287535142647021442696363117612155696011661311414452928724343189382707003838534123942958577473490512590803821560560382178424003045091352330689909227176411288104084971872719364594390256110873017724562306197590575622508575168863735217082338132832706710852793506971685338061238829961618758639821955801050412406103584277857863592144001832638296554434297167046203603879173695852199554124399995981859419621008330855611311627435927102656630119702331436842352866702423498135472879941435343064912247257857383677765195550425209531168384843430846394771363405436755640727833116117247338060529963070984880715033503789287507740733826771181127131473334421288489825736392874260399491042929467520090246197647959138664981414035252014800660680418678062627400191918357769056537521119529020248709257878075567181008162401148392305112027488387301358552689249076022283434125151519849672235122470237405921991664079203933032349232259087283038079135475292369995382283467199459290843380122562210755785397177782519175985142201673162060851779692746540993191707734279062014728344502963372376836170574610263751481083583974293964832276117812244514585580423914418861631790305749213401887682569762304974267250352592846394007907734151987788292940908329229365376411026559883750425890816826686876286226797476432320683420803314464290014112979050343593998797929829289000256731812603500223030991062712467606886034728745091521738834199483116953524061168627968061487197128603921538621911604728030417242962308755946662451190038416665610369901379133772860005570231928559309741125395574809170493399064244557968236371206786159514671248454369826086006989964379386087570716429665764329483347105973924028869151361641181266584565338796742880434329735896999362020239829491078530946447955184565547356622730832507530187630183107612903805686978859691324216883112043868319506895737856680532732363230844195214648622240320136014091971342970626638064669801398378433933349919786781821734550833405067284373124351678807055296543264631790258230783559600964999521632185435911470890180050540536420833561264619470789851376546993214588338242336045840372845251698691510932717042759559251611733050899235130348806077947500172972699435866977285880611416153184174110528005301797398293685229324368831385157219001410299397106144235705487956998655044128662035766002950911337465233698030588850509928690820282199215344563121495095415878411590558326869548760846441979741066111995556211575248646712721621859528637487348553155740729021080391709327548033868518036300804922045977058432035537179979516677634366118725875479040932592960421195943737306800755762888984873559963253156584999286732512691363214242906017906012073946027686864717540652714080041546915904614841632496932249388257841368100387107149850754609258182984699338783066528062537098825141666798630465705240562465601208819395744757222686958021602666308884645442289016396695514253243350528189586651737287603927367571532989471562945980360161833139989290479787504161729890164175444099324516420761627695217101306127764936375146943899212684590125627033325126144601178956081002976410280079153351839407783395526438131237340738635318804873803864874477730080439776348218359737533256066225071563534259712284239666773907725943782134409194862676058502702222173472600643200822842767241124084531393544752430295849819451561914153301270846803456307171355020596217832096577526511439204980595835934307372556659276729577213727311687987154712082390309639218800903216886135306113962926184202182091002987692836948646627533999856817014812636892265711576396854339158015364421571407997733517378413622033738274532389014032125632544831046529913184099945056798794717740036832549184875753600253313451162525436555132707185460149022971671000339536609818747385545811670884278011972183221187702568575017138479978348725676403091827584427166316100242887720160167174388335505455514304620557257175982244019149234935447297959065679873194051083386987511217113896614674110421792802587059774092589477860828374947539564251660661176111094515789794571360992808192176935727258584168299800638755138148500530511679181539912234760984740500528820033994418334550480833111489871298683374985634565136936990859724116940048636182125810530946041629235144810015995818694011112471967960185223577442921351491610749298109733646708374476874694017166451727625853876471696028949540086714835616985575940240179560745020093558234237556605750728008948319058005861759663830608290591453307805594101985291836457639424524358256552925400419985620755845810481175532727023648211578921933701137130363645457776855662149657418022263055252229642325968854097253270702779148383421231375095002183904205278162516572357615854202710712499909546753946909625755495693261243870981726014779593957146477436727514899629851155689137087698590796599040683241183229309663784451662077979645375488400653060078156041985167666506556412247071579076307889374683823967590367462852616828309927803439142903708068842523353423866386710890721805587388438245777207105004807319064196017681333777222772257344451669893094551455726355521385158341326717115688997517995300804799787424813114779071423111515004321365188037820569811799492562913285788198098744381700519995697250103092563598094508262519078165677778841013303244947218456576612580274659622232972692883125887881631094292617449985957701399667816165340084019823367465094745782469243394855671556387966459902821482600295909149382369307390681506249286461900279052998477723198339318221128129254318822338176440201745260043271930702279368413395244026368005167314932029190239065663713452143732169241933342975383819080742077295153380628949936042584118179116672186018226583153318898594463072770396485497741085062879533273969448073236596584109664891094038180807420774039572290147028957736285043940340590886507304612246869428667321742762374787506688884304420523401164244956337723257894408265917941513927955052801259520666839735350455220586544946439299942897480831389838289951068264263374062729569636181072908695269870111751399255593432582918477242907536210971472017744075076526115053355264816211643319207132311779529107537332753579171987720074630764756319751986894151700479073465826215234886532257577784054805702250456972981629225685219764684218384560242656419601997719698223422125249819118184556253546250985916935046529534855274120802632969182455269740684812516415123166032032480260380503718782883959222124484179987635094357614506952661484992685034582211085848817659022450493050331029049878782251065525217511332630942639060591607220687495106296212684994048454134232954982843604991981884660646174365130250950459496518722104418690432399639246576905680588332269933532059910743580065105850799817434184671164762079777960520308381557725624547645957573465495554160236039720528666821629035814067119417141545731261405320907326877610199163888607263665813681033897899961319061636710297368910158309688051268500865663090921317821424489279227977508882192589857811940446652988916945117450589469145661093719470716297810693201186669000952329049690616489954130185917610399803449335635261189032883881270699061726494676310177498434798178633539239911916085399814775191350089202326231952271540812299105919296281436717202989363781608426406378068971077916447361293084549309735631480514890318403079913913136857269185493038006463612846764186555951825822521981438874275888963025716235200184372515661048734631393022841478787699204219001661876387493265604016453509739175386965771519281137166943169222142720351065202341822594068051995453204963539429809364406958855440356031037408698316530945452004580853946438479491757062292475665741313010296753350873577659884022914517543502516004540417983454777297986736086489169550879676235579748367594421654839559648669365699235352337240793434610011633442882875439727647738891324706112084621446109439913878022285516604289375303529406518027908077271779285690142630296915746086234441901646445142918240584593988133255771952477660593885139219962811224048225592874049062214103468838900777442851340011117334151051215339221438063048832422731040038535728504205110077566740346210846212674853675722887637353593424281230851589754789382297065192708882824424482353601068110606660298881931748148638513164732292226031681399612261757201230600828295511324052442637143800844420361506463562080521548234485332800154533181073058756048139779615728221110607092375245735574474565497328714147075615709027585828714060563675290125643371639344423317235780693979620513636800034575394606917737777607753219535125431280320209422286297633086807983902153550152489288968830758096459078861991154385944358482283160631102069441852985927571388051722899419809996631385000009403029471417660798787443392243155784393566201573548494372561242471439532351126384908269579257289017707115221379099897687452918503739852664998244969767552198581808692097316438689999597092898524951275613604599041869934639124251922440028398854544401837126157875330029689260748768789163570528871979626824477420505177303354206465795560579184673146039218981780015408348041454770105369738608910846846463856208921825292585478416432657363668810762643782528740080004279093862667804640027590106610773303403018980661481946637755508084809405343304504473718475542205431995616198317368609625745049502388589845333241981628492133276981093279556142203437673491946623398670387436162332446059672877460321518250245616782751252355525344192365590466638217471915977174429007783284127601398049631902966495834760574206713687062683494995046169089655746745003412560807092819500263102068646807571614006830436359648705071197569533940096228837828841745001451613215465621438475578399834982531573858805564009167901691026915129174766654228813250623441021062556229596478297518824511804314801522919012699107300438703338334043130479321604907804804496852563097927832235868613194720056965948436206793693900559011292487449874000990157219606276383859828917744807170572455554819141734675385157374977603024463421874415735901602405405680806230715930140165604536426053356440471266441069466814975416403388092739860564941919494430630173840488478031313920410124941523702143958385506595206849028639927457772824243712900518601527565612160132653624467318446568013070473664815834222567639951730946405957423374449865063350913917235825613733853119386039939536215379178678418145673106252686991808723473395376687859919402455956016736649169829749468098326249317298331350726158193261019290360496270852200807412893369428342513119477222542257087300423333037829913002004971354307926318120431485815184179246375608617974276328105544644508044141011057631067354760306649506068185618821640020228992155275129981104145950954885593029864391192204845250718535683844875008058368276941942797794125178137334681863465211414064173545860077181580387545914125732448764094085077178894093495608424256208192371644897464500535110475493010431053686398249589448153094422729896532719374926492685574033304878405017979077069640210124835535850256109296098887743302739193444977590319241391647669396968048767044729706737934212567554289956747836655558984627897851574892986476597972476269067536371970567788944838786458280562323833657444530796035603974800958568688229337439723152224011558006109757498622288464091401420490492234232651900021875173240930819581438257753965411670888094019181049162112172869608067882364556379946493506948057030497891187570230403352234191172227112881738244491461300869464447048456156755797613731483345324415616005700305188451509808708957458534048228840977411623718078423013308031101231596524103209254804799849160992576911432264038016043905591916174765847520089169065274414584349385357946318706268896138758209002369523203208845714413757189722103627154200930253062078437823819860736438604548503384788460385892391736905876801475445957678930105443736184905175390711453882826458141374413738120686248834354021779646576772087220008227367819103007100235984813023731954834907881359050711624053372591050338467284913365669454297151807435874204290363908890305596271685760090890125249930065466725599002280380185437378975371901584007977228627002209346403408142485147539047238858446409364338153783245722016807901704004638802336619485165480898166912500032947177944394951170433094224317433931300780195764694178427341532771349838412667265190403590475433032688022921640180887923289383525521839670146214433098488304144175336331787762245925930253410347496343652064797875274348413707188836339483048394638933768076311101581679943952173759265404631523855555139168021858534560418889521802258693869867193949614695654059374997181464303356344507816475470218692050762573458368214778869536996700401065099191635824586035466010504318913914706824886446057500864586031411171659362972484109498573796402763693820119950178365762873638727568174080557471827399034902216237737304419508676174720013017759788497335453150882508868276703783657728412881264982347276432904628575075084825633610188097211064057448428578017811979754712454006502928369450961517734651548193055434500448353465556073543845422197410704556316723356424440675684898364492588617792465007181633725500205758728855454755660639662637073683226416395047834212176885777091444002593113952618203378502337910191197164663162236602149667823238425397170562212398606233061554585293977130703222288550556742066116717314412210341414885745888504595246123185651863320389105534423696467522488028724417063474891106249162992995668790441164029389669077474333107697449042132908571798339227131797070882349888715951053948216347372952668491994149607001592180127586727693246826103344942452140881035078983710934008774734944054584012804521924738223833619179771491228070925997073974447545776195155212902374166187174169681505636200288344423749385217389394390421232918092220117619336125891089662312995119348074120260486904281393763831192654260328453379883849104405659907194958674417666700241670601364727170527613090457010258174187099616455057492580664806059631121921356597874254026522612670960190984406778678094882952672066247006977450353010765123673731118592462533959488048630225227835926881908666932739490585306356743893815298878767231243261902200564271314564360277118913393771795123297880018035025669315155376439104750093842286270008458385316678578025248692570211128461234518488080065160615040933647627006326378059359935338354247222832885128384241936313129280317617951652704609451692815499176144533146810276138266804848462806297575678688668120907289344934358033395013316044725106617723715287165600155670299611890296584169791780290742019039315696720771107446977210917744590874945329361482246190069574722460662656449217139472989547117439917982809482393434401790196285621803050683638555486990185126467330967804538392794445379259300032825913453675253252012248148901142759292746031307375386984569727155348445602465818858802883355301822506559917274219613694558699452845282217606324234241781992818083594788548194006261050918775446088740049308846115837279841128284114928121705030872820726129694430353282297843386269337850758743375626300028681554247854571087362590400370353132948024481391500567095605749671924016905352227726411708382368229260657743829915785492963339667696780200748041150427005160037568851526523679064804575902746123058216427922900481607960061646878220910442231423233950293693518892269997333620178197985432660997932043440682110250898457303701236773949685334424942883084246662756600583180402008566453678304227384438766469915080417661162192660339775133091465782264248925856434357411028755857669888921255516319608941003686006221806190286839861842864675927090826813914623290170005195300358546059512259094803532834976544947377611810794044898897143591934330484574839380911558453702962022543848198802978261907164249745747121866027134795804573348720157496884298996734456971256590984721145142098663021286410995191974073590653562712482175999831044742402891120535325664593581184633183397205497553503110386745937909695758594116661338082142050041933661948866724521031295983478154821417080073328086313810228602173414086417313442765927620686693302490532216953639060544215252214221732129738206180183791310063430088458445313663604569896158920132429415703405000007510108801953299423481910545315735428575819704415394512748853515459021776533546712945617821676740136401762530196909098680673458206123324545879669711545702014567694908463373931217259165971802724869116952248115283311938916387647597956470097390896280313487293420013944583107567783557659969671970872622348477531021432973331659511293461078248034188988524722657543684634579858412318741693922253618352928789760474277390263838572908983162377410054097998820797701736954707788697215078558798928691702745751944495506408501857215896436769495267999241980223882444557956330305093960495190304941014472782274584152638630842553170087271907010924298722180317114514016448032165166165570557607218027490111409350730207682480772527096308936612078260467449159746934941933545648780809400984567998946876752818300774022032227716083424472143536556249986809387871431685545060696652519732290194246501226650833044822840069116259828039989013591949096912180644069027461380075094516248843441480202105381842628079887027740908019514196663921499088360333673848850488278367672802555280669075424578038918545279923752048427147796325875291329323269437038792778402396231317408251456354911504593740019496097955561861763782989316623645977170532840207641915741572223041403174142531623550472337703060706251452884554169427505724523413146586870249833692460395987719622807003102931626183994802950906195441442412747354857104894491357923790998277431259110044653294689649048449849498605927295874491756256859139196794496587787605855262452964874775394253026559905639984768368873188706548549428919655566950189228747766874343967956619091024182036440624756432861698506325408039727935922461633427863238652397966795710516622821829341469035119218174474775035262428618074341777728289503253868712232996263038503168060290227459906344039446004250517449902195985452796000054632659875341570782967071337939411569034199228834733096407164644320752418739274469186259381932676367110730633198147524438667678752273680109814824011416812991255682702456915751783997073755537367171544209017400316021820619479943569143049176522930581983395954475868591988770641384769315079280369336853429407380031185092522344455878445532326033295223242881119366667683642812785650325779101806423715778247097334159653605582159151013619094027546048181658766083278512159719174828196781786397661332710115603230954998280839773808013269530175849733607313219304077402033378270415371748954281665499147290740463643953898750694545032053118690478328915594114144710679981535664302593650713510777694371489954561410142447522691282166971371801819987079219549991277106677515923495006723678588924635338164652760582679678297925712295681798173824965722404178644331138841419789508179091398357825275321968595577563435110915601246830204559745669668078913818954947875172621282631751242551920353512384713128037022474198389258263265712225927060890036994868435134428146930945608517266099329976474180532853285024537892711072954078829593902590153085120087813088639953165549142346603341247978563630801349808426970192998023918517137348598997606315836234889337589061577706530281925001603870727023125273283017514303571093965537747127288893343532068336457547500783659897805287446820848506069038290690554861246628091220909342805537999428905794063702037478448128556846299656434087927570588413082567199480136578393498362840250493290944178125839540600161822322952986862497133823298020206930917135486717286575114042563615727988547488869206906536513721640804521116928710903476821876210938889278347275377844369114153501392242148755856412453371155126862941634846188701580380825806660828817567516698509298659603279461075284425863791084456122356018659036099837991362758756493418861990004746342126743683107425776684480254945661655629060736782047348649021011219904110525658880604279003051901342516409977866955557780046494381322260096450264411757939193655939178547468740169678520352976050712547572327201848935126427610133351634594336559240763324483046048617225039932111527649542941587373037629282832378639464802386971265368975413852351430282795438783637147152493740201113704716803854099993448461973078604732067852490614044076699240035394216666110042341906140540612396541660231273757678081707902687014179140343860891151006990653982383490677830099933313771894212210326761963807291871208086737788364374663366218982975941010285087739148421272473949647881979303031477964145626700519762814139676873917261871277633696842462163921054944732927101739420862008158658053343466187252451922301457662827447921779314246110096745447651829842657116704482012873877470223992032687760874624272012765785266846145829428290762588403922497473133586074821810195219918979110242293466371700841551628335664354291683776472665233989619082256538629181007365447722457285565468530860299165287969007781915753630024875299017481178301343637189840672223349853359635163209718197013565332504388425305827028106333130503345638358038332887142584107853913020833966203187837034588511658619791160326081643046293654160661083318141643098175597475731371831461284622200726887865634378002477433612105528768862647390451645541890411107539051269363955778894246832529416609743241119105413379610327610321111952674246991781806076987154774511692694963623456082232686012419269634242001177942002751742654862868351847058021145269661246704593913754957417225503951691709497843424591668519806941377460536957493389309735662366700363686185573051004841790283189318288306515036074814920345191353705793559029752698555388809386631650254506288504479671068788647489617593737008922901086408813821946417311130727177823864490455505505204203070276061978713146959344543840761922089889397395091233481375539458253152478103218385442465828205736071291742808193297824754627453976581835149401174064787247676071293454362117752916794030223161004325731672884648246903932379004668227067405147532707614200143353811860058592190792981856171212710677186368023156116757345300473349101269881972511913868677367572288145096413624872636710248068428202836333694917736061519177550867059782883248754761428163342487961865894999522947334362242160896600515350811935986048992253729096328847413415881635339562338541855994944298299123858966051015605884560880453100558328389915252298575390304457221723592350500516301228177520693566069793170090651760627076817889765020554358468198349325078719068092694141748024175779526465959559676614901909515314669922671323898490407998975502226723775563686043764974133424979795824387450918492093910149733233888801932165074087902533831901278359699434467713330379281779075544278133299204835637647144052297074630105365459157067243155649568766483397522106437011716675476331294863842213376054463285212337559441128961373945103707032646318139734741214107789778265819947028774596935825895697066675183522293857352578893322600494918699072314521536931817440972857002610436459822602887635204480328318717892155262270617676869467910092982640056113401843954446919530923864484921417857962830797188805740895930372990895600505857709452130356648239640536542949623739558128349961215601229411160493264494867292439268208328806431386863341891389590834629786837005509672571858758667705500900273730943237318574239597821997387300028274863961299382844003316076499105830110387503307953800204705339507981855435139540537111620710008207113144544827682161426994467590381377137357443378154331394400662996692692862265058995642256386581569726169175218931928714128448472820712832469363505354978557548540753284168608684526756467395211286976945322266161411261210125271143393070049509853469981158951852109497622389596929664653312004057633164754793106577323851322699157563623327907598195404783287289044916337063052768668639083360967593562816774538804597627690443162487849087389894883495349281666400133072418529871907955367752165590569781904836040714055793029706600836440405586196849624435319268605286563132168437830783487091747213662461527559626357300566242635313657195983992803537682291635924729491084009206119421769041339420764712472057302068780967630211928963295400450941381298291732816723530665786773623356926131897919464292727955944747626710581022813939405254350750138859154612058183764223000498299703374091843120274256277556504004543904387936641405575498044231178583746760932846581030069831545523355242365466009550342905225080637018352587232257537134262513335757105318025151515603553364054199752333011691308626321926188435242296195001718914237260019338233145425707545191834299422184808438103933824741241927528418346788005653889096225325973084475943697736026621298502960621050511187973614526294924733412541518612253455683071534790146083583232098758855874633913058841155651875114463782857881519631728677010191968778485688778409398690785750124787927558175982935369470074798827657746640076612308764496685682358385928803853233264344664995167097093980344685662381486678734250598265770580917857279820768919615735457313700448712902380018236927470513323058704482009742135568363863253293666472091850732088853327786741488864198352840440069836514288453820466345465000695424336731892848436097567374553616066695642206836159163650572474812900490825509076483417890423830605740264162478468041252032737270849069976829159601985065473807097991655291323245851317135962713944340429405191299843468964075234603146727310492997691759994278026859722261158303919232406860268133353772744788806979681883326221610911475559325837881899031593460666690157467775119600365427938231374593097905023574601650554087314713004085852006383949398686688093333779054697356694982962328591108347795979175575434914981988808077312160011458925762636219469925018048454718081747038611254875016968001651689894482360471715490851212110930575737828240498725527702147467892903757531986857480052378935494343939529812557799050004248649032879248053567046774200266113849940186421314193877365645578547363174103943222677219255931252421985211667467853789660571422322452221937634040780896487852237966210456678837314281272234438332100408195800242314694125155399523483417548298083449679495118938576131192144422890976534474529419065727889033512254805100181039784209361550574225193026726190833127010342463437523281524812648063379304816708082903194801730396767246305848945356872232691302029815022458655356044012704948472036203081605383980011559042915310992368495456642475929639965913164713323403737700167775709907409612585433429133949009883752521558121091239973773775391115208332839561887480948040429406351576375646288397258742859547977135447460000658381346865934380899627436296303950311991686643733296223569131262707733663414872832624260513055506085152635921754494801372966175054464718600394328611553792898168112805238636121883641628244400640498415947776138576547474235050447091290368517115714457022498892265105080163213123876884075812246842712804647951841817954135462022382675337108617147199797526931630430892651472115244187892188992948891276254109509928275819603633536303085339568736438694647573531959301785558771014525680070289895724314973493889557390556435698345327404237916705632771665144079532236622463406053997880119303521101319285863070252799383191762694095470872038364894421575195127776554993767264863093321744884766607318761172746330761045728380958052184681793768929545691378658754780651871037034888158501654276830965966747566692466404690420674517468706774951318785905644173108985057651688728357843758516159378965049940519264499934523416769165591040380163325242916370925782003416884659670976275979681118844604050682184161523601192599973545516827029678397875815889617823948198219995572828329006940043989596815515247771730389081848996396098086885951975030468459028128521140688984929480310455744344203551366249024941628581207040858013382481263870006175436029727803563316427390431326639496807072885267810908980237715192335876385757202856608069924983423842257513909717659650285564444597973241777504921423263730067728462552990440813698764369094789519354058221993283782691996930640953565549724456149058182258346924180033510828842884287652651936710825969521223676266999380112465339547233118385987924859860970770737952308481429778386429857365439904012817730127249591560623415899819961108686721746063402308883730379122695892377903746971694678457035050832777802804260710053806660571198024223410863470882076253568856509306749927274659428971230981193415224810083123494796835768184152073603449204735766900956622186887317307072287388689674532813874943855041282424416485001969075147371514432831593956844630037135985792222386921276467309865353047367046365460322266958959607858407380805153263329905231381381624027106189973855537581548069268270466489363134947284245957151917328731744251668517134402838707084668945293430747663605327402516424626290682559276369407481759140478797284139310984036717117708234374310917305968720350393718644254482384264586694815456296982420748715612807085567994960672707223879282153214589236884241308906345177410559636479449694771140575194421628020538908004185440424802053016270586321871873372560419778932670044110539405784277334633726394370069051449903616256819047444839025075317091027073920703409114571939883043495420642313726109042038369755201575503112482282661401537231630658371623858014125228038487866549555715734327060438903767709900185402342179187902108929921474487876871633211977956791274853212548769798710167863508868678323981939668370661998048538198478045577583580016273107601002874795537001736146291696130027664375251724565164813662990109227479536139323826208212082778562899874249601621702481928872588960915282695248685072905910325940854403798239284601992297400015534958602790573808046968518649403876521866148685063502828366298882437122206727134210499412228344625600169015282225128041793280053716209122501991497180709419859865996790577463498817965622988605980792442286238209775906459327103562503636136632317473845276797378300163472780630141267644726316024999494187000875963854289727246420888982698759882194102206698052793206324391589177829963103818369245310930885000461737136359218235252778786287812234025804644975498483117110635996082816988384032548081131338800596652909217131704598815310722436765221536334669883931502721946036691550963765188985313962595594142246581577529552108051007168639159379067992624721571315473172220434516942635944063649149865172773332652475225844673701007841282696104187776597277439417172657340025222113487164377800424306907928738019626481416055716178944679819188080312364177549807874840075357267064825990968333925902594974937274320508621731524630240198607434799388605318758624503356074988950931005098993979916587855245366360905311472961212114564774670427442602399472467874399019971474777609210306016456228274239074455057971173843322389862240108574320357813320601397973429828309672725806434706354181137859798138535452243043925396465616476186670384016142847276927987447945999847064249674664144203267984023325715457299259260829578646438324140407712731585507805292661073227274194195876310259563959982320988319043026178274054339188161353291507120825087162836616796807317835934823875885923101003342878215403354937613574540160798593755385255748011909257279453990692691500374462641562992169773502974861588702470246980156200492948374749861439583088225417643672788530688030567364805339200976272610919672321699297632919144221659637055154203661706248885603439518754480318075460309503498939409130711381354029038300930158413512535830398722810399236183434088364918216040486063404560025778680261150057689502958400558868998880419910066111848530759588585231708360393824016778119977952637883177878660729047683964380424155700727515027284987457253796322755082485430067082108514982730354053032386361058268287584299857418859405168289423890739531672444773895640586284109277137824880360453050393963241712995635272833247529118139470740994222689796178383582953420716583155238015100498294432048806485800295888015568812633948696100967560123592124702918108248045526214566109693938611629081864979618981381750974283973985938012811065263760244021360810292735696235098910098925631095567472461251795781269091329679485482845624326942976870636538918522607543987572336201287162447593523746000766769505485965715514778195806442026523684470390326635795984910024049203600572423422334640244081983418444756469181781434871035481900290431025226414637569568256473068447224242141161161683902425507389704096595384216986242091407398180545232368284449646584409454245056657679503017927991048576463303974594567264267258953262883741938572197851396420364478977368738257925510330208215437268982261276569953128741553729603561206883079794671725150071890396230064267570676746290642594919730356556619326119841240796879604699475666638790529025240603268454186025900326118042646552065554613401415310158955156764153804002967722545426436956574684054176906916748437222984707043783832229250486139211888893518623154571202983789293893314946879503058160302425531960742435644969368062041555738590462864011868485627953211094796474889872254651140965352437305854665022034489693186076832017525325387409234931889249980837322919613786809066782931085499975559184913379191482374284682716522347641388102069070795233785704128984197216702126472205680696596548338750931448941405468083477408326989307461363817224219005688329455729341363088188579332699226674190287264777126736417163740297901418602946440874469460162799649114026361871289974063031222930517378988058666718003487167689076464075377042401714588252029665307451744575459752929505903100969936315421082532940892023379194183373953982452792584842249306312352043043617838099245133968673225258601005977729851777712094398501962777506446424082945188676449071303507120202318556289621857524290468419820529635611280303798310734217404083861357209402886223440340252791403519042114431522744183709047604107994016083260302258650589443897317950731273488221424108650058394091121384842155986783148009038676671661813938270856460899037736085249317210415256507490633308011754118961142307295114866134158527899865703893515491569907967288918731452145561246807022254424964001137988703631434374183562706126935489285553627755269489643945340966756460336058838463879771899080973967465913713638866726976353614214690469462198227718356443808893671655837615851966100239799635472316012131523863735162867196309769671545540478668585752031930708284568155226466270295430317339185720869827215862220963636748567386037221899531917851599384432466124786353642479563443535601285340764675541716888065105237313349445894235670431037960650949952102146383292347549764865804747348167545659960052198301555123560903094908685580988485709897361208560568796385013428541854988039468466387171361694752609965386930566822159158401441740926605751206823111559003477274603270881587580405333742594838739407455813785938455589917185958125519204779835147448759743995483466510915278526943648675925261319068161981351716561182860826627826718294625181033377221900603489573116409313475156760675152014493458736112796455085543522391102612431026332847361435479449441588957672666494289016249565967211671532852182330481261478938305856304507996763821375794196604076068755526070960187856458675996519504887927270257365224607850344314399759920508072061714811087290053287231033634200459871054207505601849181034869215530984709030021444723573201429766691574721925736350875242824638675660924548480048253445346737825302562566581573671589839982441731162711136402669220457252429009093464065983993055679447380816309024682885135877482600927277280054208479746686934434514059043932667535513168457783739217162392989415654775562957843960867937240008372397694663245371218753128694392359883113334195748807152707685267119642379476783720972151607719949754512493418415381765778482656264647906070324074843108431877790323049042972879190372428048152354744069627355259156703463289636031776574890058818775485636529066251922037045830625527849929388438123234551445905792641967414948526191038050958257881758989768758305820949905795306861653353319771765396680823268014103932845728679823776699247508562823146730205788434048918988752049344131688103260180866529185619291585231884315705108916859440514028375963989644736327283475792086063227678093511151775361316735655979708405047247270597183274857472917114601973090035359288147941941615099263575262610148188226750887360779517873084313575492776735865838712493948413749395825274337155606034455736201118281332747029300113786674075404751856700884775476735371214904917449998973419947725184430310551528633293250081698952089124681277054433526813164468688127019170998207657787849439592874591337506341168835553384691265989907445342671820642421336036812335208796403970737829367356671039709259252689631792023617870691148141509940466593393903055886703981622304974495253886326377774152092434634526487465260422811139919833385201956937294972548294994060238225961847491633986900916001813300981350624173615941919403023773623950435074848604887222890238869529293163895668026750853274141999517099118386628592353397635841337116799715607630653781952646507098385562076401001682681784593603568335658424077185013109875099936568914005568305697481133494564375766920943110815899351218912356044665126830656324915676515275585750356684713437080429940494118748064795428383294203071307079968764191537160844947720375015503595731990215779177509146583490959338948132300950857809340284117758035121907534750364136781531032479160266346854930610499669368202805936282153913551397525793542444648351708722248949845324445885761651951191089301960017276384291986151718032410180043930710763225359492339056436455375544062160174739670439964158270169797792297216502771421197186822769724532850739902179841856768476114033984823412721403735056214753783826331876650843647102216637598933532187792249163302832996679126967107480781724467279655579218652374726169362466200363941155551247005898706384544933485182931079025558596644585003944970473658029873980677420269364505434764156874386329483405055269805770877480328639174363685989294716255293931328259233394841227498817021789577722024879572351726190654634244147675292899120921260084481768315579912388396431338647186925303581979533465145657641691201110193460537740241626125049512299648982709427741179542687381402973849393115443010605534034074682842223161880087153988361155266768464030803999090311746072092482500241824900424080345168317425362177562619577049325187006815827711164171611591378164252740919098779829243393507495903340730643691000210597981004690396023679360306242005524738657677298931588828064249588796453675491060851654627578768444752321463677164357341889430941265670750448792844020382575680031137232708287029391730895462445307404492951574503927241827357821214157225536749550224735935465871539838570728239972826914617513525289330360816756672686281640954001130277781328637876382143308328346440983054015450164884001197474300410779464479337919711364770818215589311506801520229796396095231910885504488567670216116885969576051053780760163091943271873279808065728066034315149719750676960290562757697083598458498797606959592516206854970786190157114009246832492350563084758582022010464548067295863022478082316022791243258662802308980286940831352785329494245310617630637509749699067144808396716942847735618068557204250246725464671331461288357065522165291586981567235736969513980749188917234054094787802645360529447978332000872383039037054925429728093003671026135755363219772569110620960831944826406993472090307198982915950393487966786063349875493606720843379199077330245397560513792753274770944770686301229582729536856545145922771862946897498893291097561673147037886658299089869262049725150724442076981144193440557994991241311563418093862729567200117563217277384833919850923709219521337112101763876258817301251973587280632701881930818547043030219592594727360716995770897350837634304375348552826963396194693077470114261030331200647369154329830273823400763643949019751034151960605240331814236897527907088923162938439998773782298191222985585741061539215464853115909675961309263526057456225369677916472858028452467576752511922842973299190962392417141820318676527614918334880750975476835702585338193402102609685670470394482573550558933740821764201183912848489539995124796693937150665253639704874750154530576215212990798986861250731326914333664606148408665807760700579645775848534158662889358935270188202228200677436309861113410059635348400136081511717471023549767552162033304250391590123327671346018015283167646947337246703731894014558348419324584226585511486730256968617780222315266274360403591657801069124791815318076065440374648829360439088612932295073411176912394941932258119256723600913263793362452402376370229452319182197173092991432847633903430287804163984912667139919343421314877153565251365583224356869080058982247888784523949148451059252593839186095611763932401326854005040260278769803111550721067415159085949619687710445622459640775245973900744314511584600755005586915912541798944852452354705062928511316471624093629172291634158662632599599696128569810336144889241970212576143180925338037336898612148020345408945486803990094211275487925602070024574812712170229347931892863228323184181381205763717240725870341754762354517924110451579158616589365973115124407803858520004901527747493374514726435170164198566712907026248421347010656789329567529042662155293603096209699716211869050890151163704874245840335351120826801805756051585899389370900151933253942351069491166910847734398614330751130526042641692157285624479974365002865276529568661983112528274732170320474900576429706435549495571991351457786661164121182289271325090978273425168462036787865289396260267589418936421698817738599327967170411316580351373662978171059167770730583856609455719636527600065110668510621220929917428351488695981830881993047135726096997996662585483401963069494972167606389646644414062017423489998507842901035467026364423519516069033000073156567996041929660529148761801425199019838581142745696525676306776409348950424095981336741932802540509754429785117231871340993424235273746721266445026458798292948824633450596031215217113018775806394791319706261991030726782285702589719354953599468380928152835449792192474922094433353409855449412535706519239245111246635995289538300165773514937680664649750833813513567487839146157667466517430150191852165089486028704201723294464908851218402073905227789693628209676700638570123972485496213126339268588672600383370507362395227834454242396270343637801507420297262221791984445633386051510401568422153813844220547502862707434956425397770028511143075505712564425219486042323759483309136043453712775130020092812512646945706263825054602085074214012489551470432349158729747488833556777911726492918726416462607758034986318830228054724804637874509636625292365217434317159140655145962156475589131543933193448598185047812379991660149574736479616707583739167172001115023494245144167630368184474759546740110469721254243901449043150815538395385824280240791527189487592573271130100001818894528193933541843586575789322547273738692100885669553139519744099257237332947544629432187098497938111161468528714794109950781272749817254452436434946902586647917073276307517798750567223756481938095868283767995740082355056022653740672494948859909870613858722822851313694030045456892953647687843132345367389595031799026634289515776534505163229012509658030638450429445987657662223386543464672685587299719271864782779840777865255395553766075965819778994241961233901309292812965077071109336789222975769681842548199007603435105262085256418882088716333881913302601237747677304193465754043697285967635224655259677666263219588144926155576721571864937947971445129840428122653110257340290058463113928801858653654783474718225074715333984978358877821987986336622538753856080095925635256053689627773847145396154385938185319116157020954709360201492647227067063700748850027899094337680932204899549158654948045861955030244188226154449142790227030965208830433185329469568258846392362928672332026942916692584751919410174894450053452560946119465002929074420328342625357942074001639175675974130495302229751843787146778340218671782522054817035446216475602119818028129243098645181461257191979428365662026196692367629205320710850901447146147067146856998574262219443359741193801788063444487101040193693451548563546795788808450644082465651882666598183126899217903107473269240982404339962170624162666918329017887148452240377140281118916670448843078706583982112157508905321888035776944386721179382547483019521090043349098303895755781898477739988666273927746239078579121165143340074490448097960105954593389118052747994925276029947881520719750193792704547476111533106460268071590851810475268045149255958869554756635688261971475871669954016096373234303061975205326526020131776609834523609135997949919430477510353022435357150202599740520240867129516531843684790795822838635739930095054798713291830973731644744437368053825282455619047375353600834591069288521125506171600065943501329561849460799157160183270236935702680682549586967727954908052672026912249280090198034839479774034910758127227538403839925658057707829839768261820696532267154418303452226227879207937946704384398585154270121441852587051156921446965867548150491567339423608244584588193697280554184670312810799375721052708908894271661656414668494669119470535603447208575868043021753954957400304644910370392363707486625696878969810487369631537093675405079074887158728169779930620138311605517866764747116087593977335228868748920606963443335219288058828239797513382698823346715517137799341914941085828504529570372554104252993465162089965792609770722875515208941273155531129743414597892330997016010057959194970414374384773250022257326072244673863911295142774959080787818911132544301106908617090234019202603972571238238425710083949287041296039837047692526515637226656020304362931283260689372556952500137343504010338408143015162032031885466929872888816208381287236674680281189968016173811531291015211898385780197930467601674947877680518157667364056413153290340244125709472713568604680844835482437113025339922285917753986505119943185043788462749843610199404773673919035622476857429307202054542643770125054030795892369442346370305013096869982926717463844468526502183510649836403630932219314204721774010690385068083649489616086385215619626108276868524780238977968779883691863650462602521780672230897323122071908683590080408416104195100531544710074409694936464110484842748090712850428195165062335535736963638664079932507488387191210930457429493811905133277047349970548442474938784391817901049068345851102605928860088737797459597887490589719570388723892414611604920561450963210735429350796878815966919504240498173568769131340077406937663398190559586337161291804704082777588780461409271166140871556226625859407021833527516967382579685184720042414576900242092466738269216254804724857591348969983776590520438311499216672755059217402018414692564464116481188920759658869766461155447648870605307382862453040224337304598325649220739688731805881925557731158301896856460903577254279073932959105262007136954592794601696023120121464568970288912929545689776969566076362354108835114792443835279591258595354453766945546136547726837534180609007207772530878067660679402280416128991364308351599312338636280963736396973317437384202753517395509293342027518603876986007184226041019615791993186884058407806581720976651876470922400068250137868786050078599277959000132492508242585546824470852823748467095856690267794617695884228022505922295237523068184858593960572788502208148231762195078935969714494620713597353747371220789842677647675907338037112194362466492181354254911416505539105555495878100180385544325468469698649156212986897334729758249299361494211094298675194290067763994668800238941481037984091519572954223840612544873421518636812724616106359694031986348820943749264149141205869952876891753628278466677159399360092607331957574372994101625298511070992839566266508557459301744151518835475034378483479413247920147661094037155759423617807616300721432364721597271314117094455182800941394599268501776265997320517133017859548154677646181848566760917727604731570524633790557459612850618350859008172392011185653931047438637318894095748149002009158404467797401498444493662261240867978625678377637628676616112472314841824267351016350996222127825401905265747273811404355959888146819099502065430541007571635929279094980746247878355091601825410684951974711161088924423520217477271528036283300726649708824997803591592444092167808053838341197100028133131029216324326237926253336219156916314218394985887405782142581466832639546497613614130305424432516099877359404495094970744347601852919107675381069904069176974821443735898011137073703855979837564021929389405907571531547880888535860884281794306881928390645471171175958952823743625946445218848456111237005465520729496954603405766714155059004352046177778899605278992388496276431941568811677786511284944652189721269965936344734885405882544213961286804758182138514597889236528308572423150903538574548779875691943579783394800591410569168399706567077424952666643037788937269071941538652046056342175005695394345656007434524988247563678523587998663872487665331176299302111698733790510394462229937182144699126791198876315936600297695192180676793828363796791626967770650402442282216522657933672144771213649346789488292457577489893835204156377362137294495408853330270080644834909224002724813994301399625272317136806791431512139889863122354227218572530306999111277582002775305303176618928564161658055501079131207630504550790207362656646290206050282910604516817436067314215096829289624076021883751442348926121710771158440942887139659918865647345087354939738470259661002243210990464241081222067584587220156036469517080855119492908664544909674182331657255675341234883674179237752899832612107955499062407787316666291498339715326622043120096324429704091094860375006437005549272059067111090709358864335920299209454059731000816191214727396722899169883093673823287694357196373342085727646592604489303676948492598758384905855231307763574799036566121920117558569731583989631661472427443667826643651789741590850626991507745782969439819160399440668084040770259763310870033505132378919345455301301592748302155774279111700321256457437475877383408497723967055025504098432044989083722459557297877431059435667865892889017009472052172899214251502163529236005480861829555293028559190635614857549578378073045113379235557164925414970063216165432745674945307514124353698100942209721483256366942942584118715993654872613272852838598137770078137224523955416217960166106150791289840166781152551140710728521622421233721749245863971724591772926034943114098226177014783348091150854419192924066836273022473177265613593545104557844625516500586464939958181196437977086149752844263434589055481881907957469422890187958503171235425637315091882649568751678823263299653652318396643729642897444106606466140908567795609913006714088022764106815762678943128280384273566347941995496831278402559249487476337698117933914627342570728636179135691922831361030774374124434100928240881731893726344550751021531236209968669186579028441608682703199936125712394342302661643939743961887291478122749262272022171098801057428715050329062969601095041671589604969531778640195686609953555574292722798768897337022429518633112747436287259370459829065880683092267119489935609213287853981759923030774761535842356325356223700736512671321966591643465007729752426382110282774277366168009809922293232087507450211458054964836017551489668183686950756858236832747035926432724103483440032076521446969259465754451767774137882157472941711845056063746833654319966803536998958340462665412445796187775034953817271883387557429546339963312866691326103436177170701341058155406679545224368129454188523202011440260304186926722031457944843442556182309820362984419422803043388369343766790887307714024531776478217561066275786837939420119497963082265099532673351028409022579322369829964336001561424237846031827288146759105173325736560043489395108673245251795814972084143956932990946223034415493776041016650098064813462223160919519482093282154770978992903511739449397363757151200902790276186381599517091136176385232472135502954263451261618622808093062528113923139884297520129130545534339784816879920520905728150718968196452319274550728131190104753273806016826881373517961722623423136169094383123105325003859922018583704828088122508932989903637024184176302709662315533764633327717032666941419285620554773056385598801258442484251536016457852831889035512433605513131633423468023105355646911491202637585539909376079422569444397592648066450176879030874826673913975344114446170066157254622531061520716283698677673119197308550194985566640647201947563168217467067342626275632355456473098676000607674745599103099334915141718260705861908952212455984565253269977233835316423160015731249808020362124863304992315969966330861765496626412333957681522758400253161416513837175764270807415432842159766721650069410567777435890946404866019061249698906401442329148535988379849406586021869789439685266572553234639249340225789746200435544241885447009452216699349451791282247009482582403113988503774324854328335802420916122352117115824626058652839271759496561613052784822248237279083852633670262896136771986761310126615777241801776242615594415764380830448836425617536287400947128808789722771162823695158115879389902859290042594069378197641761708770558808771742023925753237778011547643448459440046762664354469982121488679410745183006525590849275549849221887829167712673343346621223000501508736559855537059065661763705974272697293515581765034078970551440999337039201930395202333841978407835316405321341605619284866788757990272884513998757719984483137681554537892095598323072397718975400395019867010658231230763805769330851664478688663062186647686320862760517169036602049347648458398580737229260366899637146770327334209545548822876689643675542218002241510743064457717832652952853536856323280738907391544571990103396159269282422601855813958107108516776034589181265712123555216244276185980355990364531917128163005886815170820712390487743216875961483286375866358314183144698101663320323394306756515506928193448171010281032620542694833927412873234129403924761299657409963706449328515934444305952144253859934005790500645543390433110746518734404213972388769321785335202997099696559292636145564943222711385334888740320162032154879881307038125520989197773321712757429920821105997826093728202979822212719142012489416251736280925447925475476467925004486833323970636163854193223725467770316367156203603282873823844083806918696397523967048294614468782889309320684570771289609349100640075134917914625131840227744616833247942174012203901097054107387457738883816068038574863313601182138004823481405730585807888301137302707768811840068645861094079141833427270417283307931645913941327817355169554924860857281691172285446342647810087417126548323855820762987191904905843153872336224853808012484530053027646380978578336825553856328960391375977029765715304968847727065364738447174338108201791326987340735286236233687441319245946247842381371387318855292175979642603469602760310224723384234145583120202674706985395479032302955955606547380722757643320724927793217267433916842484022711022837523706780143806838769605701943197482279264389181101724385810336187869702579091861759479199464028135876970458769107259427735985075464809253820813197366758103384045311532755810385567943485669014747302477380351747574734361981643689859691209575093415608751987350083195084752330940588989073980606726141153939974893019646665402760546651542073877786497597367572409829557283652539196788879558776518467520894863449560968948614133825678295318687498111877849990760722862766834790618999497635066904773349821958104714070055442546333613441695359950148136635739813757763097289833584518641760026911484772797752555538795553225568503482495332110680347737635346994143112437012793480820844335474437284892057599281545086191710819431602825651697479636973751571094802986549341993557217191792062155915158413598133159034912324707258360452930626091255924303501030032095921991669385930072275610324463523647045683648452724162106853628881205983863913383782806229685033872120766371318540322435030679775630702657829656728162800920792582398604779408215129918467879812178483349012620692662949345064894290068811449766847508340554995292605482456950258202168870016809632177391835928175959165226507727825648100190718293467741975190958296209859690398184009915897163651793305924357493490393505474569573576694799997011226986816527160321826763626070260709510618303189790990261908235085142623432633221800077016289815959801336401394933144361322403346662493481458356796790979283303308072022525632211992273734273824940622653340913919239699634442670414756634161104574562988688750984221000328868849033215784683496533313130713304247399190704406933396024283451379619331086956289219343886656603665384447050393690298207961426051716296583454076132434238154966131799362731777427311849329582696117898963676038246693504909712779709243658174594356800649022361323561754141093700825717136194600138884442164564519065254113126774683115460207075461472369353959034657711282779097411255301065710401354683943214085998822597654877336259845251535934089129200211159474102811783806371247581173238308240393277554961791921447944306668924018503425870587738785038889325876550896835175507376914287223065916500834096407750303820975252403905236911662729964920510164788217724501857988351407046041472107335554502049174038395307892418983656202845620102636928709878889992833148925930285350055774272399674187185329593767753556568962423484615186659946448795918445742638950983175797375507292165551871767010640126999382250115025306031659227044155877736236073667695215926761172548111837842139890056745467966661222413738435095771875011171299560021110892576876396320061695385874670088987574437818307257840417441648971595314130752929851009915054932924923485353919055831275650131889757565156775660660304011492689547508407872449084297844857061760356132556197838407253526825964372556809660044664364732148007065327218798155097691141938069043935565675566034941054061837737047318144306930792779296759280897126889986984785544521417066101259047155180899866830964071562441237918702665441640972836606925408282635646481264486104356638491065090228579929899933273658233948554559486900750871647462552395313683380182475254691326623001338439961582253064520708006728273068988427204111626930215245384227054385560139976577941436371106449986754664215271555482278242978746837718642106944545771168612705087777556954429392138931251368799247906834198171109410560338392981229568524060533507062135259943541403568011509144635255084083383087999090732420059950282245555075588169904922515551301748791708150072266917278694250973264693066158061766528411017674845628072276201743831444002974080116988242774595600479916726381283528073260177884056759938099695394505903657054639663267531557975660496826984271298291489127531048946661524920084499305286444315118470979521271934895270213361107697600932168179209373082756392329800702637759717445738516991750566077159314411778985739924260576576998196124412679459653494466296572159919204151102005090071771397332326244759510741343145731909323606027477412721088518472271001915543083930593389867324281827306982307344010109068515901155196797945628657966147208721485137885274514739655466669599038212779927112032476180137602954163320640925048839136838274582728650522525860330707298326027130439866073806512129612766524555076503880063906369508369751423346680185405520075745995110692209804578216960857697567540355604959372781808743217423270448643745747522531335553199143900975487695878687576766685799666671024605480562282061201685937630563239378239847575362707076137835921840884254165156872515887970846964899035199298917948252427631586260473165919543102473361073917428075750301599927332482596665940070635983289093372999572068647245648541854933336411436338001913472995731138649194597258208337453622098817172855451385260696828030935268492279801237050524588852118915042782729750242574845164990305479415226546780027498341027436794125114427641530816408672690768295993357515170842488493825284889233225897902171783786071350894940012104285169982258523824898913063466853202259330358424026061844767752258919724592819394583651154345073453079355478685692203906368288746940810524587584265825788690094927538460271469444079666337415970898012330970253106270974507313170132740638664209501823800647344744942752987375295108485449706567950636442219337307642384577902170762945556768938976159879105555476734378471987659098126365107004449528462102406175011961817936258338340049175707110399056047633613406514895052689546794314043208193559162257943922951617104874787499845270442678169530411721256150147361867306080781510068419420315308291276184832936813212462345494443429147785483668132503319698616905565628594776304170655703180218475150836978101646532036691130674261643439173487517709833389838667467733242752837617265285216906506002608912817939826041747068683766734677815460555681977604363807771006941711690478239916943535216965328658145621704163189425658971833234068247046434887807758650270467945465590133243206131767310588161069701939928192571405095478982571593685332320175280745524349923442097397124359711535040186213027025959665191029958350299472212015649016752920388809246181201739450352712630810019241698664915460717857628713286685060599611324761746095663364002204860989848936480132430071526080481038638447288978130488787567321800126670701277673641259969374087569342718960145930005081421642953375572776815703567970719415481923000466413705260508656609388821360581797744213655145380671719471273006460222636254235148220831350087986393442906064911779684304899669506517278304406416341504522671326237024956732577989134751553484966937105295661174921983067900140729464364941301201922266893599018115711797613278184982325999785358483316362210181731671051970232449541261507303830915345889418788771175540252528892024795957479365357042699035661872565246896430431790816258470141222080852581851590062146658881790552242623530387150061782069355792544335143225110823752311710070499394936167828302941725802315535422568457239287717464751073611213196020821770716641991810049511914431981763815784903038743868208228091549227947769792273361968110466125303902293350526581670922646377820961751652666176643069283840608375270900992002901461065881119654666709777476058876523640813113857518244337780691433777104774313862424450864487188760843693652627465131583857080668452572418377583151307392772292234176852528502666367664141145990277872971628905448106793008675891164089584281193307901863141817584446046798627952139365881700772614923602164025617564915976248252161100520078491030091389166317984830640197109585903199026695326094862778334729382544083325399516525098670700523134515463950590557698957725049256041003772022881473227693337550051920285226863872053040811418429134725365010676690904332131699430141888269398982527596484179105442387954083839697527652204190041461029756330506885559520102029215492369849672393302862681967125071968924419702454495482252078562371577628769634400112670865792781347120920198942576294434075955660138026435603661222971824869769450989655040121863266247287246676678913139116636282350606479819178287389427775013140821197706197867806846778169339063753946544221090814958275367082924503462104260429500224145202064984038211439179509731348424680039999255384581478859539523430329059294329480012146902457131264693894550889785348132364068166457486668876070842612209352475406931519373442067064046323518423921769573222844548100292335169185629488315502051975613313194983067067519550670117475384072104172510822684658051632667267785561733175552126162022552475416475962755953809879903626471731670493057921836955843736224303113827684383907410167329666143607247199746113211693954598242621785890709501434024546954708312819221962296898859494446807168047445832559396598260515177656016761410338471171881692877360775844708909544323597393303054802136367251639791721705740473205760524705654012115435965678666283953715135867969645284087101392482069713501242643229951573015508703326317831549316843551165276668052531366121184156411706703353827336517008867144261185343935452559079210755791742395700538241696273124518322090320216397093965402026884867745264384449406860411566727110859575400929905463676540698050242336683524586962481534360179424735905208577421816807556897797902841912078675700824932277284566088942309889182579832118073313229400176261748958585153128202508880543541263668172483911277449328572846264423954830894309418810941522990390954602477663387495349100982498694095918562316431735328648059394988573310885236162698262282824069242071917642502974267844240572485387831703782710275324440466524792328103848529292631016925491813135014513089826963054256171043139992202948259715203696424615524931267962555326909938546483697203452581297710762142399349978325081808060907639181083478277154726556861431352607173544398856201599962784843108628547127271283215922194677524954298526239895750636131648804926425172708465348979525143579266484681977485983127300812920683766432304613753887079249139757286432359126814137087124450335447496114141424161541809949095379353445709584884327283465139480674358261859702364222311844175716238371674099660769263292186799464407139287392859433499190696417698811295204314783607700804023183313420013473073836380573323852644119972385761764136803895403666792419984524886922799680121661372473192741442358534475119198962559225826566891458911990112116158963833705549034396149720042382970662630096193465930144678960624039903433918931861307690280495287875660667105744508952045186998708315707931954750217831195290898048041077896789768602820394973567046723538916850426377625445619004157383830144060331836648185538390167665027410512785648025170729602219425204613484791416908682326769435492600846820359317668000169693330253452282830046325306291141536753974371104301825645942063954383893291664618056137281539401823267788030794730426246313692982308058087839872571808599439321052100127957045804143578452725123486310751378355889142496386113931871882416790596950872600736858263160198570213532678299837426505722735798797577231634380089290059636295534988903540360930275265660112902618861795431227664575207140527009031771964588760836488687653415234962968401341098605776961905586539000129041854542299297964221029603729545740439588953590051900243099490948743583298535923898665660667564299951480449864796465846236393165180631164746716962076728768624889428846902735469840726058387164098420192634578373768807109892945398617382981742568128921853481502076034690941584663832670442827661861062899684238777279729444911657203012022506837771965353835015010804215584594799766325014104461375732343737993330525318350821863069773260440305475548709957160512590622017791100128465297873062553379490125022901021387864294912223614613789356732290041958075475721715516560702030641396192237747390533852291805512292232545643152724087953182834279230466790779111370831599441553330676358654898778988750182968881813389935783574856067774265799511254760461596394345600658778259465260881960481434756248497720339173854079722378900821179707473207672112567778568994929417246946080700885612876079125424063734650731482087656297695510883044835087191476202939713300173522296416735501725529115826905113848756844745907539161413566123793467846967405506622856611116410551351961963742601598303174861897714089971455131099786661788225327238524264685986780495997973230388251712648063344796970239326391713870760208526544192071834556697552049996796241175211847822197598448591050293564872589170045545005440612429054348221657074410080163860881811376323051201759768456917985446202349432401847712659505611845522689298903549632902783341685336413192426510002591080232043751797647878012429217605626694169594541500667140105028227774303692629463864207792788162972778533837484152705625657260500618964390991439098813001109430934695936871177193387387634756426496028200653535890575577112312789962677796917274947660329701133312812122364842955663147870473568161918961083543129620019583443245563807547768100988567664495430726989240613262986322763439826900155310217669584435866444760502401507142714890197000262255958155037606154147304195721127800003365700776498780669805822024413786878223698478882243963394976646530658099792147195105045309353276774594979307042616516203896583751543942987028887778253547556345030070727493118723649556696485724966942903602314929554431774056447738188871490715329470415241807823549218736135759564620235159160905308365411962983112048768601326098280625639338772348055667983736967858276301444186530280407407937115375670210152372706497796629896834834856079602298625641545600942749702365871672850495238186350932520624024836097153901384391877350475612315956813550194530976057677122495038001641869987913016571372675103956060633807375302993773895121376514611051640253732557345039844267462316377705487729888737881468218607861086322522574805005109265982817746718689475372085339998163165955653191054065944912373193411704611068107243400721937821663011938820418393543559203904709246954195495759035507157302937060103782979719484122892963239030583515808579503417669033999979939252139599620132282548036698350329330401581274169333013375912403821400482637984917070592800705661927808825500889471963144285478231965519946806594942486268010353122217841948922449228651891727145006522684776397612343876343685353644530319156920762361168589987185339026790806117164966837336936487003625605295509915363957512009904352017378636380879996565918285112616160015681178819132030532160621434646660117392137775887822831596931765491447674643768148413517578603755221872435385570196690058526363976987609385121614607553325058082610938589660475460641451513774180856763554475416523237910017125355871150800939912668492902932096945230342758182574830410139145934490488995387255576096662544108682058123079122003731606241290039407100519519896858859481805036924904621168816309260575776003812638595136881854797155966971452890009152577474094337023390280876911872252231267640658074828862848219083943287354063581419466319592123025815492030786200897875657209974905063551772647223263526343421640846116439418740884066306384446786007499365846051843123054930188614987192205847556480105241210420859492885704394761950727230581006290876957334309546038234016112848351049326518956474116533696909441255719361695987077152180391550331890398174377955764645504167043756399963096303326159694882085544700910648151306794695804911553187873551658858750143604308970121624850620262954815089706236933077983141169834872528957379836406381890690695033420739810413236056991808481909135446459209491416617522658720969382656532736844533000447124568995124242901962621608253352166696522125443162885864174947025034918139853407577936720029162330985041004548068025969186847681195289073845700912550102597895767621585234989413685847583450046777058415029387930665712677928515511511628164650679214916966397901420627001498460397771106582142211958074879311081075467334485790493334665356763733698999920730680015136826527538887465418709370852285427667987539267295917219538134721130969553638683178078532557145023557787499713596480233827096610677094883634409808975119570869743910800951831023966689611098118439553869994917413761867904773107467883082676155265264235963591192488554129110990277591161199172107611928841295926646419354314791898240771605167345172406283198120256198998122225423570949580656193102885324259903754277126423251641518531517326465734974822036024979302918891118235461144988341628731327591321242511879410606670967112011350700561480112957853401644720676982896187168030052156015186404090419968306630580653647539909581578899268329137262496272625416342701688581232064455087745180636197507328395703772537497449192422593084920674690126077357128404957441598450422421870389201272987468275409482301887950554558484635559498426958416350915507947963054039241231952731003850052789782664437139456577584892630824723780549885672271243829743311525432985498608807460921184879759847667249889572755188651980551754188181659068144422361651193237965874325894533244104908567347020584702404655837568660237848750968746097753177029119468783700491252849773952836880508274200223904452633006300086820847096963533855304555285670696711621269291865196347415603174059654639879219004581332702444850874909334366038864748283655391280456843863652885460530330945188574602988711650109170885426840258903062713491699531939388601073667421101515818135029217726129476101281835849635255190569674433510580680604325122059856964233819255144114331705775863276290902169080679304147117030690488485339459897344638849674983000213472854591524364690280342214757831999770965030929900206226752889776687255691193743323068775207223729845468243041815339604364706846504196896281977127616184280144555532873496518909738376369448229705135725508852589235315321756233003827407047537304747687629589103868294431577979519611630121433775015235030762395376393689310389817041419239988059191766329708089134957241577606640389199344911146064332409482865094342178801808977493704021516328270988531592090260459048849119050613539288313678827036296728644195778966873371969440424396862528278442016701163662318487049776927530541306291160652223822407216488614111079249600325245592923775816397473286894574722974368397718374305374910674110375039940640051029160696889848518053225231739189361038010416863003039861290086508217848292201216008086019041468098818069953844627594489589794015940227186236807937014815362519481820074208050706631143431911904619240704866772189705970516137524781050902905117902429153708777334584178624387855210095820775875487479677325081989866517522954743306991912993215484893961959992632462358749817855835167235477677077325104509722470613219474736782872710715100827197856236208278834748459124910469331641161720083628690415852461318802993307524530259657160310963747827947497279772514346835441317762146554869828529059405846634359120392141765831780208940793854908041793737127534818406362529066639100034536371775452143349603268899928716689950071199359208774815189909222803679638400303123444074742758522351595812981415477411589331841656807324383375493488259362145748646402881129063770895098309257883918601373808562390353450393446350495470670959805854810074688405832716416792635740696480821890124515792154669117232981854368366099056934150148772681447495023546974181255426273030222739652834279436795296908374999265189638312845750845046009417714950142613519917898311778134604469335200776615835413307938167846946048035842464493829382471425596575819580048858747603100208144166688786783996640679441346840294260765244901925361005213910797179677095543930290313341778577169852631255141705356034203516098552441959105004812725275858424598633462098634958790546029459523240374950167063445039402035646442057188989880506294622584453375427184859510795746682094827999017621922523564297106619724851438623517651206711219294224426219927665197036637719231065294743666446056356514468618087656660068823945993928375390202779308360494679463087618010895012239707963171691664587896808752357223883072902302262677897964044277857319665841352862170894689786470251137588197305357445383724480904931299894594281079861283075329800755952016425936150756711604607744541610788546264409255255583788929546017101310228163660287936657489473984813946012523230629670895405037293440391306396181702875713332526353371010235166963000663001617766093396899058658541943604959379904569150844101552333692876592989542827392667354591148391401422780600090929307272783672546430072134207983532586003898570110648669497411148672058035674522663020274475670250270805804634133788047217704868086247163238620504296002032946038352731308328863749389557061882347167023480941997898674981818094638071994238834201707898992216933251227553403520884795244645657262755033439155121239098720162632026547878576255653482044697891846363882073814446657958338966726512724084060605475110991122681677507417167412576953791378753235042499408780286443609015059484411602739605511999548613523336224612730106836166327421651599449293087521988364537296330562832590736187999386287610019392099357508021047176230531015728459091899949317370661267742434178348180338220918403634789207187312067766429213987419423190569445169327244184178478054871056869206877064542631979525090514063422729337169957016161181693157701247299463322314310846419982654694080075650195473658111577999815493254528919477711666818462008644623619151994314115637467460225661600283325907243009783035889565755395597367044584801827870024175250079070046291010562511320882916219726073398575051271085494015223158076795577328360657695410599381611365086787750351172449010940426150912682232755107163420457469572543475653626813978461726091489153030929788741559353713699959066560163066546304429134168083366076632618121728933406450581196588636639919039657490081128680046604858605295007734582548100375374836068780405605673109278864092652064670370310039969084044365910607290953095581204454870543739426723822381857202066216958142593637555944404564997089726804628761165520465742622203564481525361922330591746577938471826752197860451503499368574772735623030253963799681325544181800926944444441841765482451797574858754036595672067153303596883122999423645948689344800405279221114601418914821010992351747319991452159783659766649517191062138392934591184291752195390273186257412352493399199050548406516886232082008121715510437879230465309321749617136188055286914984805453612367729527041465901297829889481581823234493672643219285137678100805981609448096197229619524685856957282112210448254574271976316270611076635840478981783136667318641834181486338838285099403165583173687721414962057950822879325214984980094921867941914730574372516271105832746773840669658307931315977258420622347868470664124481379789604219820641222819946008605593257352729754771195511513702645803557615517270918633073222202545128554927783609604099948720808158624677104183923252248117576723087565959974782595927274690147544769328067316697571999467847146658489176263243982693142701593862436112288796926906491186963412490918066351347261383269322195520886425344742388034088334211007186665381233294369445079174158269916375540092474970097343876251893169665200644161098160181311257115418129258328000058622958805887732885658260481448678687455205118462074464001651125268618333885649964658132589420510701993935543964272612814588424626787965713847843945562309011387517993483845706416240994137613788378455823681603082002443453718693998935833929287292054690693590678117075849266423228783920753236750078844531162542928256222091536494818992859360336236151282623670711064569474010575537913466817770709486719080191560259140584609147749269082737782044139898165307698136355366077011217369277715366293864286864546989655441587027865636625000232664368679902336529817497325940122266787239522526579943999722377343014493493183871186325498365284104489729986046746624121215314891587252070751922347439835312329938427457276947607784763645397579835051104431026993982163306332092516669855559072484258283900648450666032891873026693872401246447235323898586742921130052121457699972912184936565997393269640170603646210570781137803480528222312609440512484992523497277144619323204317007414160434331486867070060327708868431786972581172972187468794288047448553170690000752605686722941636176351632538764446565838907628325781932136961491635707925860821282391037273696364103908991834705777389617682113481626326075551350636827243742808039827929809881604557638625899075513883578655910446089444882428149916551956938767810779957556710589324372891801230079580985058280100198821140562887983530257207711380432974909396438065094335287600345362488740275679576866572398160746038155204736103581417402857249112980484507872608596307216022981505199394094682260191650513427051656511184176099916879531416668655443232407167611159772422573272953442189398729806121112808369802792990459041736397694980501935603730830706218074525531753433086302342544858061854288391332262131707705340865729691847913185357032633399626889485753844159015761762843216178512749200578191015198062286988433072821238042190750338261882537555637006321462278154594900307630187998810796311358882991249252299816064127335532459741191940359939930403669753132601958997747430238804488873070897592128290765387437096523170489402836856134227195198258502725220132991649782884566013692078158383860282859417308881122604361600772474515660822179457228872688620610749573192218112811426104877726879899016032990250972105108258071538770266638021752676157522484581120322647460306220246797178794725712967486888229827521951988294360898003563850958792466276159328915368022553727401591213885334907034221979585660962904630520388330132901311261762131116353941663273176466705984082445211665823577259355120019084683479796741718546234097529014653612890796568582010792547148208806823928212018510671363791674636636267342942299337879477661134045920824023712073714131616933001008709416414469062323969194962359925393294008513654061946148506960081151512361998333474953420663780292603044772623566330628048086534419780478938557635771326017939114817401484095919459471138233365566415480321473285600213580252324383477043182270452138524914980929118155244990802929066963626149077282529884563282836890154817225650032310960871171805684284670496861949300814208543527320919807314193613508969697668615942394181431821880790824839252193138275079580428355399368690292701498653994889017793297058477006056997572057339631086363388388696969846959841492243193350158499615248444942104766085941899702712109362503797761171874027984817353605879626611968378365795115906670537568054764607373824132211527651626445665521236997051485263818476481493313927914042173781588668021204080335832219113475435409903404222040232379178004693953798073780787469089983284727861845968119867100951963093628805523350888822069139359135619124286175866140849265937948191117686163418880262721197750058235561856988519898782076467752138795353947165533090756513713380106997739274405399519837685416833470080495170213807248701184395151220629139522394370052622058664833043214433380265008313917486268113019734427216245788873938582949577861187545353447409852260303753834439653920143192829359199829773997216631879366947101006965547458497404634040361499037609018741924080265299220062890098245173901478552191163258461579965485204771183416209427303913402147173541852171775754783551566839046629084337463182764059882515189744429187881245202381523485318018373038690818794364653365005852002954851603110855339149346478022794720183652796602801501160793797235378102860220096826366727577882945091511770925807403329296021536499967008266441594527693684051203347572438757508513470596667353143847120492673714019598051697080495062344688284696521414001245656321917558731470639039099901573633822441298758591760144491302310836348874220942784733591173225761311020914648946476939316753308532706980425197480530967802247317819381131914855697554913570642590257682297560875232662860984491471604648177018586288657528240411707106594302427456952920003547346144252943367166854590456071142753307061409529301673034686602057101672106338042945622834710375924481842683225598196614110298267533788634934813489659975011026326732169833707290927796443256274998042917710310060185956871036135526439620412629412650694516107571629615572950700350897546174815135868349518407801940153405876460458780721945763080042015887195927141698103397820065898784117720549812341129170004346213179119333070798506471841511764194946952813242149773341909312163908692575921841587732109776305462058607549214076718651284424162069931450413643099236339658406441387061140371636690548039338330627081164973785624844332824538533801706630388403921179212830761030403556853739716845510348141174818718065363809327913837841476162276097570617760820026177424840769112070726917387714811717265257798528168535481258533743839407967204981874785708281309806223868992544555767532878218171105171408444282470487500653642595991891720251125008389125708426493248109173693310623954679681804077583136027355138296011890022747602094133010832442564112615307807131569412326171037846190053573980374844914262034508403802637607499594836127875017453819563249372250497020992249145317298649498597381564725547877672875265703909964737061725573727559558209198351458524015573027124578281168673888025416521046892669281897133857586318339439141709525618682680374510526177065797247118568219407271661999461721069975116137106670310741789319756937873320969853869044857294925375561538582981406368416502615953105671079105930419352094983001940663273263033713635195470979620790671818426168667089635615582165799883700808956758908777152112296643410144695429854882229857205718461612574889578627428582620776624099766791575512705552562684059752407174027927022834254449717832712853471122476779942050943673445398957245019366797746361476336525747006926149202322422792480952782440365656541040739795169987030417272519099416323922793982255321407025683916886820005558628867433788297585656561284444395360533372582067859953153170919238889069119265422419652517634355429333204839948384585323593903270831189708604100887454658124574555624285159419774687084887160395370227817499798785911662180416595311703122287134632351884634566141178860205593811163089305444465075968422094992323778324303405954866548573960164823852251036997490880899932822006072187547311046787515168384989765327292871784911612061047969403420385350406483034082285734131804727013703927831503077134533826104336565433296107918026218066769138335277682394812511310881334199133478786093858620677240078319820329640190342008925972097638491655707092222916119384157271064956344193058213000604098001916690600880590224733335797019690559853609502314380038639458834997710339518924349828137599073972317741101825279838925783298810049604396582542880906783226914465788294024707311866339483177464742748129377385371740142643558889489985165331051849598434810207139314793081598421676467381470137173840305818069087405146471937217237906066455783102815838850878231078333658512255619256021075652007033291670985332895795682632148117583899178409805504426342794817899353914258071563574296419027490351986500265223023191875235300438756122202465523379202029356949706336091279685171797331446513604096631318077333358075153819551173644516121201018754072402917581210218140778726460024937186978913604125586366384210513076678191782157489603189253002588122678389625048363550463187182992946911675477205750402063970356033812774174453493742083333195463708351549512707114092568003501186331909782963882321618255732835181516623592055165354109622467342683798376352655168626164832137283067354107688500237301679465812397427938302755579616607585166940985668001294073996842251066395162347452212726660056137727422302596950404260233815793604072490640176987652147734648525039233088270615986054903586364401086411372646587699504791185146508684111959843125544300201098517255551343729580713915725166590324762561061245107546280640793865899498852494210404354561663134570075069159721387370207536062500388344490521970455436452278644622279804535895988317839091640222484762479938440039825398059540518384758475999731757471460581367766624804380195029465494280034951833465081315595341638547513237342653012259564103423890908901563930749681804447583462388643098775216965474724648086121855066955447793362725235372424346731316358135936715375370156903658068102013201588600763177496058012413695047599393742928107333689650730167215049341896990602838217457741377396689604406542971044457422088255699632212194062048438691405017643738622519706702235840041654884973939337962975864847070043785059415739427717477460103138805537595647389675915578632793059486699053428851263090423758826599082497597293823648055190012210422613373089319149699219353383279069671239160759088601946926719070738340150043253942681253012373120043022869054574369880231145348569645068586837293719690389582080565721019149093529502325699005635145727611924546762785166011861033809280923585457458828983399542141899260373072086162148612250486988650500626325246931542889159756466548041382235181294528282320154287042953343042872272909177325659879282012997321070648262777774117583026207443429235848580973240566130987484431400471247979702034916156193634129783934502972642864388447862083725597899625380897965801084007664826189984031043019966507605739011047116936439745232667041917275243262387183761197067645040202479268597272827835411392326082860879736736305884825424683202682309269295265820704469182217550930905776400108468548185104832944096958858541624230886349471059827829457886722893394070682972882843692988652012415013514936514819116852155425979957818175245538783179811585175131499680001372392035055708102284113150709909909057588685322476858725741210808047292127223152492614998006513902680155305772369865481168966495808610842236091600957982772685185784222295424594187684123336224917234092396862557285814046285233722278410039033520549637446272179979434628993086459102730486721167247612348562799319299910057447292500039290258667832333690939136589035863089616294535649228343403942760722181093253224240071849447033894637022772272874262361796174064135186082238605900491059374769203935680912815604337170235793476037475233371250846769996914037695840549306643128398497622244331720332381801627475541636339179953142872614215290974581752993665617469450271636637771411691484956275774968927226795261608315955575971905862307574235361754577395339319824132060137210187521945509691704468410619552574395377747924942532223977551858020022836532290111582666327332343408273827495069974635439875568078468593239027103878160438102142534828857796021406752507401380822775300108631282216689874845135909680790134562914235917965964357437800754566539516715459932672186343092305727921549248046878010642772656702090449456661097646383515743126380168780100759644994521678882171548705258691134059150956733043185672562997284556802687030755612561095540088347174908031945997036932602278047008981605833116959694685381167778664860219443448377593022235453851164385578233995403291427904203137267980412791955043827316072680150995601534699834138446491337402428092194032913408433142317824673638221861935853309745767654071761158685779976282494991372621038643932157601036674299389084207910577932092765051109510882520294794838774116906539487212773868172691022437651642812397719500403412587681225410906855012149170746354710259892059591281148832582427004588410691219262977307606981084939455611706975394696152211039384840194197286831089919104613236620264738054286473906887117635239544550012297482320387926358054883386341208236109510147873905184979281043224288026985475852920803610628717257478598942985034531787589280916866535139460508447086397697168896565574130639553640825706807678447901147434048550562646207980501701652874424973657631208476529844947858781401469421834941867977642521189919321770337774626223859196985595837031432930657640859763709250629342638825093231144868770114688051925738599673387567921012602373006666624135441361789261965211651042583066490487307194701093668783042003964146538016933397124229905240427125334542040756112748546217084183518180373258368068300995784009530258289861600682494163853042138974391093864473048592335145493013216628069672985731593630612634101493672361752916982438455363711975207277772588050119546095726656542218144372539318722579161303379217775435373673171724242811397694906705706972236630449336939294347556125134725234419847285244803054503489046774256500637945723403750415051762291233870766172984978209735159990444374801103807514094809922666406507737662029143325520223771379959797849939711938214791392498640999707394406707786383563049404510485077498290488984260301545260076417199183690735786967020286927445963443098659141240090134390142610927683686966740417640468510337354904313111832047390736147641001233248554294461292899538144726615704441877529533861406032565636225796700706048445287757645453886472091219797198109329153749403554199933699105058969532128828604349491347709154777553326114059927758662006569564633079322210899621241513335971474667651708746639919443387131324848274777908690596736387334491846038703804290926879737977393410066526760278580774659786331058761065606644146966578073660391867007203876185209216982284972483325158950706619839667358337347966348052794547622865371523197261004866946350412048762129400968812368386593412454678119596519316761840080243590674304500539848696172752975180336359103043091938453524527607952657837435058668515093163559107087416962996622662940299605047784159934569436347895828322596766454843325631663087117397101241354950094556178686410515125156496647117872291105992298237281246370804558430588957904616840742644039547200213784242194234288624588678592782500156148674064614102684541018482090572315885884978488832607406940976708075204367230643134595437393430944617123319334480583452214311445070950908320077970122508071331556604009712890247358210792733774623149259990958980213433562778254967512680550461523063726849900272140380048781072639175934274469952707645676611330948101449296489279517617198530045934171592892665318009848357826957370333569125520944967023443619084068811141793504076969051939696057914468970892415481567794970668768118444941156633816662757677546571090715425534066017426950270310869074807883938163810567808396331158381345483081519583897158945909083907760053004227646739757339107663301297446010842405383360868115496617975971794388546158476727224696344578959892564303424431471878526335407439633424260390292969982280982134743524695698872082502191742535701679873352220723223956667885416798312690363141259971280894966556670127445799433756048266042035128048981545793728492877657189076866550914029426862636174835595494755438543364528740310644961124324532554219282212375744842278961033586774486371194899668463858593577230215853492130970879713521594701157657455214947173817028330608057920107563738010434348986601655919086310652895821409463928813414346838673534472154139392144046958275723403938117358589781981664033193590000861811646461250907788407159705856708968698727728703270590687916630649892342959066668029959548129949690129565929481596543763654813740808323947873307615362324454976203971696382580744357346876772171882210357374142438331324275409216694854807894088142469046678241306146576677923121456987081571537066116184122581931952199625163739100799551573460724971015296023158831988089556272891943389434074419633633656914039056682538574789085427757359563955971344018686446817268155824286796951827931097647169598484903060035338833690419194783908118553680669906188601103148368778669310261262176211296764020727043493761442491910497266110703232428468433505739853858497890817346287878430182626857334688876436061124311605588197935181513437079313670523733495054131022222979268163310319047329296982102738953676234259842668834772808487041713946776727549458516989153320716130919650475644058139831372802924233705320843284843891017603183251708314982542563719651835023158081310460445136415003531935466451279480438407573966577589466487434117829428700212880369744353239334177604617675725258313214535038590671585537380237124259447159715160044850265247556307118960042394819128302208093200369660186185664814531608884763051636933148749320812243018760710531979351709744813477725734604371135296878053000728290158255780211688616369317778034635930362141458360454291176781794808573600589205035384643250122788492683592822458913196477302802429346830631600975804151305109684742875465147370855777315493388549517416367368309290676170897436968697497823933627642479824901027120845310836327247130007902013864152426369180915446673076079192143135640106291718118941096165294444631186801906253952641243560652235540995304565667873916793245847746232883126395378634970463145357222508647560489940237382332656794099091520214835707254909382732790364906072874591109641404478353699240338973465708428377614505510539509952013013178708686785532762835427504601241151163004389203865524366263235313579880855925539353193189286726821836857925580065883866913209309742793520198542527410160371839313861613162907157763889083790893783881352448549027328607973974802467112973815934398495763393148040840301547829134457168122816585778930695780493928869840907105534289478579806815952760833105239345802928840817682074022721012553445475254500902920860842753210136596158917991930789020278334311137294159589575614049417017634532165714979119803070713740628724824905085051220608548509690125772144220249437428662659489211901704471336306253385887879659821740328591915889235404452101839502076162606977060274492984046722444701098035598534109191747806666278518154347787910548838578031206997310221888321821715413836558861392616508920280547409810578898661857935146180715930124157811900585529287118715007887220891394873813871005060247796167185947227844320048066502666217929874873062718077969399886273128517621284668002206347144943250204799784347805250413789637104892186909470825492106118800766022811489629755524050737300066234082576105126030111729505144338311664509323289212722836340487599554300133931955223376260618483633028898730670208632546179384608900340022378930367204214890558399481647054676613938397176890966853680743848904139816345320023589617956885764585771067110787527383371267515040315097621456057164439722681180975011347101625554580641087675657696366383597951347849936953307112471962338171945254605675685939526817427355386637483670240893710927214923414581066959540343956237412162102077011788508832788388266612162641987366546141532911299110509858990464991736216197170411830601643461942019447302747145325547771542781514148505834873944214174290485133350964676518403239530120261870990251613799076990863360008139409648294424207884448095616657823312136611434729301251384800146508620768913276723629393396566638803402863164015139098652694076038693214727771173334865236616938858918669213597898710374887250988973859800518386294683795036293370969155677598824669860789968672978295217073646620867033971696499514390758842243735259260532724301583801538663805965853996332918149334674336664819454982409068728641654966581632209356390602968944666772955193724983317285783338769493406480616008856308518578715520962632231934105867346960330809992273738629536640849818301643857767226637569099859493438453977867046223493467043905480779436663145967123911670961868699706406311793868172809790595738115396512304533128569996035168611699211183472415536106513563569768671634211128290234245497502512402442505307612326358066493264758217720613364012761624871901100735642536011037673260153642340507958472578376194843764416954487675039969412985280079575442707757605404606592835051932133996578957590795526433262695980259872130508522785597671920978666175058115648214352654644783250960263135700584592178258675014715888407446058598561478906717558694519990424335375454892042284434165429915050306219120347963679471068227363958202964210253298634416889419838101977134501167211942963682361015355722750535309515162171597774979548874724169057181698834757354435287516129465576067659780807959816815499839235079913504978632919812994940069707871781101817192262362392716759869664495836414519154830933267982616584792978634104567838674220691848570333736858074633602828981309332400079346393479511045215521105304385287570494970648769400249555377906138018567695130727456269212109703448493207048463997191356116847081937800952096027559283689006809825987615454974989651138319502486857753552403652702192429353307707940492459229778461404932732214352116761854597928101102038794317212579700360440328010768195609119831757602769603972488264490606708618472181004126188102567179039940877859663301503148893225728469101206219128104315319092024570211344131316154663749996448498193754689396864797885115998367972251152179272660772591459717772073964660569122762921108248804033686232595392997421915880250498319342538593871473213285489606465857992484097385243739700438194247193413369412356289690559211078384679568244768469772825142574543308231946164290292855638939056630643154396968860718044834173169509128351785492916676158230678652386965055265891584295773992968249258424672725611912267361988426639036353629456782976106812510162487703787391461757581492249004891523086735636915840140559475567942477574441028165798821095430284665738634729629065964175369532737233667242008383466478573521853396799389450412184433333725773296384630405706679765222420518330232132066162990847377642339447568330082873357459131940032830441340997237076055180529312053346372819752620703372413092846995196692308715967617471452115068087211458357568343643508753643214996908800567909645099454007589972327900305905116166232711464469457062781180694787441970739027694597835316343821292913905263679282371406418600093952613716436113738818944373850851337678467963543843609754038126731742475247480594084711660613433115798020750418335197965978062369462333156721966081475726500348272465321970296642834395761758342291789577727431319019226739706307301183945280575985697668532962993224981010914769091919148184074758704486528371133308078879556856077252339195707776405431032500548009383592660909387540291956570344024704903695335703999024148443190183199077616170585412151111166629908082941446272656120346318108376295360232517768915518749131707280167280049272554437343912763223385988713793787592032061858821180282349148701246097414874154183197700497451193481042502114390337586450411705724422816870521774093113373114568993143580441660375187840120648968445829507045475002367908772615197121496001805389769043897187974248386752785232546391896864133480759249290072086177227598963016859718231201291739807434283239297993516008896790177515465901146113632472573436735176525494797811767781335360573977999686456997646485728332539223283597419390703059370663261000308680199668710579073552861364955934090517907808209076967680421297248801210460802266320977199266657778866763875639695152759450809426843458326972525102037242578922855607934039006109365931003976982856695198496232628869654942609671734544296327356563165434090800013652230065872016874888224791578052434378420563236466564336994699406382397877614421487018294710487941566855914277726133195935879085493781980318374279304606509122527434264971505505829536457479486457152208189377111953045238156030079373587655625102625989816036718093849284295455208720171802542891158610269034360747062140252539622924400087682576886583505227084361190945980915599683870948355265727124541823514941340882731915355952472388234579241744386923181659043594125094960175987281134081680984817169915616779302435172366614840602183642304143762211114949250115671676742022560966780938584194714088385145315114618793391739964157760530250277352466285801933716987627341475858664223524762044187218101759731992051315167541037042229833045554750894583274952819583193098466513022538628233411718393315472142939182137174475246733989690404572391766266194118961602859412746972918636422953369297803323852637696185769939061980193958307151134150414301878694479546410373134694398817002410856279850892732809491713660687860752250502451724032759370394786543243916912761022422728657770997168332584125014205288297434872177983721409435226451460042438644950773287052439298240067028315693144197299829508801417333110808727323623126798147605168530780801885049033186124830929338914894165662060043667184244975852964068010372554242595602171025869760659853293391918418384744845098682209775196691982739800387238981253476400122131282153245896351272688667901104652494601960175135540340155555696124450967791389672316629634656754707333192770542637717369957092561361823975801290639288313742389084432729525060420683130385927268927027305468730301581758207005765729628340972537030360360284230382522887499310329676830533855664056532612018032866466126310227052741980710333718899892164277216339728744546190561708141463475303334091498888700663502433668005820454320116052820015336784511144554423422779697910095653374425064610117620548310719683803291585213402940078133849912225136714269571761391969828615215613318833733284263316218470372615418417599184955858245502848637483220148923357590102912108346305114746552102231823081806214870447077489200673015330487973434320233145581641107583385181325195300428291859372882534987468633769309423983364533300950887427552732971963647536019439680419104067474712511376229208725475928167550539782163588191984553217844419377602409658753666285525994856248935363451897470240875168519930466747899994340082400872446573718997352796091051657338497463114568222761912666995461482074164435519463642266869068205577089568932172919394349346071210325421785691202511753919485681352874446688484632414270550057092309976558481353274211344280684268875234072444506588004379546123299867530193444582849961827864518990187893836677674346662934622799923123134571361789094419029854106272305539771987187512494159954523375309245227637602588445424255055960741004296569803130507955417195091507984388625145885567585540295893014002030029130074233090466503472533719568099724062528452874182734842254825177139401293041190617752095304915258430081938674716011816341617083605910980587965598863541229520112535615175935862039406267891429577453968854536830793768297863535379873379995072626461542790949428559356243237606427937503573531990498865641946314858062805018695513128367248597738557744985373183375128766292308633244462825608919502598659754855916034600371269459316711556557817382101025974856238544188603599498390827507777982924369480718485205063090580385871575399935232074296116094943747919194730670610029824297596364950973841569070053852647783100001593090875338367516050497910226316092283473354243491156721475421394166140492693986059136945934826661545761364761543008067428070581271209709813449571370015965227836675442126411509069929814154863236907576135404637912825698708778616935475573890997376982689761928066275395432900790079006770952604266076824642710588556772405003709229091672247057841923944381429295734781094828015311170289508521946840599501566621368820373874289477164030346322566462118930311238449766560135913952236778935277948944244798558791927549966108276192846047909569721301109695508394633260667633321597643685267983742287867786426411937590121102372721283633210308455801083234628877048275570075700741661468549581555313607878111480147529757320204933228521621701927813672532373943290861903034447278523602218600576252725815589056097940446893822434524282706829119743189870964676845119511706029167433294392481243870544374304725151548599838280894521181004086835659052367260222937580169323310742538477238888706548362520496651712634300417889233645203321135407090308639050052270637757249108755795075253688440288828934024547331980925161327116918433321824696607108748068751296900387438933471948687411754339124511557555008757769795026846335219254867129318826638697352158004023557394211799660827026545309630816109590344266990887446644509491417179708840705521895808324352079710024455566307486890651527212526758194019662621891485457361565993675173079819015339787184353727028990022322391490222684225862072109124178829259370747082556896812351448219197832670497361838828332899201932730564000766868565276838901444985591858234858030366709728942206518173972152242394886023407143840871599310361828918166596780183992620225420108490231174695971934540543266562245380006505101028554729223807305369312444778019165856947767391459182082113714799242869544132990296271666654382607364487950866277746601179577541675906784480574503116138448722947297285192192554403921184580167454074120604393790333962941027391999020300450369817846789806164353714876930039040905953955032077507134555652313373874772912158777042945213557061150344745817585754209471453410524039524487150799518539530249352878661324052996775392627779474044160229925987026736517521815416641632363316080340533963545032268560665413248450574441891423509673024830643533371600293762705061924925173520512875624571104200822199045548561223928001339665348600592585864268082901234177588923965012806805837433974301381711901941556999660722350304956837395069861048197294491852540389961911312118806235216989233059006315426263789032816408130848243909588582062371723459149846413351767126461576291102946187157831716855080457721857158280033840595290338242365307426902772353326906687442267496582340641632229298831232886100884698921855150647946243606847725578274753128301286596437917960762247646133999801043378323575952983349691256746440077216567901208832725911530911665061372056956925404962746384101326730939993493650066196704315220483225159713593236368524642321782423346434035538721897343769811450580578454883299639007861548142722186079507634905065461503320538674382668505989215706580067774753720849098401407033946663450659818311511332431178212066014137693147651610978399453331047135810994321909165547917929623208194836124700777497433067579974848271018744612227467661878339539666073259157517248506239138229376996071327285051852335582870590297961987195012783555530745760759717868177065767719575616846714180397379940815255541112183441549711900207531466654265744874333685952808912622032980833900288368972727180243618260249470100853773997029722107948008767494735787656820936117526887480696011969985734194175686752031602902508260140164293533409335500989992814338686577930770827082492038297557956576714693200205374746722391000050681215882323089618369020463829253110875134171027931026270580649085924747169218093303575754139697795531699606419262790368838638500628693305039057358074615782699488346235096591161692057726522719019127002367863047825291695671600301996025479277333455025413164245835758493378016991647799104916523228075985008493047645685590139473634326044992294465799393852192678675847383656459091781522202873851238719933741576531175511757748799194788446719146699438082587130034062061253516590413524159539606859467036816128537105297981549525524686743373206106369214369357885397537255125879771919105597427480361461324101592364413184520568262945350764958570905699469514337944923292021504148011554478611717946734142554848979219597106186483287849365595350134413366004304514152668302090906962646923698472736123685932394755022672022802138540740062892037853468500816109141648659369468675036847372227710202903790346113215359589633360003565785105451417110324935316588493120470973991826371845869539586387959776197758123103246196043967985629800600953763227977042512981112677750662150001015997708039381456849004786293579907351164808418805541180704147605683903486060041122436295474763542976178605931819977682695229861925486495792965653387850311629479582566427832688907834303128992368017038709737012197855125803654669415705110980471127194106917990387599946185370154712095604256674557868167406424207428743780678588862934407121869948110094304381530388067459036455472864617059124153074913388585000520039576771180927818702883662059554477596296969343949228981513494046300988770360175581144002927556265641886547751085665914300364205395007341021886169955049018430040395278949333444653254158401069610807671206594379558442986876103521360439051425790194196437156873566032304486095416668450393286470978564709267799382403667961096056224133502066839798788059180911501302064735408199798682293545963532582449994757147339574738938211388239787724744307808737687248518167433372168827446958463876259624905293788056390149179709297760398754652183693004881564976883824059883143026812948292354718636274489822957782016067139386442712577716492328856541357818386704273198035283296764381867509618705107370246334198652886467202242124300223588891161347153321885244525116170439099018570232587049896944145476755194488713527982519942386572587899819041639620529978764792201698742013803335406834269590014414750231238622890754799281465910530194362854835624672522052346096851526169763291863682186892816281270543790478043722493727189680954358669740780756345282652783121301624893177200859555703052866099572130128850156491083802175379406391297815049920640543868842833687287698162896560266028320868280814195601109171855085633081438995048041776954993290237419168596384479371414488257029411004211084785582701796150053268465104761865610043137018194529386874683659648648713323779445866087575308588639710896178691325968443973336660647165055365878371279321620601815612789998522620830440915778480522283150908842604578158169173301934701092935837913838862619404254264419047422152671642150313134084077993708603377084163504634342306257562914476199676321359682354218605951219419379569218601215682264330068127213479913347698721011873030839552359155368046416261783611793802107982620484302659071741150613048499436804581455376904264545920718807570774948944319942101268329366829295480192533699779199798008812227523806711750315420584836453490965155720397439643065289931902669062868188337236544879789046366464253204558695439595603094477714836480960959050572162438704536983507519249040946182479333356906034692629788427152922311210431658414158296434936315342503540249157108968060521642361350258237069177132776609935060522217630245357338663779051151081618848437324078891843397908945861866984890219720513639819394685441744213681241691592893699216553756049028477646856774441735551886831571413549688192220902664058756368608400211423780486048049495305307775179037459104401887684824819927354324904705253323611244727866277830009984632980983792887579542980353375015176371483646850486451782867456979263404084393918889016110296762338087036780938011110142597124080662083756994669922305706353063688098061096407282111240243305351030904893288122477174191981556678532614144830701579655246279280088131753438686871320602709001518419593090507001764739184262261083658739987598971925518830370901188917341223893466677811623213803435806580729273582825148556207936169275094398803207860889909774892969797989323075229761675882916902232084872172549280902158525552128805206667546667185725110470043508556549512104151327043657143617187175621246504727468750656028934311426001874618635271847885091906406434459319871499903033318223426417645344554458423597344667425381863625072315239390301080783693672790869171800800226658937470660755143877832396300922272889756948185537896472258278846203622850251018150818123062229728656491030483921861844315221395861913914963634774416191676062789369248614814029127834452372491173939404623520533704684685451159473066377852309867197853357283945595009154373512572552372277445113015952464129548812135669198877045489879329677630137889064453921359827218566002214966813554313824652781780397412009515220461172741279213317701560863294420207210389454937211446693134653563378651852955977561637553381063511759967249314415622711234786105958204698866501641847921665753809049824333181397590565655788218941672059654135045369475824466684485915338459217071622910784690755919859981286218068784061924806676314622097121225050602249416192873771363094230641692293312180303765959173385591033053711838416285117275005812831018889782668184697147609187383697707550500080317317884324190259826261927985433784256393509199307804562257546497605447245177487541094049152938724415635897767826312420447224662855484998180787801421057398764771911382700405948607482032930285492835381289949835907147115261294345255853429747579732670553830001883482893759920693616156436906896799314046282844831289145323608970495425553014744965345338559619698478127496754047669500696855826271087249765053647064554543394912945043486693429324917399715691812622859958149907156346421302136442248737405337980408426112489172641908685585871001914265675770118563683875910248858130389076770735338691825059660890071923026776172030070581533271572752213284431642068266543605388080023367524259878702902837638602087513375035558743303755128732464026807198519023419620690721612976303459923424807026060329634950923341622761668938956180447996771370318357406857005794445367063137814530052461689370668623743302110056358333271567716317269895405708156248793610896260595018174628990448593078236383895400238572232479259690305667172111007466149747121151557793788427559524531254449362914443173548422350723403839204908987272041868626950090711863605274649545484202942625808378157506229435916614804463923005857176208826511253941005180376765944974840785701604582453068824587637218866082222665371272346429325309623442261819260100040250542313913486394840403828874579680250302681712941872422988956696456033667096854792065586984587506625443930931259556633784923615267032574825254331022254522794268588820768656596460037871339326123569999695851652018067320627445037612874358323857080584098161583637684130070672365472819683860809510910416850424176574519402109444704317061304381988292039966077234887217442541713380605779051465067733707218328275701788090119564352455507111366678812269769478052201071576517045199469320508506403027442754761318227218833233583466038609922221973492206822962639938452137013693619814221098065022913610779862856953658467693770203724756304365926626279679490363408144668214892894044687505338219833510693489887551589343918823932652262982056890572285157437126391216613604993026613700689261504828311014743480749401815468002894833808320493180473485652101592010868808513295603228139976105653697745303428990198118270193213105371112167518738630315748008428928586733627921190610852532832910998261125389207012034405272909671766303537156106219935651551574701495490210496177487271366662048716265095038309753896621598149364146796887406535435595130307733275772802201361534513178660725114839236745855533416297085546760321819104340449880586467266787666894404592974919224143829680739013927498746026374288129643412479376819843608237962046743958311178007218352747285804275637446121039034123367341841134819404299526858886569520688990263041019462353098696313233064316810194382716901623947064897479204272223117095901729619702087861306571099528696497423790261802121813158011504842353365842831268547678411662283411087957345943450858502203675925633785958416857519234854042755798132298678625982588097733266731640308689284059082859783138153256243811280650053805961639013834338647335265642435716542311452424948950013572103149075760126318527425627515736021883557978029924152124173260802035789327475231221220774361661440934680832661265627657299378967285425498064029152378155032403060638557276242682623373634394538134386721888235025004677974560664284240696751625555869821990419596354122956833511805875772327339040310838436597167483502976619113776654714727778943154988618168582221795605191957731824119394114685070600038266499403847127420078744963542176265485882939563359264239291740999718194555788058476873846157368573305626655850815199813281287948460714441339335735725332050013791766967833467975287963631734822006240280699097022077002116768740795885547533658958360072258532490784966213465534146888137789139766115474716121903128586794122573565582671748671556846259407887513368182879683218097005130073544439361206011049117075149704694339932588985027003172706699679292467527714606631290404918400478855012593468787848544317552465702285318826089945081407442136520101412555033576260738684123619543208109839225082491549127129794662349330367193622359041057073695608694408462173133865664645362865688668455660100497173814332550901114149900298216986728695717043596800717959320013499973752914773973030828886163928838984916689825141913195846243278156441595626702835574773572342391241669099466884140897198185416427174215828067622324301787427904087307367421760787909365149227112317584570968518763771647193866198417309059687796110231111733035424589010764818250360829278103147610406278703695089210737462913572059775212392842884242438316858011599003503296407721158558627701568601594434574463406684693374986318466846262733899100766951989572265881641252225015709242716994382342821726797550316144266543213100818727910949960231709463106249198039289040599687646770561342885002481667173419546712344065872925011100689082091808611149731399905807257620454138926620150131361796089887214321335879290112246649660706616220917576549286973082141776924451127755674919890585672807879832002961908213518331554431153439632492562046487210010497748180324190369532751659781728513053746905142363555163742174211717481664918773347520382517420643731667192991027356299220164378610293654130642548924609794597819303840508705129367879433503741527703701735436338770015222023526506393763548437731298710924019431577321581096556431337750126915563484960706457237031482279010529394058328084097342874257339675874266039049188076552404926205983147997733255394258911274312504521796875733955506882591954700933757730982911791063853173925305056774624928722747085149996497063928243336962836686249652536052598737049026585537821946584048484893259468847193116417433288974989260946373677585277860369229438818679483948934876737863607401506789334689213856775351923539376699341751860801254270530440124325505410367843206610967894890906623786013022507923893702287420101737195709584993808115307938095875549078131362899488442245341058176679960247282445204563143938542112004784413490036822192927918032405554977018642364891268814810895816650706901161993336570309897217542176371342847217755973320044450215886198101106079773609228069798367590369621502713678142098299925943990019806022338446741430964642641820018164080866607138745267220996742267251278030052591658003884603571671777296897692839407370192198107935375368101661881349950751274050309027047013174087080408365357477738441062569613245057396584539838334237947881780915899176898820380173493547349829409776971993094069146623831345697005688417440747810378414346381045552132657569391695130117165026355024571024311488277847771732307359281461330225230271660100437614878986204805949254316587110927941624893322827753213367694008593493478701811381108363616354915623761051914119588099215083387887004440800201802906686328292556846204959993325776825607450980322279427176246221763992796536797544734802504914854872500058326386634383319638405844232309211193577824660506113550077108061583862797455097285058429225276815565557188538123645192190923876726343690104310042122388936968274846635168030495832153788439520038895268507915649394008721888031060541691990138834125850653744033679899642824279966947955571844619812749973051372036742796048442314730374805620777309517995241168326452723488564489573211763499433626409387671504514859900837044336461217368580450244111524671446173764158730201793743341071150290874211226846025988996542931740445376646448898926984392486457860193687071506039031272897156564648312674429293952368751268591932823598589774111126746572873086864847367164811613859673746278499517829800318600263216845256425683009179011483423311726084532126672045257849922912004549231417410614784480757338805110070487403350312544466164873350222233125242141929290331275734871359741220584450821064195747311777551452542128074764920975441000827434908562291807160815137102469915517273037692758511335388084716965463461654774441605248442592460225534391424888989447369880628087137129703038657281417468798262846635166141135166292054426276747880733363209732596662927089791100256663340354402796431717027321077995412351798499387292796981041539464385457464525037451179485252159975225842163649814334709147461856746908378281251105076807901420690470832365934517375285758428068826971298496381732943247475410200866086378161955152000136174068172382287316466999050093429967576845513911408133357058457855341482567256975640108614193298989579644038161687128421380491677691333355497547959535636331256939104831735567752882545965810506462640784986529927452034530620416337853404930455503673303040055482262034845633289723160665300735184171297699630189131046046943147272436411085898789410973218790334028817740357957017373716795308027327324897903229444099877061768165847432179438249110960412675307454962729287586517206655610453062811018466057345548459395781777601236216711771942210814939203680196806121216785418318734891337869962017558538436102659728798208839514818239997989828947676933138488314951816895742350230928802274748802158933403499924421921539760747034365938267010383529899478006637344304269524203427618287064551176407482603682034584366695204972277436863596625408253332924286841064225378958868869807142365375595255994152427478053557328779991348491903209044645342796039292403390377831924631369292993467203289769191837749308485791239094996032281336526575715015089502481951888755734993524200998729832321193390402036833953227210665490988812643451630294003972031599752774169467872984545752039499852079104333916034028982874118525276889187696108695227250235043830674383588266101577362121189152963761409752768317651280550357689923809984972304593394794028871051551460691876079127983921862155451132042169057635735312589513516938011284399688291321332759058901273002283633784482949131096859522726181577901823156946844455493665796769494864980693308322911473488649344228024101388977122774197065306188798574150304402081215418396035452639266254512403535743941757157924741656642843620736769042100210935742406301751866202586843467265036843395684228155351126976927090049695283414748118000296606460304253880100042486996598142723246895688188892405113731578402724476830787310037330881892818102108854578358827424336284700352046656652855226693315185048720698840448255255209005540177552375553095188486963237581161975940441226659633134064420338792795723072381530573615498620776978833220461025272078517771437207108287525339233481718071825108607278162048303406542760411312686574350525407740494122432652727521204492623059723355977015563241709659807562231243211926921819918486058568853755744235785093177111039331970093587783355912610087418394218213609809885136905885231777449587842957545045304519832455096336654137346001526845948407408195408114165446641506238197717086383019108668754193342535468108047938840254015238871024888193114483516893254655760082909542234247833741629548365029008648679740373946821218109906423386290895969555484429623576031985827071889385808496711347142434346379142593676623696226556803741386663578335194737621439931762755711250496291005946610127642015291644880542334801198878276590790891083441962164515373110021921179330233807165120003781105396407384447605525863714530720451858638312356633281433211340579380557346898815770194473546731382804385862357512967527810901658869711819363921835150665486214393902008077137209394858411043514259462001397932096862101825629420375907615272402250637634598141811272605327103129570595826487219664707401317107976997645097760247974549995641063633941083776089067182505472156389416940303015236691135611823402437565587073122333962234622136146725448426274715380174550880429640260098685796880663444636819912584899168948068973596453592685682717953382453256896344616554961591187512715401160210059844474697220288615521477426335934704436663191361685505840906511291504589024538797171171402105210644076151686116113236503323635289860041347621368912074341488227455368642978634120735839072524771169952617222944774998781782226695922544746743932378983444361688329337485282168156613518033061790772788897754810295118744738976599468401511945567872817447097205916590199922089826722430781497913759999725482327328002255541819560582486676162869338781519225862778352754563421474491294415925766927077959565318774630140369975220125224556222080428248118932912312878576965390117585395511136799933875814975954566447014669087692714933339179893666607881596166795883331479285943066008688834560661208183674604676669210643577983042124964173155794108750250135930426649500720777889973575318679926315971242477191564446995693253313262873639643950518635678301281106100260439479094972228937708365790332728405709159411283885152629535140914379525356112365118351587701952081524661826885931684256832463788959734264663560312194993644449026701463780133359578068650851654727723869993383704135537272250822626746274075526630944342579453338070786414076368991940951011526488515337803549487649388396101244764841083533508639360174774731260732401759760498685110245092320952604134004593874494179709294755261699977847532992389278397326542856907880332251902440835700281644025382947384085432031132149650813457487740734268259236604402433035533960924204885919783490982755393927977991237947774596727951357201901292541474784876889877187536333558200518359311935668381922382708418037812968620353853318126026255257490113198562994671353055965488316398751444237232771633514418712245936210616173448224485984692928072126553473885349862465108608742285805027763354335009389483488669630783856613449748280513780700722815961608459940735028459268074260522626812187620121789240752082634848558283255208100888313891574788190168420791322535944060366413365377012187610553720533392694051888828262184619483438692498412981812084550292595381457177843532573244735069511758752083950837888537533823091303680391032445296539938858407832428287544648191941727367835373567295974403978106013427377117752593051741929461332474225034053946560494871482363877892506669613149937837836554990890101421353780821094432539857287456280782960456864810457312986614727735047720544343724963088089496166576492135784297547327546879525115529474029682656897332579519738433786026107934305068965345150614105292529663719840539399714059385897640927761827813450665281598383634677623316028754610858524555214369016972792953078656681007320330885155366631805815424932081803763731070006170126198875823545395394651340351957714616065735001957297391758020713113969078845686874077859402120018905502451150163230195194530697967625666816172918524518481850480745406499869920030014751919826313677585656129188594498039714590669997204152728992345012294859842929168720975959483539962841160635843238912582133049130907895996156852010259910928990134183562965068530338831380071227692902710284477865307592149474994809960146196736044568957081080966876614773345160909193932612508986726825012243373675733027211669568905174525910729595790613176838991103531133507818313008049524065627422324694850153358855606155454985164859438544537222874303518701160622919447133224578220210184728980486305931570492164546402523484470005488760315196390986668843285618419027573722238540206066207842082930397947929693006339254271279443334123017266536367982206215676987413977583725489200331232866467474138769064910091742347505267711988663022405597595342969397104384044366272337793860665433514382621050623600806167657556958442785918699551599385570752294743270438825353629487026646522930187350849993472572080401320189529051133924853542598276903694541123775972135024292504995512545666353614760461615656415004294164994907953057848541551079136539770360240263490004349487902526988692020062598075866432873566247747526128782958658392850463186524025672722631223802878995417188223413692347726489388344647571885118414795169404411598831300451863679553739458511814451119076398532580960263401893913873097822672712165209703970079535605134229028227992463963160745781528256913686569123774255749583665991102075871636880920691572243418349908570906674070701363670856322709578238865986252007251661287225326453454176440095315598766916557061318043454416974783217595467751657745071130630883595547493687604530724626643669932997355903564978215398204379915471372145666422931265347025861590359488382437616762803949292203245155152657233691255380465945279238324335984040430873851717190322378912239054235794720845366105216692071634251915062858738917578120215598655066924478033513410998162815131887055651931145256035892410407459974435710945201480346288855525527088940082585173697955942925040636305263755645697772058456560865883068219323325145735968741058129411054071139462191479867710410429319065811999363484705850675568139307870996666428700509837026661676751387452226078482302622236103095412307402547348700716458693017826429813643594792850538379094776528576682509960425109225575259017218091910395668158652693509691389523401219401571008888422458497679658519754224753808047188013831356260528116261010476027366092098561374394707093606319383494070535599152825086014965585923048589488543588078666372392456652770966175166358802840747344283671145715968965171439361081290131898986912600113368391569603904195976401220993278781676937023712674729302498518253771443674007933583712613321140421932312032768430182672701631265197925016865922874143212330396974131904993857710886098633772474911003910108259991869566445377285278932865392234240892058957892118521878737464164753326703003573084070543463354469618973661977217621990738936367309508337443463882230349559556083043693860330335963802517271585936176627742694571372709664796190347268582745079640511819777384800762800586398131519993913391245825567329047505381422264078065784475801900661628455806570007502070649330473331513361986293617404917748049087082095924991559308844130411410765797176153235832537431774149319420879110540230908417586352219954620572273696570459846945926307131891780384898710578497703655583110362429511999290474172653550194693392090170263937986655525639666393842553005124771087887478346899175844579179394283200251735088598723762430223969716069796721157191645671630281937142246743271323956075559060839663404500398768124249356328475931738213462782450595833869143401998696700001763265975322438708730212153984885271092117029966359608204698817873224473424227407625758341831334532469602224955192404558776912848733562354615808685182173745541513600840801938596176812032750629844598457914955410842893863030921249443890989391643840501985150900488949808948299645521981851161990765580436787674995197584899094488269702450187346460910183089208796949233962262012604588103932954181843528790595518613139811655005103164375913154783381782711305636785444393614981560146414821267377298473127357120805856843639806939315690398915583122430182522253127156977808511856463836289590767633930105682893450749827161062168860682288176381931642835566685274181841085365391576757489529727017884455653852976880914436215642679689026899475855128931635120712966789060705068279701120458782212258863988494884922753624205289894519068642647928546870532345047514237690332654901095237060539909356981772997502022503761166451187458890207550250342448898281214843917762942547409155948036080047834971627564511690434078968359950420785629005629562692127546985295321149213480708819584345757469711670010407569589185340155416628141889401685946550370415943387299441076332400992478810332549231333521935282308685494127402159986507284926117191417661656402156430287954202458203998631400265784012246800071421021068670183488900124294512075132747548020792034243876959753378728118640604981498904975245295667485966102022156684812086191739772852791104979102947209749984743082403270096002949677510904672924087641017493932562728875491976874205313409976387830354178181089677475857221145823045669121596400897197130405601929076921660820551469452774579106896135078993646468485139850978365834496328292536015907954511575936534000847342031426269722382144099041012326236233838575385285227591847029189673572348658406684822256735603559327796156638364038712453595806093290778353704644692758343818054444707539717524263696100694889104288219932237494283017992620404689726684079830219563623290374556711140440308852077132210240815891920690104599903427330334807020773680372789605496999496955110967246399174780442326663773510019181748709591659264202199411410081040993901523850258962639068644628069639551586298250054628028786129657299431658562884884813276054642191957855566605853732655524054449104874250145692672400178345691622255901502734401383117755075288551321933185045603340047833039074568465206504610496306143679726544193597882453499506521402740286783378052252173945388610948065968538615576371047543119016067293628071934348822229363637456875447864971048769571677221587537042624258007463284368105101439179227985200824476282160309262874972855380700088788336944277211917018976440869675837891014419624939020040843671448625870206515158675572889474992136144087511630108644330205225615238023035661134592667257538856519237706162568095021443728223183358720039593362136039101101663316499326926981026393372543086750115652189860057056831370039888880874682678764467258748585794785561434857828678623019388180355848116887902227016484087604574401228846660037054457540330540405539312712865158540895209094352672428053420606022328143827374721897982076088302919446760629963755469239552611224008883398641038316060383917827857528822704210691269658561498421505694066034070049908649646282985529378982486846089222748123752824976614210968365491662354191639028119189765770884750762159515286393522166708341776536194627482202819786633303259353444648505433247770330692739595217657891915321173746973765887329306987023852094641555330717586237235819697684358218768333786405344580770592990362852188897470213870908952777415798238335958464147063703577113999669503772412923887750276768957829475195446310349368661266688120894751566077935575006218637857215670656347565399553021886349862493428048626439401181636655940975947878940696401133251633606999930205184433700502544208835426554525158030556432885015203540225540795097540844467545012764347872072719416308711768031163837629377416814646621239507830087282419985412130339800419720002012998778592556254502893600713871217263490838622854357679080210448601109650950645407477218756730914187456974007884874973008987732356990774775915409013226666918485507086093345501785401946930675091904007373397976024406968439909246967516728303451837393347722855030370148774762590902732596134689335049369738753888666300888414879106524095070514586566335709782921018459935017952457053785570791581483925524512780232736755264382766400998496744575077872338071387552759510132668713437573674922947850503438356019326931376125620038475567360968654768712241430433191031658241516043326135074179361276214382130468933931812079075430691894175571575317264249840115529577499627249278293240955264459427453412027694898752224249635335051856569298045370551001631129342271852533876005945576493369862528009057859887510205550783847180927739458794888796675526483626351282692474036407485264788313579779935228525053282617992876299331122557045660040161229547042795873955608891488019383032889194192804746393989808716714482017906470592047951303919723652124820092139409985787590004955336513228249172621687677223398170558584283069299104754142167313441319994227434933647002311207410528444490546953959831085196990405138484295506356261641575558159773451108537960646179025771019681025161807745373970766466417731066433963010796622654571823240688164294131558617158394168523190648002188294848323771245624937534487718785159897545368482995489809904910345816728485782531863117393366212207676051425197883160322268116825794350140947387807264996903191121271935852771638754430772945482330938057657740383016350585942185999794873788510415749472471099396117685046620953573454307087804086237136852130897268736004884555592851106056403942548848418363059343785958265308716742518795226404985803383743185731118843031041873346704329017568310221914577003944594651686699298952547491809540291574423892313902138044328620580256109956779606264627609516251300275342562127694262045653713651962853667595984782575166109172626562545700840773592029388488749205030732635622741018976368782086170493165808266190723329114965528202998470621418050418119225798004930669001277754425413766263998385429684349377574859294031799065288308635281781185362508465424780655896529041021996857647381548563418208437042127807637444329430665800472712448880388818695134859927713819373953423219142863999366744316847526611459818113303763594253499790769684259970417604245184846938869631305675822449361914420874122717161656575444866409158030946381135030827653694193924512644578041460340505076451348393601125935015263464108621410061432045947832567356528241987646466665916708063307336769941854580728643856213443904687575353432130969822873266784649150126227661231959126648517653200106620589728400199795490043511459103010307139580813389335753356225849588630746083019743581137996717962303837066793253726857897513848724810526462140017037964206677858637187506535922760576565385375937156741625539686798851761541663555964961755750086140299516965641085877422318740743519058976028709724636691924225475063705989344292770821290393279325170845111123274239090363998485214322147552165182290571871589012144267800454023229950676856467400978636025652326743348865188296588789882002840518363975057392734024369963393850072237841533874371505869303038502453265641517348713228345456739725000539704898052249858021389452379942402517646242137003140240317189487958802165721398701492473736151824513526283122586009519044571439789314562727015752593645477454969449881074833874095766928655901127114196119014548304650994549777933284043950265535923958896091325494989928850061344494435212561049310855399814410346827576968585129940033255919599235137185496107593410359338171915052357798960917337196531758568855439502734090707002330195907598799420933034218356104178260871476500480564744338645698453083437613010946516458292711676328441363523084779266462493293164148719431171579838064789473861552071777363983938269668798008773152389002341305793223425059511130017947626335094464286948522568796938812301480774020601178620316464118312286828745420046925812278957114699588931010196105273738293787619259593292621601482237059626919907042880310990597020746001380518139136626020790604946273984437115215260605877704569092038221875295450584418889127442176941429053859989669477021543415100717271430925550030778348144748118174793013197269500068757617881161237760645072728253809205703289485591976428165257140747604181921888129190089153501514463674610890501828436542766429301153895003110031764949207189471360098013067460398246639245246098564928595721036571631402930670166230924536033678315269513320887329652074285271030561538828951108529953510858597486264450154486099672575676476678127478812252997906815973272552304581738703532267161195045678599419412198491173446995109146051545635902239501818026281358718333202409444909499980848324893864963173576086221592199418499800335964026308088740975471368960964150882400346799625879544626588702091787661675929750856977935857888661509295855693808069999209168205666461461218602305175287271762075949442007569480805738948214316587006488889326774424282484923175876462023156358488061274874442399693928900513191221202978717673354643031124839669464252275278888155795827976134415945840455614515964570986124435994609540383005591880374850375375228587690946228060687769668917001623885873960849408184384911467340426690734347109511102962464913394634623329368338962753930480246558972696661499949572958140459935296953800703036983415793130915272864020590433475685144450686197089457212581560526585175288692355012593968707546467847061293285756474366997822608686150541876462535115258980479532115988318660717750721351959396519603179399578208734753785965623548651096257167813371550565559136313371334369253761734333187574072098956825928018875564063297989930198892326946826939725075683755127170411271284302664473530297770023940481953614945122802479401946576484247557990925242137111367941989420814476006884706673949015457797237153303858725684184210317144271453495272480915760468069474418657310619779304419449009565962650378403533499944376145087902899431923787055568273509303930341826091348675048436802538777499000744133653439202768401730156522014322518378111205981119047782997131482712093296027269150885918057666375414312579216468986510752406097492053481825556802013856934373201888245368667064449991527631855329089619501618898022774535091669378502668992686053231025493802080470080528591630872787143442081075509405955152615039711218498224594816791801292625283018132690024870464455610907109573361828156790041674612929109514857881294467124686870895506610386605756048217495958400283167260050347375104312567913115463712738484847052085197889279030159923232523976727819778603906328431472356898590126856881275513359544917356954005447792403905774755760256623974515850513120208330466287648415149068889733624878007751312635972264116306174247828097684410412380170397861094661545967651598700671305147073339656135283327122400506075911971402566192815877878361232383693663085133237519901411184880766144185527464226693125102903728070605412965284447773707757279376514395679661897845242631081719509414717364357524132757625394496581576757965374270029897351334219187407721071245645572353901939963344203028122205469292802566783817065480194773146005929011693431018468392171242378883602279414070532570108523551129955094296389145240331824937983948966191041519567179597188000413507913918694447093166478900840819653423976821964426136571937541627221673138454609831628789076730232744999060416982071129029266113217024992006919771596568476890346805507250124212281466625924936904793562522804144470024719769638458957174777467159536364787577173941337991037273830535792368729132035934565724292579166712179404874191709095816419102185529279247637162589442011663414141572937771031858250519744164103280466977134302035294896473519733419904278021587251160180264812188704314675182368235303425481972806041196919319266126359554094595908467378760583362954012704585895244805791610124352082079200486122189262137517622554957169678020118733581129308169696069787242086200509992115443287164425787109888776028929367075938525345455799393120217437698957496259905846211138692810255322233979810911171679428117979167421537643713464210358451059706399742373961081366065633323325731706586578859028153055186338424748348144343221776579419768180155333807985726010396713466520497422688863555933792384499142653044470295668158852894485027376481967960277395284928888980242714514240575019610600393078913975875022765303575078196694693621846668234160415113609287623181771485561169983856688764130593484997790171583493113811058338694538555331165730790360996842449094534570965837715977240125530829767165632641091293294056665738462544306096373744252319213052070642799176296370281662413576406920348159280064030359295491321579321889049911380696615350621915889462352374128166984765174543208920731302166401665079347103857226456275519262847339355054381989514476242433396661807229161814252571017410710578666127908382055982668992115332719173317393601004211994505389831988043982197862120844445108036701076689562176957160322491698161123711401043350596040079883033007805919233357944337691969229714455472852711405719163291419082290089794124352056151300684349489364165193934024463270350056023779946129195651791372964106295178769609591060064122432542550881181501387433393129173519419105754705424306096162761004448841173859371276266035525419595254618740714360828263871010729153571536494623362292365192771793354288421667899014658888984456248789068122259770849227942039159658787847534431348264765925189817616535515481967341325303978227068900044586230418116783723889647632826940266991035845047907165690750073844876812412456525961515543931425229488143426241078288068573595418840863958308397417542856719742177062445569145328254246169511000496474499111199207635707162029552092759039521055315857503807674093575325664699986770510119562570114263237101893601724204135080636262824489022781094450265412116776191651311515744623370807860198839182744978243908333366426165769332577356365779323063101929023763228956090584875486010353922843395500807050652034458806804572671911656508884168923335776775221401505373984636470561565102617594088605714461793614626185063675303353416658883119329896780405931379140979346536501475835663247725320877383886010731425060538029263000009706785441790746940400810642327691810534852083570715807870578126887279825613756987765122296655731247719550773712324535765122137990327251239495008877552092949680392347535244800565525078196118582094766665275154122621682543142642538697709467514001619313893134404220568026261898916166974662189623454762046780445794138839094489235604618163134303535807485321382509619249973082622947827883669790545283022240268150340129393715429068999915531217407007637086921510624889171045362503672306060198777230910580727296633819423866573311142712966795464375566654890610417586450153553692469441002392763637656069261574374930732323091679731059923036308475068515382846587969842920678512749738657278510449919616138242578889547430711805765476653146582782552770042484961607717327376905268169062631748101991573207149796746461740970921899648697407445956507891648948865590748378420052306471255191166401491848216942315441391953105921554863110389646940976138970440781690975192884912708480699695902276314089193756962354737915964829343086853409828367173910269473911217465774650324306083502334380207162414949326034882029766110861444044928719716363226223158696100034793952905959404838581350550640827227441112058005494747179219127958115516921152377145118994895935146666152639954261658638756555136786486839695632515114525465398272536147221011160947695419681014629503974241330244994837618540809405793514431918781484203158605588331073657229482421173831825230328825362737454056960485487662616373973488817058615308316015822575759459921933117028417160946719440836371856544345212981272681233344092235769520702619146602600391764585681121965615197121453926544981131116028067125399485953033485884956615601099998746649618945227517412943314261188589575777225499975432128877405889969778782146568958402678938561398611535808066138220269208485110398184642739995825482444650124450700821244304517959806060140830674320533326375989510513756797136712985752869773382129164603192011120971185549851194298105115793970822188514384836642478221111278210938948736214376492198883218654268186598244104064843343151375569412405756304768815007836781618218811797841555740919314807884883403110697748374418704610086595038559925369052881458486484388229646741145621332946806484071502323905677888094759922599182244781495696916231009402818076742368131214427927739142393004422374372364140590198720697918238629381861517675975493778736130037438976964151285954104705718835094145286594240968396688499976749330077797836937720833386147375853691882756681070515220477143246073354715120407993002225766373828630281424903399662868991268613670353671223856227285416315518580764780502994104757532594778015987085420634755077193997673048646563864925557267917111648027598098305480700761280508527434095275592860303138850764014869049556017776741871519120662980503771767047953919841469934394943374867159555352791251389079189660884416021380645117203570810870533443381200722368699704292936381867377075662038618460061654516162603172848801454502751277787052959698639391110013770458961420953654994533410898114426132775634694315566919793159154744971224574001274133840451862801201747337327492579023635099471923102116491092664801229780635148944712462602811387571588245993419386107561364155766147400869219297294850735129205341802295470289992346461227071392690377119225098641478249430963421060269701522069069586286413073110129876608328665953718037666506132508722477334857910992630024163366349584275652727921904108947070653826644250493856456857742262881942242189870808385182247729480629727007813191088230039439843427885455398744684459973228149621094304379136980666402108034139871973971061141141262192694414002530903030984894612589162370927334942773710124307890250431444318757973168172989747733146175721243301407038071037180383749825426991020894782176033129171220171697590870327550905580601252272571897698225819256905802830863556548853876552224060750473055920630564590465622736808856609747536315546182910487003482621717250015701230611573886920535041599554129812979712293860531000503646276033721158759990354927710724919904025393691093717924832357011125764455698837497521155411267810493279472998614082563241499339010187323985927278069506959224192786754619813449124325406415984600612390134822504187561498225194161094224673581950576227742063798892757654590066103230912382372050660701929798180501830980652375325295643514842033027184796867065488936659089248122959288528425163430488577298040104277963384371557108932542628807990847453513063724813631779167187111490031770872531432030371380613337200828130305105912806786270295339361335513480501131912924962800408389085208529466028156840884532040710032110277729871882777105890389299863342157790554103025639539739913434381075895706475110400091914931452413496256741879717510129636702424456832033462413015763170708033385261778097617501491853150919587150685364778400089700296457887275354296371266074965991268817285017843501550914088817764312366689999404362850981461134587176581439366461448849632506250979770987907023864651140214341241711131452521869794826865869150517128933502212332260823658950126278937140561593774900801269733769040208656099881743065374317278370696358296455404253049374021390627330649498807300482924829941043311659178275135090507757367415700487219657024519845757032272118735701822857178386255303206298726892374263169363746936487131900155900139373974517931699479204286300003592350765175540329984167376000322210978286874027616758618464509762163937673706097729986652433527326622914513255920859337610152284185484278438164996309309432453530930404505717273170784218481141354431536568036058831962141609292492932802553236983789989892675489545780106034924817902887085970115008654167566674334137431309129800177323713338388952074234971740819067730079276244478974432064918880752519974026104138585504740618001170235290372951488118584825266407190643234049016662216360125667248243120643923322111336835910680457745721551251275320126906756540363659548711072907252763637691273596804940291481828677273590134045277918544362619907681291510681768126139470274386033669860845898864374115693291672966466888075947540342338591501765554670445446722596127900257267528559811307360669304602616104507044394278501864928494448380338141664724496262343216058685744862851882428922202321265122558399017128732970484247947500365697020984249320919015867315032871909623940446932433340000172785374143188924129565108222390751740207738458568064973425215736077897520172779583662118096209864109080217502773492119681114797494296006673456637142960281249021044131896771118007644515412117391648277930204111447313317637635745940355775232202168063270579623552584909893392377202421848742151885259810564732198028485276631408950436238294392423795974518359244415366336337374434813994305980045555545182952952124035860100297384213764402415013090062169726533748590188064935497361386948308032671901106528362976117962333857032440770159976323650265150953102782186205275325387348112731236472032477247030685987337269447182527291492081312223699897565969972109676295318204358425080032258686561444329674441760386426164829484672878103122114398756282276806083778210427702750209395446094277789857599034585135073214679898763271748335372722298995688377091143029048344971977934158268233125254314328705104822575056144589811300523401939958021503621092773134359196708785589372142609552539025627376012737914709546494036436697757694209586052288949717347156306971889104404542117303784333506555871014927575238793491474029501666792647048695508726861677926739291100156356735205141531115855353979082633473090266000315453819550826560139212056689167803160468349402959377490402781577863123161547451475570117455467706596803551143084017035748711829997132805273411373957196768551361157122049906321708171124949854224236849404117800787830221883193884162044888799824220771191669702949398654714675062863272819011798937743417724247144235286789705107842814656439326631697049789291656777067814030577278172889352071752145999898219439586236759045645203838638354400753485822236365707787292219122051316100645796771806443268309785809456909199694919162252893615025489809443138006077857263857149346543743861353418359855443802912473416320978528763374386633255079606916832015609398309152869102347202186838753599879333826587191988846702565564556580685100007121810184782222059860786736007524147264150327566779719629176117672366992560439835228806312091828564937293132145303933843468270666001142668747134292932918584157184803695194380254914925252389955191735199637634435954519033833871845428201406679422055976009151494230211109080369827544667446002405380931773885921779137044654019738481153841620694880193106079994077498043007197404762576336271672742109946691462610517937583205328822190443516575408823889176562970052914041015406589767327007162723429731343821159774442754381263075169430305705237566028115339253963025146131788221798279881339954450350679794337252372073466105830770102546557784131614731454047528368509365415502250942306523998321620794934015680435972219185749198638780952527843207965070664745074995148403018969044249474800010413751120006707489342325701593324485067474480428355472256976390813356845236330447803545454742743320093484575603692177324164462654467447533380026813410865442816782535058725975089600460259578084224804219339372982898030287044520681372192212300943377848669411401860954992934040502167182804239660874746942385242896262912003157043567389241193954278812908224017194132775017220545885977366870904579028158620366186269957535706081540593820558436392302447453967389988225202058631837451042607116190593457005468194318244062451907073891323074072542512350140216871229722710855553167055591588995973349495856077549300633723513334910282249673914229285524631104486631916030354685530795699967896763674318316917199150641683565908475542871058627737112193579156315482167422045382480951352733900547619700647396224489799974036781613924703387779049096015077056383023820921233727383365486450241872674337737168498128273370414235001983274064205735058084968029609286025767847320638416603223817258267676210323302153759185064300526950649893588541667770429749612599674468621790836813992635145093909630047498709589481619856678075260423416583010379874560518034017044425050303322165425006404552802630786326389173571278608977234825868376965083370351274463221490394070402166257176986751546550027419367099179268966342262956450084715125681422477256941947564776270674265836270605681339284105331372888300309686390045941943722287338370750993615262795420170618258158538006832957549636866707518517999231972387450871905410312573936803778087375979612041207470209458249011536995144137580999334679010558203242404927757625952988306902058617300785056072756324476655724095758613472944880128247335051827353544498192984005656513495826813881216201871258532926528969016548493541755126838644939425889248823271612503523525237767408292226682047639270668281308877576427497453800275600958049642320447332435606868866513948004951083119205919957388484333496432174129075608250976876741301419376314423694188339396267321136865612665734247928727599333068261232966188712603599698966943790047502081827516743914993057961270498371473136848844191425175047668516905843592989396747325130488285018392080789195410300690439354058278218682149522282224372735543896890665288184696947236986259283194628831122967511837333764164127985958013790124516132931153562945570301891575625688418340359760037800869436873742179495259553541276102271752560492115431689453315836936978986238177208107797346678451488139704110072406339377988604324158227850296878661142627234434792827302398861730642929047537845871442297012512958334604549575377522095967964958352617482001206454669346026957606434306912830712250075917004569574670305976422570007632637376206549940476012607489223207038955824212151359943079008625640704146008456342428002821422456122373024853689650920947860618124755689068314615160592648333311913361860174998934487497391023981417805878068285580268704127475343684663952957311872000334326631033744846125462011547686246678561188320519791428466572679844567013966383020902894808925117387679741204210614410674538787979372097946604134737342325716579706635619158033344906724887324267660179601108463743138495076206943270073255581929553331180769357185544911966623162130359446274543631076360863782032280454005368875274382508662380503296943270932651234211159120598637548932937541487786815724735342315538967583284158546296976259914303925293367230549829964058562497052439985975708288981950567458735272247941962852991357038431101581120133463871996038092892172203527235021731065071872010531289424884252232631026426833037542387108313090405236967790445676145950701213809167493780856049666306834569929519220397798945319106214536902593455637617068773032245133931464440715683255977039608911024678335703803333341243653844561466403931457466575152395262273597424395185640602668941794314281074834441507194960191011718149286770837868255764007043371155357414138876553412224110379913665687102407636725388222254140169560502973730419623818294032854111495387580567894048017586540380381209199987791026221319651256278311247275648868445491011140599226672093796602422018811159978570915465260569708180647091894073278440790275842359837649779071617283896088613868309607393982837660363738005679179789984262723366800444057365599290332068853861969200953562955029164229285292455768071768040642288720088646356144796821158757150231882877465629605925083364208322902466272531589896679923894670228397659744953563726332550243446582647869225180992113769783260941168653016219136396779015025477915776371029651157095127925773800786429856392337315188828209908868324446246870918115868384499493801646687693015360761056160358001029454670468040632386879430544263249985771903010010772495216742521940296410041259907095173700135275763937030934200690443706525153062034747990294534732185354134338852880005832609990431934957342201427968970264203188138767406379825004051971255044866627655032437002981789172597999552599819834924994799363048231946752888579464187692060227214274449668781577549004710958629146244262546769770900601321695416269718299858787924553359346409266297247529912792538739585564350789982521322331939511555957112549804788155590478810764050419598561817714781105550862136450360107297487314723053099012849912890480802277566855001590816701106764699474684431654950566122696074083559050975694091271306414259543657103485272901786074867190986492173803071388200266425291437873704902395110680331991356641039594468058328337343136734771597290453910342336383489493563902028444441912989240974464565429082113970897194851876583971301244208172672575995909442634077166620660431182532535787929850120304095309861284625438305108303713728389935407208720352238796529494694524555171064962499453566500749052184344394699241750653848536602454326953257612864815863111458604494014074276459298651759753991707482190341844245624019960527814409070628272302279923529965997873464617456117476839392172319176520394120594789677273388459683565489396370477863476980229706175971762872958910076964380213820495318586656773586410069675719569989245084714850791503332703332277654472054177865224067969232898559041252975768607532660205380700759332309326835823951252019190249792347006815756381282431908771610293179322032067012540191367844856141247555885995687675924865456254410168450034451437004979313298544615775975356252545183381299747611310227646485067320689044638555221892245680594218591736059065145034745152679720959276083580844525528864078048780834892035659721671649042565373951208668048691612069610055591757982638825537442412880373332813692321012724802422013438603354576292910083821994590247414303005852530626964630274130290759063150882046489712640732468008792580455056131732532687957922916793952960389341564973231479934119276858068747507664694821677593977261451625835171943663876318011901669500232361902359757686899586000206598822086782936722416836766263351914543988975820150751705844472256823825043093055819289659493150875507796790059307650217911956923324018924364716634415576414949651281976108370959488401621763144554512396369826201163022621254148524601308524147891813017736194106189611608362324523644466919347713634812795453766654633286532224498045470484273516744204941720459026057703893183699121525688815367980913522774316104524613692695812149659743463290947679351679407789210601040402886095305034291321757919940599847412513750679792059079965863783095121119342914049471844829381238814407681818355716558395837251498157977737464696442914883949275315354377475936055193901117596411675185479361894956499178098801414584986625972695058815598637995082530529030142586153653691487748929522993827351243180325646137716428033896374746334005280020736240405165214264328638443984277017998104877497814687604898645870754110080964829341948947034305654015871372923584065925654657376422095667378180432885850981088041121416667622945881306495873581242185102166243391018829923189610560341847507222551784745582499356412068168463547124117244192510762687017376222560868683801215940666647134523943515592604869481131622742371216792645212782919005954132370904560533598035873573617338625650188519369753251884710637875295450051092756309042664487302094091680097092477784138205668300318649902929462499713048389582456821358229223219090104794859234657304636098852519301123991686616613571172124748270305710481587676241533191232295916863462368596891008151885052909085079350938417558947145572906640024404114160886614455792694651307057178700990298287615113989586445966561124186179399445500228940402160583374232366596217136160999724562426647222562320253108061669284204844870529870512244079778054161705217175786626953631288627683739696696549787489523249693318293422999302504633019234745930548315582852714269039796421817927994143271021717612934928255990995811892209515164456551244622311956184475295185909077598732293281596543971246177691251821627835844292912227717961275441964720902801846814575962950608901927470310869931555805832832143029695213071201404279528050019551469212861297872056546205086450243951965016725829599283190669484397369271833311102715755890572287149290233045441897138114240712979790102641146465577315621213155684448804327414791735706611976236081183425802444090726250021481646346014163465182253198582152242803841841214482730034754557805299106603442750957836465056117027410109139709380851072640795775932951166752178733530074107897031012481716097561922641400316753676644651371561117443503958737725588994116620523751638582159078120199845769740390476538481853426140938347475599652306273889263092435667860542620770961885126669823553205868054051775152709175935889902108946608674457930475797661361228851376998507740970876270279066007984296823161163430036339267441295840699166636557064403898817131560459123136481543735108851826778332054159578807430303906607323690560430094654308343607565116981250448964223115526732016681623824896549650266767830238798318155598936984281503887109801976368016974776949357977658487520559678870738311431802762264849973441267236384219503057286503121225042943040934262223357131438490513770684103286432450569890942333222066125062274860043798505596003256082187742536815547014465276105139324281612103768174045633496659596226053618599700831083436616833233021311178630081094875802709732103446702094943087328944323815772331154330498367508354961768061827693803309980933997834205396225631841846199571245752463071321253903758023950814653001103059639239687092707959139064845630243643162522718090091797398736864580803865896320818455658685426240343582645192091094248192306604849502521448828837803256128379367804790575459570058152350568696166342695136286290879318489249703578293945296738395824385909081825314157236504131861859666751122919596246885841671258736037742816481739114309840615308641085739467725155960705734260814137182369089236654015507402681532962240992366506500928641722624611142853026483158241786490220100814531213053495785792614607526853105139381293896479201038089488961993077582492529528840487730837677128049014363711636879943451539273223153457735375632650744288767574889853613556585445044030367679993725892285356545396086153771610399886054320533009039045910282303095178897233762538726583029036156426881560568968066699017492335982563687173008406963603523069886865221043622930271307445503361577665494733567471102943876268183891782360185388979484861094136670830925145480816003672805423888357657536626731911671085261144954125268433660294804398373985402651127907310054231710294721670986924358052766376264404032399962408043125202420289957485206174011472037620431242366862222972004256672380099456093945289425424133919155768568134727266775018727809041446717488559770712686865160485741190110161121774809439832871714524296223275531101046556485136150461343833090722627566399247888573885919268973740529440679782663583790095277058345113062710399060197949381914676956756991499714397400402403605028139756112012636274458927268797502885001420075711303578616845154072161364272793391334201627738488221335206114022418322475472091191552602217408250613307218087049148944410316934485684453508213790754583561880576565716287185495044800711851091022741827613066319780716630017222477575144956068947651335032047745869465480730663452286890729146864117240931986367200376967427061477327315939612720911204674822743486337947340538347865814866130383412599803472934600766777311061848897327153606755782407044454996979667772597701293389556912246327826315470623568169488763631144629527061030921645539642209205890928027382879074284674494249009978343572462049673557085142339482116930107338647331888276697637476005965834862262238856645099173844274734892638310297629166372547642696337656531275245905472660503117469424313285297426406976968953058902129240176095573292793679206123512843796414712611023576621727398922349975562834835359466608819415797259180497067570947767573572077126073879802769954122646793743839790801119694240560863209639906560735761422949353193479640933632695527019916506077186226346592055188974743105203161614741340925055535922494367391697663943272887613167438847447268431299168599592004463506083880643876435375915283714998608855069376141694608604377394108954324452001876564190529467260850488765620092202532102334898660372694051787508437800394367279813439135059275736228688882228061229137632289070117818542607842251055140564033312979439957524014457111036853008772209963826073911865987405441473120189580465744715112307966716566251964586498771198958516352028707146978145391788475061172168863424303484309155666045861444704550950219114093325398432393346260796916353420034853614033104139234026393632626580773663528477520883239557356756652400308728126079194172043143939916246097722398349722527846531356288698444932305172489963765446414229269513687972438672912121543869228750911824448327363993139742204485090948437847718374085021149492775375258713430625986009711546802756476550709245311192486131367117790634455118593755815603616078752869378571954745846853284056670802180867725797357884163892215444019989911175792708311914693525206928845051116258529062139369692780273860767349085589675125042483277567058606804918392370401065766686317621670420032495522704841992882215132899321077667934245883466387032209510475265641860495627542298724673337006266262165951604313225096267902764216575198497374081672352207573529608998585534875236511335028459577198941645487007346115291034296933080001280937474707812487192872449179837882658535506217813547296511868132763548470390637002050588157571707765820468339193626226742128624440543078457073131894635942078994845324118943606282613602765155051124001417852879219457865160183792763270869787037605216830351845284186929257738410208513184040060785386692706936440439004765682552999968427543893637043677041610271545896526800146200340683013617004515221108111024413671254383633434917928678214957799786624876686799018910440358257147017496585568893015359138108848504670408252489619957953474130241293767230396248325245090403619753984818580126071942656755785874388093792339090361894440620520779305731741203369886129374756591005319692840003034501005960985144044739849070421517611730964787374939012553240484600508521266596896563511441247851155921367041064934574605598109949321498059294744099731770284528830384412990658778861056021716001742283488086857562654195819517943127910840231342556909583040185665822565763414221909882253877461896010272467661700856148334126834884884878942651206615086842455425356780697878275714438743319841468195314079749307057723571109913317817309885262626690751526313491275190697461372288638701414541629777535855722620753904388000189409422881183026535670081324577084605610544825596773912518697073908814127550642814913225897598804132028837426836389985310819811348228083349371501746677881071801457123633155531727498993681733066253747750997164417839079864565537559069429785518337239637455610861995180539263695253537357220044408414343544759425975463133431676084614118314122272800200289315527634151281504355361330546236513275012641362543488880138960274060008126437851415892587182536507587872579203727712602635578442030488749150521372609132440703401136456934543790979052641673188069671828889469620597938332567775654905142287181783516590960229548630046019354808413767231611865517014849490723940522610828391550283285930483886885789109251368521412782161402005627430721595668469907167882836102875975877587608822674031142063395778895953729284968451296389790353436729745048431128274576646545899518690291339819354863527531734689533108246553973235267360075177650511877007740139565554885155346976709829209713313846198323103773498454816254231388030653786360502332202797344424934071657979204341774250428755739424318293364651272461388109915390485440633139905736896743804442678252991300834951527650438555575768530536956886697645857577577897618949220866689485899849245228679738706479427941366030230718519037124360293778025886986975669678740950666155094825854082930222759393869315364431219579610185692354740451282134315925979305892633776410998700658912355944573860215837410146890136713150122721256159127861884918190943332028077136679839384460602287109228185959358096038944985606309381588270996846003602020573069694930831766708399065903329823586750656493629857556114110035547413897749232753770021056273916165026676023911946893340731701015261108516445951360148079961335110050773664865575936210514508158042850544163649334167932387808519728553861262079755712454787692111505987890687652442386069174840098553675010375189229602816722325178304308240460636990699201701363716457812390161662300417600824853573385847018232874687725403376270410245545794522962420790372825031979345433592347862318932941804626803215656812238692932570177582199363507978537968907595454256582508061195553835438534476249860999690797800973517989759334125691902583863944035322545160289728953224082359797616679422644770768098489247560177279270831288617274320502813288891884376338350873661791986462048870261900001389868978097182467562501575099705035970090719425017169979138548095115340513902220607378174306164974534511596594120633680869194478916677430754263824717776981517132337259300008083335606570946596869060582691436896399705703605423356916766868159162816338397543953271117216447538006141131698794930115398540935183668701562614859123155098909458538997441973700650057587110723165024283601410899597773672375600156861401316296485239214741436699541004842093181092810004359030522114373322067697608606690772451266993126680296147656032819563222213007539903398056484808618117083398922230900260046889558632871622525493901393169876549748147077630740760746586946418026858550250917938103912600363197525785823017192076703701714609494048986959118198762273685231334686401690532903450319396679640575856532810490895495703151526338905486115619395598883546306372376126137705237627752235510131630719160518363666626044580553991523084533819465811807850838104717315305003928356351942061878246067593268797691913105014030612567096867988137333018509764450630197979073804625902538914909185899406416677996660158258255938549310768159906865531311256321556119765484985653627400644062237506339777550549667046696977537046517765399023884999709217031276145538831571487944226487501768918098012884993343916259770937308530847525506659778421470236154541988203480917414674111706029213953764312338127743522140756067948254827620633594216880210748952427592071393501512899811159232541925129994550079851262547678139341292756889218335348837984598244779564018228386382949143534454494953268055922390858619539547027016367681547488631071210256606102266517724015814243849108298906394549535686316258224689818442956697227062358067668859904873324126005929211986766036973793932319113107844666702526148937770736682260801976306775237556425969638988373219514929477085561002888106995199423012288504451612021993952444301068138413354630605209775749472767203182849318687633062769218911956344061194782466130250195396616964316704680011340216954683085572851187520324437710805371697851913757463454541603636226748293607559391678387970329364725675414453339708850025471115871507393215306427329142531653066980912892372351281038796341061648016626759211187333140587757066920076945324904933909623121018158647926168206430474838338490811010015180138362595909377111498828243338059362881926847963025508331409486674112491984671795108432953159113926399767861318022797093113575855924498948547386425115171909403417208552433579852501595241344084234406908083659641242156087158119163067291679303884839687255046911671946043507794168601387653907618272296791316102527951836693040330917988563757560417940226432063813351624199055202030868989251069170013646375261604235004467269444806303010455735496501149635266221967561256033516690782093059378252206622367055375784241744790781942330585522123906023341898643002064382393424975224791840802014772497012901378611640946422372310030992888119910320250923177244692032700525050147167577898310344826274151165786230147185080505727811833648836278605385854792545342841606441945155138589541529319140158328160607118894131389144410354025178435140096912907126088202052865532684235633431664368542219495830104542428826449344468100985722017546633023243465490973831669213424834004720996221643719944803300103673312809574268704175738916020261844264666792362881511283246831304743657062683695021831967731689656133381874137782577415413198536201686047064307455045046265935500615071122529053960390903767566171620893756050855687594560521657015216609525881598134496490320729556749329612690759056094794555141835548674409777568004977759987745207948861085892898366737345084343802562049957732005596051984311667675766912094212274507490607490359292385224541777070784504274121454540182159757607455571270215483153133167491112298365992086328619046509291218875288592958342753306049776117343021704667151057121988118815073686790791786258992253525381720119044817564168268937417431698771450700982052657434902385368758775859665526695350437985241856724987876822539090330084677713890567056741254619363542881697492030372744559532341109020459490888233795186916188087350670554407871640361053451331851609917980117245207300558226243925711886074209576245875332653829386306571631075591878151085145923212601290171671083995161631601088059855535643674154038953980213760237342277774157912153880088894661762370445317124416892046131088871642666687704393178864387956129268900551017033787650704446684904788981567022050749268323975239200284983132827979948986520222072069065598632179631011206280520219989023213547260396184789813234093389021782663182248584739287408539323572343479672892288313853691877517299829390134384188149299271250959490874267829288133235679672476067261571651736510418068314222609918132451032190720974789838761488883714851148313641307286540812144263201084019756495999546191596388653013831412871514939325367267437655946111899912387748383354450442136947319798540650030075392128682854425282220794854399057648611110237036090641683770078975651887457279371926604834283777434824052991417321972176947456935058699654864502526477723815966199409830432068831001013663118999428848901969596444755265637892712972664915395133554142234426446887833518092915909420993920454524526611059638862240586307982094356410285829448790644251790143896011334709683540933580742571701926703509592267902187116713751007509836553809932622049837973744442389532619446041036974631746992440862452818438393677539525599975185297166134144559346553328635034128029905126072883341301367012406844712808567271388674133041547895482483954902463596827419925822346417196810063563133528497452713823695553123406449143645842949209551983067644400275442082728235986505629125317680004883998402003808498875206295272769395154368012657872927244786227263910233270413949585710682359146599814121294059264106240990632467167148996252434691501435936959199081832731523114542814374368974095933401788284281476384429159274262952190704677904476743679089275218090732868988035232354717300020909327361795625750491463848187061379858933239672922334193253139262489993839960929522461498653152371174610341245241156195478478493113257258263010071148974683583488218546008199342249968725724084159220722142770860890320464673906967098853995447836806138004130387683586643507273525487504549449479809360155363335562953147076707560633655314587681485913945870647964554017526619525611284805896022976378609757979047495003926943634914251052986037560568406298987390550305379943038872689306199411466665808790434166696318059695772782110428968249539737183055619585174444809234142252917508808388384041902901076232160909458273740771933989717511338071665451808491233337399966100036371162308544857894307197481289492196509386245902573208103033775024116978035332750575608029235145013364515348264842436496063037903089228586854434968924898417335801097722886302334829097375850629144339613994081551811261956811965638685338106503339768840179584081110489548736582759987777663493469457326132045407489099442579266764395965892065830480286682478849852419988497056828729045283447164833061148956202763267656039511583526542202995712110921133416756234265242102617376103371117520249858446499317854218737782082487078982611167939553571725349667936902593301039780508558797238783424813088781714629529195373124590409758622158056466069344416904185981476609921151529592992087266084700354259824217591495410321234554709355550553059936733846189664436756374416635453150253808779545908763991663985136057150595113956826672383514419743769397787223784549866280070461947047832321918078956751267426038767084019178292302199180901116964087301380553579742242494438903623229463315752754438888935067471748304263106261119062217907496902030784552592648137280177183960771709205307713556055346439431981009523123331618462175960875400084834091587779206946778993861680596420696556726614790428059754001190948629660993192412748782877773680219817001122303364073318462052625427595445503170285753302628759440926361149867256661105897305048993126311136065245224934663632198421347963672067459339894275263105660363037978914127982154857916236747972633825635389304308357241352224112037838107982341571496662472283807030761096353837082626850491455646147326052859702674432402440175139877347333509392808493716413131723702359353612429665530839528092846388641892663280670050643475033080094934060096408832675759015974718033148788256271889404107629082671621761877769030594628682872186895121133688685388466997025970231977585426281733570545930852226202826057016923497378015991251883479637034321277495424491299463153011183251953236893552748409010595812491317422950339904137150283945622380215753674125222027841401965590806090955240289405820831016051700811933628987709575344293532974452508547363728626292019673115998071935171592553087497793390303975815787279914101159193293911258890877168903759920068110521439515597235848463996395277730721518149053901256091909705570614372298337552715610426119785151461487156441056449054584541017087646796820480142041436930227205668093660238398157861696324979355220937916735710630368538800435656735184026681642165241555702165306103284636902961250396026671329021866866993932436874896974262681091517649848539408465790643887661568966907385619895728492904925944738057096858933796832759849193921027651781071848833812865702296072641612477749517559240154968702869100352823102712647507851608122961127119750955479506969515986006313197613528800548758432894214030507775241494542958297819759651502112493442053504237897433150927574618569878454715884966261152710771401078427637815664099122027888757205514877464080991477808061040525781385802700795921910021222267263036808038550546630387202251642096993086547812450387374813170945003463723212665896537929399944964829992228043273045804581103851478377811847494504578946159776344651442186293034298627902472887283992794591593593261648985545112655507459377889544004862573768664278166486632844637512955274305782807575372034255483404321334073189631464383528303626091994995275792741419760562652662852136625629005114136893526622406405746083923905530714647988381909372019974381652743522755206454714422256901372902789509885854811891507546741168667726961958938238882203433009410372143269105778023517309366790517450541753092258705694634837714061165715440055597377265889751987442099324098318431656617642149714291100511037826829274892709919728113458439325422908577029387934724736279160219749678414580036633759478632928236050054552536783694501761368526989175087089521494509279138626656502629745229867122499546248090470179390446911833954688620692443385478287548378309867500354512704992019496333845564394656509587774231628879962702744072316450526882023258058604020098711691609394201869685896132799280265787031870708175837963743205256465842387274826539805973914981664061169834575740231853198698535218465887690085518293822840651702776770306761998460054614436254602184433159730135707130431830311098218414304154235721113079307367794788008300892134206535780013990145643957933626644090446745510287111816615111427059013737654553854584109400669153999915084534232692011700416849050609372019292210420189202905335331953886050929153624088698009960997202393659692889032455212521270153051134090431230723606786514233702212702986140951064401219284249991028188097164106279809879716483651187124729325372641203625623536660089458127704140804165157484554421467798240232837972046252583794135049883730952643550972304146966892155690576347292744652495220696013526422463756714458781630164224117940443250947615478009879864102037219460742682821866996841650729283839575175532430107303025234293629334853941944758565748490722059980740087515041144261249846282529161793318726434475556247791671676536752141984536343419329121296888993962714794278183905147517610848618898926002855105308769114727637703328916055578535482014976817412518008981031179870281238395946206797516799268715963348223574725184885099654949086711435087518201846721762288846019981918985888848919972158726477598371265258861220624447613705346931166588422212630121056810414912168468341545354722076231345729918564909565029082469403383677172533048189936061860276517528268829839371885251831620104433865393975035688823871992583461973454384971217352871209511390336547587165506082965622179100052342594520709346221307895146900223724771250110560742239006788160318593147869481370697368037842446141536294666530846169672325684286365765456435772950840279112412153154610225477751722955462793370392873096212020216131177801017621430469201311155972621227117389842504367793481792618591168875114682287796388100332379063078310839167343946771173369051253285315256229232684533992377789553113049147363873354168546893632191379604394330823716039559384530077793548837200417100564426735215269701949206757761449210997349247243560064201807465522841552026000596841279968528253557567614996277179118161300719507007117172242735785931508813972405000598185580112143529798017514329090842782476472874047917702206310085343360055738603200160547246726719375806602587983724822692056113770536661230621851963115633083461468598521554119630323702317090504513964666527428334535253153588796342983250180484363002143255888246790453994065032649043021474266565270909730558425650621297618828308316832613561005402623502972607933078081440420957457391689786465130692614607338192498591859438825907785045420187117043378970062163752419376866597520185834306866249799388664365743470381355140013014105880532232771238651750738966324301790828179834938650898966282094491982432504535723963884419631804259252136709921264137547918652074977202308682823639290368046820476247463116110088526358862245573796806030319919780731115194952860087812716573898383259056415932123408464612358416956565098089563676704655789274293917381570134996661949102854667846467499594289572189968524566828076865219041255377388141002342646238199192084504697330050348505222002492640968564114043842394431487002515000108603118851556869384499336133615038912861234097264304307253615957011391115417527585513475939763341746202087782810192609651608653533941296727485511904078781673014805413984458216934296316931045543758377233221859141737631897297379971737873974467461868792940949160081502439823023827312317522731857504120714543041351973730394949009141234038307845566000950656633489312388275840525212295278859918167716158155318600770785512150652405774232426615281252613018680889170426909565355441568157495418165111692313255810680322915926984451157484660908987211713930698356237386003508965436245665801828076038868054121368153923254496394423907280662963448608375533275314589938304860553117877000127213748320197956858382851377716993102719720696001420512140978785485406551599925450464603688673508194409455253765688081248818797492847734600501364841268908326523072038641129674027410058702173108811535549622611347532650962631007497748725092541267662208985676447924723585811007659516730849518856898920639355316752833633197863341191694478862951211583555323865225394034372911989973281523284217824791238038624257613378511864788658820735881927332709930473325369649327262503862058952338610698570377898557802571720998685633286096386799185444120150721069763993175010178371419842390698367368084015135162784488640255508063626058079010365885943589233528046189802283390336950231051505007694357437532459324743956418449799816608366987229767150025682157413761705933125579737871345402411766619916240366405701404354988573629581768906803983525434343047089570748999701150155230019832512387511178087667823951973762960891944139442350865604338164727919204336529768593634498825295151712232113827284903095210038865193421774367643490582113914546164150793338469121771280107915924488697594311257038950866047977067821072999566008558993725144638223681723993260453395650564993779073424236153426566810186418060793904787040386172416005139160654154134314329050442219634584564517088306120655452361184423793527812447149753782556561486027705101669523110230373376515573835309316810175556419451983778574595722474394730180962415498028278980246483960495105474254721730288193385169546150293502606114015589064476754068008157019901494048656655183131088066331731299236440753443099967241731197690626309251970050291123577220250221955109724352106482852661769839821371865241307484021066456187207144001104585411212736373558518496788958485009878312182292735332977675983527165765186187200249775723550220120314936486944841609482784242243717699193299489540711080818705926640835856945395139128829432912342792371243910416386947836836020123882292694165093805575945657045083833722702609572395865001008317433839992671485008074181111643078144653539109104017102281920162386683471065794637981112208443865672095691017946521215677758289943872884834920310613544025929276235988152535606211240089769411389575115293187364127230191822509608452339786690049979160646892047565408474154072073508533937771725961545626573259082803827537373624831076692773844387494664319490157826119859218094040642915319492870312008490333977042698503053014036263670490088497200164972375450191103734578449615398528021172606752069532569348963433182992756613830348414545623933841445891245502913493780256198412742789478947470440384115561868524442814636944080928513476605513878987460412947202136520589462565602916620393457428948599826464945827901583859626966937156458428132732641747779277303927255922682359769333614234927237959182046479660937656790775791427467592678147048677605749215750736837120968883729232859524182175300712541108564882383701236744553815744989480442325484793739286388907636304921599050995770901866922831017449486413784870783732470442036365029743790716806742263726365281762719880606130622606505193284966027764754380036773741921979599510343185957597658022645850406831247402601767344568769337731778710959809439639885926686069214506954134980879831787983260724124504175739943553911354955386716220446750380784492769880427492187705920065636359973333186326858999628500036965002337232326173920426663619834218310606231464272559598007111819625275354602566139720207235592490960006713307954653112300021388174796970341846013776685947619431080272103229481839360821198390267462592246160168356079546092346966658062069821265258950542007404098509600923309193136621709208835128535360926409333072629227616518405949718754119313487452214642337919913814709485488852443755125955651759050406124324688760254980359214945826966930352153783975475268979450244457654223526045267163868420605301552966220353005942685637510580641703823592668698558947137095032531374986688037530280711257686758120135033711672274383441678377854335542436073692495294301491744406614766321192600070383238017389263021223705054730474510076471295036095620510023855617760268425372993043485103166389080285710211215414081594412226866979934085002544486091430540854558339741202511588572289168537057619309901765185669365057660408499600532909965534209497986199276699732779729081255602170323862531837920259386462719632589044472042686768751578558905174234955614797604129157778335949890775495850544313429835277872079341925570815997185757510186815584820539232145221679193565489092904183096354992675516749969053758297926636377557206953664909882392944716776539398518193467386394918145146125796030822171101442985178525919889406982580830820531233872928422866065026517581297889146421994304061583858291782560900033011344000659722005490950942565607448063452692303196471602990035175987661089552973433019165513962227675423438802939584120621990842739672205635299503769925223703111213488807670257612899473899071700699216352310391762059077912981822558788858515006129592555577382369427174757805456865189622387727790795864850776993025510726842470687017427637942124852127631169268716743458082967891915060871062751288686131400344397073068147853490706740222265402947188872712845205416758031096334998903229232986653761285670956211816059759755719417694971827541126269210353989590748295117995031449213730374580842907983061806658075489656044791800159906861949069965319163216794946927425389121275091032836360834395604996481986416957413523931042506875145323711222961412704293526303651760623285605137555281782755007219405397490977562229215075004390046043664728501195288923357798260995678068719549813176975756839563163540918063072512683228027086669499334562221907002866172666669043297938384663288624996833672092938218721806590389108461364406941947037934517719884981611423403549920222350645730718636135313836529854422746444164842869727639177310225277974577595942294583636371056146469946466180779658449757677690082387320254082435060833125951105996619348961278355901251873650046040191614712438503248694495459479143320838419751452998045029122453453526282927055692363586406208559679015656764141411714625363756054799686979711927397961339670230363077729732641009499750598301525063088307991036447557412085590685960338831957248530779243247368238638113648960001690313167740564709699277566413128169770957328939569047774080295030452502619360656092014593277027631410365756178143867101214450769792407899209435040150178484074682432481743228734103166341535340000434599381610815888655054330324336762220319406139081626740217655385399318295111983910632343907496738115755724926849715562743368944257666540343770516584988907779848987726042368269599600485743301674702894905204209467150435904358243277483976307807230133018159807452233128294314342204356469100816153077552312756651697996929795696571781637977947497590125183096248955708482367374614134540596539939671160578583253757035556855173451148066367265858785998857720360252953663020622630025258202526824558766224383386151636815884750025390218708416597056336865942024976950552041776796396487489652745118903164906687437044377034504498372480795905335738895017150432598727858713325164441814640719304204440071299374566012662118297635747474463450786784621921418800940661310576513287847029136170457394992138354527054555397523480419840546179375909115911481321169025999409340843372634147770465011048709266037409774830080900196010058149481577283697326493607028480684703870626129116437986812566531131598088649368119743514007731307460244624847407615747663518875849208850643699666489315966690605501689341405566033615166227492470503260778909199832326957924924660397613672730059764283739714501580112332555672616490895407535280954649028761548162201704692843553447545139990293090590939112116148582280555725016864979811174362341427788609942288114210809425728600130077865462581262941361170097196315651270806282921509463351630815400450443300519366638038488087521158699193223134338052499129550258691869577350266282446195157094077545330036605012515998681013048418788304626033378881544956741505318114595212819665239806807123997011461544177937999881046781857156517189800246152426108968271072421643432915071134119082163647573885783680533888018722129885037095885068547643903192521257150657221363737634982986257727235814978856403173197432008925755510668748785245283738560944362470491083538545949583494515682456629775173300862626329064530090997848172147789896606226829959761773478714914291930740191837783934360422429350680764999305315539830325217036370282545607289911619852136886765304364412147083483998292922855419832900277870247943061034254125240674006286435793148764574220894202691826482028209599472593173406798392907485635521370897908048600408107909274117659625767915593355738690433858203694639345016636435206507358621439215477682373820046805355916480178197812504125858111565200610815131976116425584523036671274308984683958896537402205569442040108909631788235971911950147814881213529292296706170319051159045762065227021666155758405898791699197648432647681586385650786553082470989010693813647532069824953695461206547118863408159301776948700110932998233042555976382242109682919151751457235733734326721137306517043662118365319507427134603560162253614686031505570103722573265137998586122648692717096129249388827931646335122379781774441227257693148505547152961250225383448467442565778456229434613680689583339613237665661320348542880283604596938579916392656774830231662406094120977247446699992562755562556604515213365527001099028273633045659359385054391629225319921659730130646228166954453326461751045353358439165312869080897563173399181009734378064557274430239845932550240287211316121319164396155311762604095595366356598897771536300864616669500857568722615425839639131101054803806286183779599568169821142919627276380102120064766653811364407714887477780914862326517045505880716381776072335869158198089594771072586643877236883683129679643084130461143761242449826500834186692674565859535896591358030778906370905385198090404047644150737369666028014463360261503809850903370052478635473126661492578511227977587434763333140083644113867818180630044565739424225720827497439503640441827684900450703691458478642184731448419209277548494274069104363938282953669002502171324940537970038732638874055229805075384835583577965928847120474733268427878880876027731974247561086467931442992481034498647911368016688284526230205005305075594115390660776565637435062077180026060862481968096920542011335828302840878118166463416811246949561783140831449103499018085049701111951031965268974917464853243997836057463388558522910941873231111937622989245346472812477990643124216114946359893589420171739267665830060685131851009202663664188456550808333203305833436021987900341907334685781544203373446335693620721141888747375375763360911706640569377750226050346507493487688377154690842069908474949587734707212462389401439071921406672123387816083539360102376044900524022063952422113289565312143658976092287791359428845133311915923712237977972753757885720338852689894480209014736056110930641970217229900353837366538389101723328978946088535330803403885292258727772809812032310044810444211425711421356817915927524076011697760387143670852526857743472923657870978174330734466063924629618601013275533317679134091268316741726235018002466330497736248063102880182326471216101840047888108697670086373558027222969167681067558543084712113754029731000774570700352832417510678420899355698353464117683505857872901513483053766363317105404032249614679935761956657045220856683499697902799296280019393894341523616454232024728360178253787093216760670205726058216442152760740762668701481137295303951974021501646627362983933020186842702409696968928339010937988549591645122153858856582444052650410796576805998929441517685164472975161558360811915909510145077467356357559359652275267350154285395159943349834964553558196368213107126296089865885737416640179238310124235418319124570413015064193801181653970433137467091695659727335595903322881563060991261990225483945967715866103705115049866187207154738718988846356086746200882556156565000882234669307309639592637458409624458185050137382249929221845050525986984855447937248143514768109378823154863045606812448104829410809274385493235149035051649178150108753338361598726847837758238716337784030751089511699734687490917932696170343680960420585415835048911425855139718422320414140135331960088591836048009714994303641577688559496836365497981215573397471770533025825437486444750086470339179731389812190728362593741171537258426559569285055083734150052403657739493928244799015490667866262928256109187967100768807677746649303317627996131277723917486015745011056680475611559474758112708451786388410619270160793723680308432294886119617172951164511967283450072924720988304228164394587973166009783583083107716717889311468880983932086107260226023412845046026262835563596229432909239819190939000673846407101652608056862333490799444715674277312726881462896986000423601541527017554966323939559136621177916045438849730361109740149267575188083864434455642389502627671477972742711715424565494000455074820891824041640096074067463997867491845770031016694133220231943778612911642286677360080441216154168627381423088060129150045379884842837089052766626673350719349433775982523327218171283562603438296211406996017209421833302555439153484453038366572435574145847233818377231201149455928747639845715080404800601463160203981160094972723550616038943122440350191883767312991744812257245161522870595265510666216512903878175780918108540287204926847542718251213194261679689046489753368577079939566458841488373658732478772865928373191206529571786386506531062248500820358197812579504820216921956286672463229051937776645190449334568815142108036010603289588497407116021564989624943625239186108964836477759261440386626122103569624471973105922777519970512458154191481771263177774104416336009630685254241107517221206813758187990773686860119679235946035722689911777446565977953095355899103605734484386418233062382123416160262236358032304775782957690920249663197084787401168351574388731283450826664872684116372712563949683529504207539925306193256177739970543214442883964688167494143073869862535641843290177639894650575900285587856329162810898437928932890061974471916958395963030165931299855443152807363987823745810187199482413705407205120555741737624195763402666186517337585782017414668518848884104900757316221601937542718331797052236306538790618583234486327418072435690137084746710235564578213706767549168847702528126824981857963913187239861977056628093443937103167393705340600228989489683190466954900981848141745768915814943831602593537210451329469840422271603402199350175516398599472995136757405920886029705803346270176751951894076218044285596121538367078234728170880743882192926212493979576621020350977340932096547455006268883601955056525815085728308468185463466192639187510818854778812306116921468277884860786446013328182919253002306286016521533789800514519358585555504982627577168792026176207449477396722597815632268411566675495853915914137686308888254038049873655361818606047983015413948337282214828274987994272394475905430922419529637814860025711143933079043995460881344767849820286787118515123102903568675182338467226077119629952412245048033197841701362946329288977776242256453843753003947662827709683203605005802904971348068374904475333156244541669765764238056885018543439073815702267089504449884951518605922365010020346991153110260338240151731280383027130094847834986210400468068269443385285742778335826373099126640758839072236510491103397652117738682025158748265037528586007064971703489930674801756284037531332330400654868076472307133433936983748155077089733043672607441144040180170481354426491814077686384665679203606966721621339586938909593814704186094405545691216890245441026421989689233194165436669342065827272510280495202890895685446626816439206070231905761951009182803926740038364636872151923320989404538704696879965193249061796267416050352571385016547702664434593531947856936334163939142061676883474217832222404756950006119211112012372679729655500219679948301561101064819552802027753519473276289929728562387655006429245226845635964553120163756852737226746952896267772744566694937500759508420284530947552896184921586320352818748968244836305104629365508967996998777752981382479216030336670392573296971921613214294630154536632040526729318954892652227810166447036319249636428886345048382325669145467187213973782422897673476050935858160084096099390934967836634007888733224376388403356043588823585910912235754564457257857034674060293674488435409818447540867082045267571379166250278433750553815280346023370665913099140746514739775709231297686952412899484799002322065140478841193609207702334760770764680302205254957923540885690917957536895527266877897941649474160970675111751594048408036066161410355435594975724888016779223042318452312472533783762505739541158595694935817005340903525882861074867555512149099677631947626486373050022909414443566242729524397760888052602509499516980197477280839418153536972323323117187099494113272262541069851764588369004415754220405820938496588185266300625682522395456701965732981150941320641214411942646328252984477145528071315183013012207902364300369724729691512088321343080555081086286737395046979798106243356119407792596045598300451755554988767266442565527402353347973169220100026762850115405673149728304769055168528630809757077810105843836974664358694179346603608081991616719839274026884387401170874792452571679249239337488596668359283094550850149915666959047608027002162104290847710884872665453083516450929097223453639699840563704641507349873565471690203295832284677874574361162864052396285204238960089924683284957689546944552982471300457898006250350039140959630067555137245823470134233129879586810956208780884854147021092704116602496103497815862346874515571613884940706007392751318132508810754537551475919485027856317607030360847482332076245879454555768936192034239882368596365649672824707383716912195558314126019677725357872935600589337050395569954028569101429271034899677325429157568966252735039257979194622169569980235124861751447779645840474883273720765089116114899156826036405154318391678574440986068082729637729618683951063829589615854049025658952099867379823220030659053900860533755455221422202632802829921548645578159259302611815907915803620773056898767265982768257912108782484988540001588275671807626083771547206523659822602239202926955802362233614649879634238942078336581268482787318190405320016456981619341622067253723123641841905932683339314100632004391088832484402171316116090810246686251415617515797872268039247939556884042937233569202560735114172702026499737707068917692518254681423808558534927684707852963486887173341937463502691119693494834022389834727074610405396828943340889569225277274813578747923256644473694390079881543462457850582475379085398279129382802294384008635140498810980208025981641838689351058060778633476595697485288846962713195608752414272824640862910054441212012311605174513443343363996044333135702086345832991023318234111045072192882706135798674700072716586083983556889334530348921287556877466604259576687781627925567131603998289922084979206129413922786822800099125145754397751447386585858804326714876792278373405875925071000830956292956873832555173484580731391756809025002004485001252894596319930368428090608745735525739893691720079764608328058367278775239633116007964033353934576891949245791544066042602717831910095577736757405279209151816104377445901410428862487684017174093153229177017412570447184397005123537945739687368752957680493051961192982802882959012921653373685923080842239496659048788079854457650679394206720004862692074247462105723807987639548746246532947262774028427783165503110606556442103711024587534065420082687431996090085785635895855055834577804430029664633831298417188482241785860804877652690059753055667509643063590404885341234828256298955678523417096517142854768109610661987013367723927959254127484552737664914745049286750529171816680261399399205286645304730501435932524606625991090700962345979430129831068561698206677159231436787312242673565914232619323939611125649005313048999936139035870097035584385492741802563034869575980325783922042221917791463689243453344559798033686673763703400120039821449758093788632273146442512204937920565768531294708756507758554481560768387186626419349941681401418746626965358857258234928467043547237216963040071429149030113411329816371408390035784167263804888072668845073299631825186090600830062219816560005774809684084104727841556496654650204665184656995041725445925210272914533567625137796432381446462783002260176073449170486078678901693758646290441546960500769589302508089394337831118414352467661531441012523411089762314889673035608723723082423301169130652030361966203190827821454009339473894097451394100699530602960896308311441921401459877354777750217370009998386998355553668987113944230696683031558078360140505269714689889755906168535384351701116642519035216680387941049488707666629314195056816667614903084732566513679420556239959637796907948722931619921056713865123577942854009309004028529840377757284288866959647391910255755181141426821563271603503371051635489262062978263278204812498953376488827252996178147734777301151763199124001084944186129889689652373390657485854354259927566119676441071512709709487882191950386240092742021761487031764282265069998647609395747530266166063652025282944032554403350482840192691744297275349214544515424700880615205531732386430741179940958384836586529133710854375448310550854278495839528040227901029372020870452181792140840788735614209332178924811105638079238670671102255245602284347339896021741667116371016652032788992745289658691638049940484033762614574898739502857303988514174814507749701866361920606108113268426207220655148667181456371588569260849828463264225032145832141362056952215419197113213211128962390224668285222346545936209226353787117807475828354693394973092247834781340137287542581928574500395746389201544397713407719733129965471031230935374765270621191928577771937853106911230652730001255234967744841426325675914381284809340868091208337398603578945619421510594067294598105895392237098724552578818708996852774932340047633173253514006952973574932739629973737503325026529713984135137785989809923944422641783070714707154524925961541103115123986022761317622693030344493579989328134740723814034102984879541124905965565474741147206606070902934498987985839548838498131929644760094085637998038869687601427414780789083993517914615874504822534131661441386452903199798490840257316287072244466969047797669912587597307288599283475367161816171356169896647735560804698700023948247782659145439451438102553647137463609705990971806135885420069749712018523498043358541470676210277699245727126309636536676467436041035852848587258059513297118671270606473757248868051161385969419715191148730312263992808654697873431914053473314803374314140187974296042395542039935532367577070453770828850219473566531318311198753689008322881918732623574370093444485857910325008473953492077099008566765974524943530952424233815560619332491626685071023180790368766497154242024869406757082954161312817371884297766933371292313440653850840593238670649750087407988998355813699209663108137681145402342269822705256525030766999603430081625112540590774338218871183393023611333236144887447066013192039715598848634057508965340804218315456765509627313185540596320706858132405175096163465616381775992019586155630169505990748904362342496864789201893734598873847410753576788758594413091109498204360050108296132238058915816924543469006767442275989569452760867546962484468915459669225796024251915133474979378896330457907115337962234851190959888335473961277241106185367876049523694395497017439454280129586101796422439657697542464117588825378903252567565485218605951700490256895340366214316227765504474657061352498648726557598868288008960899433621113075951341816757300420869822762083010749485776567561986230140865388132114025248645231505925194156819479462386991405957069005481740500989760149103154320018032824364392129116441641033194856602384217823976736254702939638476599845029745810175919833306980430735123977330239235229066398358391088141690313004639749513409626219365543133555581742343485044270653975891597436704247367498167390969596804341379773388156993466388179701441315390281243978360672979129680009681904122677231525092217352117579567455346843155983328014884944529763112903447309644305135683357382717950601443718228325601316701622849533622437755278363086412786511098750773265289645047277423805915236829948362238796081058849605679063182545202988467752810968070541969466904289506192010433730318097472284847034781043417052103850432364404753869761198012647273713584798401422159856372880668254076147002627019558937690505741064701816518247268151028183651540527359697882374342205681018287178875183253329115082190880887998021058691824671740826650756713174526648121074786514309432473425676363565518667166209092197430357746416020932853801679114946280103239557756645176436407404033393457589210060846020568935803762021133419840598750355434198786116929073505305894485173677309047952284238630832445517390512689867824249322180092930771942401336309427373147426646330610596035406501941436098208226254980450136226714566016973640477163994260880935092261045002202762600034165328998552638240970191474493703780127991914940085065668087813770687990117495890897609978972896714825742277908498279367353135435956362146649609098928794148013827110820802645619981087852867709351568992020070084789765708688564854342520262830252601268015115737061413570227901294388597702461290240872777563135053510271933541828552529561551948169175977287283281146752032309321920808570718818242428582949704706090890414454223743178620915770218926601504863447624667077391344874213942389397656150156852101854939957696052488559808788259323038736946546953184195932473665189136884246597965925888929278661288049862286038898107141871785480022353434512283910399460911266185112319363191847164883433105769235807805543260654417637141658609703579084496962029833411591098160016969353574935001929717387494430800780161450202842308359906806714457263399552968406694415221783204406411670771212892617843063979463103317994624084066828838534359702685083382109225986304238736503188803176316909279013873206676771400044873246617356364317064269602440323563904444838792002170723798718727144352186222956345437998724622518495098926257323162732635631525055261283562693556216370714137373222226344770025526922442999188212692795619432163506540575698848232707439509269915953775498679470378365819651121863509025533982177503876936823427496123812735414428671234998565052723414551337841859053983309781067040504797779269920026100138469393220517357480694777914142627717620982001226876839763375774738590420083602098445322369991916219616260257178794883121665434836038235690572104896022580863731519512192590163055226103313979543439303755312359932279352480733176708553072710199734078797437436724750903431446269493277225179111261162586590149147619071066361433758742302176037339004287662745758771461080716585819324743057524223494171033564857999843339905654913187989617559301391340265398764134780559992680084926360743711032490985753320510127182175111888913291738309089616091879099585640337105634383557171920323342174735754936542518216082733281148811865011949445051191458408554691434853500075695513347662796027722695858337300900833929275765139448327830739964906293727855735584782857195502758253507813882363969049267041230792956419036265154521213810823047021438566117156245934575207300156957665290074941399246744425482039678645508818003021031674895921026701954277624320894076190643511260933578978636688702267301188183742300361300103531973222935043425697211282108661415327743226975691768496573376181382862379506282033650233108421443222999205339830438290210298657324779226440648167949705665562341474543243798818113780970315647315014151395442544124796379557130244780932699498011929863564374564750301848135618208340154732953574269199305442096499455048791390040845886394610760426536442824606687315166586713935486840246003834529606113882341778125380420478093462752340094889454159339959752358417084330561154292026414169686185622022406944669281284494177869088868455844045186482350128913291436373025590379350859961967345184123352702954177683323868384528556626503102603489147298896586626719553417455553471753421578774915128636611406807058642217365110947985111319294953231967328664131095617056548123814192547067226574679856736419031608893997244766482466578839828243498638290067434335565624840759930019423739967674560848942643239465195388116181869032558206823412922128949484373323763567835985730039273952947957281384044643701740622920303558072720667735981208775383926674254139303779938307251557374942351511379882631177828132787597129751689256576038079672580360722152570301182580532680320972291347138288818878326733730299746809215634360157005482622624617097264108411066086152145335155891426861669835870308130078960929353324627632429587093996184184552397255527048795693483670868328699606929221504123757308267185396474117825939837257768477561192812327590656443608462442252287288060074687111275983072017722175264009228936488324105003358181663931796401518154194716943403129872868092774290735919518634512297654490274569648747787838857284998954805120931129273233308696404477590636943456807718015306933272725785203569752788345997247127368491957702129844560696832393465639729962894044893631759981003539885851461660320686654327539087238168641161435379929607614160046783548272385565427448139350529310677321556570985768326917284454836262613489512745121887621038365904738366559923634876939011198396852528665262948288242100046502232117415960084533018795346793766398059413349584084320619603688424334633536064251866074075127300362874180960583445934369986462878305513456709076059514521362125069537981881332658827719527121555814965661199097389365510947801912351765182447779159162922537950694040672097421392645233330401468107223238699243847913510429997156780608845660514453951581305286277931473257851485468326652567252771908863908062034740163284206248837796380515635892170614502531998571913426362177246591051520995426259681895722328087077150991510045268533406822549638212562685453619001963413775715262106795569736237472534340588961209212699270104323495671825074144430145525981052518768708082144485790448228773578765984137853705237516713043123583791711448594611469360806733482259879594905523506367803292011349826762437028863287442447707568490826382362778026900482212597942740555067228453480840611449240469590486012468075433307076324892540487248032945922889013200952894478358701708018804535038410839750324952311921088871849728937723437449121603459032996806231632083566166277541358591263241929689520205198371658032051092539754664253093000006321231583799512286685240205443550070096198305554647105052452809865105552863563645043871430394348538017629985540177742796602978647762524986180784527384111842858788501633265687538787572044535036069199663830893287961064775998140504429488448238236051026036760821928775403039358729128283938553612041765203038757057878394286921861594244840108837718809407979863035586960105473962537718871341989703269899511300510582382997741988941321506739737959273829523783676611987911123689851266085816213663773120637340414858060068557122684923822652540160332726241314562234688363680339879682218151171894526597863654865060228004170188419486767825266827336507281922004859822792884332033441824617709871339539796590998749973598024776000901719402698934727532755920474374548561406517131302359012740673740905305898842561789223795699017578544712522004696283578074291844607131241041061194383360113756691441595089371799615481667600464698461429339545452820187742952462540476989575572624917386647176265786197312792880965990303502231295773909071735006757964307943244785193591126959113808059005057748269106344871297198146397493341074207824240935488076556242767358741818280114773584856883957311802359704849498081249518933659653080719023082672447730774563003959003670469053598221697782265714237147361676525971007522611059518511229820885390287050216668982433509731317193991945433357207302485434242186187107700183097173854520450643807157387761784816537915155327921835942047745282750569112391077238493905144417568289147268600772025455454426903626091628401087502998009521548191867614543763978970583666372765535083179618714678787756587691262733589806296958767883732578656956421464125518138846299287107641572513967716430728671272981085587614118236251466075842351751346532791217651656798736779346983473102769731875049283230745952745447823193806759972785408524271844981967897843855846086801383283395823967221611366854389539460209639111738582282186922193559050521950685565535098612773672239287197640353407752628124004814043235063547919449747248192022143957905313005446845709715357660271687883482736835574409164370179861636203826110470371650089170245223256536970324063332567259232643991793776638266912793930159255633812750388714679402485435818149285698685028513932645096568319888935822842313749684036584893078650326440524607265757369591857707758720025838375689414360641498427657829571988613874511164458124945051843329349116934517542644395154259422788464110346256940722666814721177432328332558396615278429371446860295117232196769786737296364958282363172587764969576589028896401578100379430473823230957964939378925205443027975248360774946563010282981228813155364993153083041604279330552494820089347706985782819755427208610551841525537324700552800518582200652896004923747950659635097362044914064741091442465492362753052229418991621672293705946208475036399423394010022743501318143380392696500482994936691227625730322089887308272838306672612927504488997742386878335908306830318598430119473359242339284360470059501545102820763289572455705828737394690736233550034170753509162376868702779964453525320410267435299369217307390435734027127989673506512305475799508600484109377213688713276315026734206960214418670493967479815271904428993630376280839741858351136538367358911383659939615464834934014293043065772386334459302783104150891291133740992023460103662551479900122401137388558879742870894523669761399420425475232657853264606657108695747142606798899632171609886928922166084560452538764669031249603551273345451047928329346571051293618957027628502696360706633280990296077981322830498402980702187336844893128749639959375128694836322905846572475027748490598447772879033335196022836898938420028453242019503487060272283616680529606249629789613754522626563049462003219197603576930639649955038433569345169096282367563636699428399059052320699071949536920725362157330771517150878220092217315606394731853158262477121985379993877528626554726987645197713510618251466501017907859926267640775979340304941556849904065304836023154484494085375727428312835613383013358039559627648693181244456021822543404392874078338253942080648514183358408685643189827284673006322192822367167797938466358053284469792135867884650451970155353235597061188367924738999219394388784159412717786073672712366627899141579003713568381940326229523623896077582669723437500173181254542395404708098285663115571746971244181119682587975440670815036341080580337025417845555946223455167197890726835897967631606006866458152064635939292821285683513767205284222611838437970456253997161545561391662832840080370837059499739182893898201519716350138626885273453749144434492020397115747564109768756858920958653568446313717879638596618725544866389404576441443720366821789515333001837258935074996018572058297650073650821953672266426469474576508816573628321669397169081294061060779250863416066246544717920996865198437855700994176620095772232048784318337630077748556549420443247038048923099726389594448144278737716095413956746123993381979910377624579721294374084367883762671120082204765684543722769182864596307697179964958581282398552262763947616295369213765841429355263491228224233562196121983761653898700706152971341751126246139337739305462441828043716595154212956210941928696284294941686101224117977181234342995673048325912700240991366171636314234876211583407939565128085405444966835351156007432415760726849299943362128424401982118535219594587550037164482969592226452663560564017842220589628144732273083233320973654429887142879947464941843708852806324380178399405974610261730648592242820572779212481462599649770514532555950926520090509560724441922969295540578393733187995611667157386197701040324539459246605338339256061199633371736865415700632111997603817607268182930642355421119806855082105565596424508586030751059595113963265295084123979511537145048044938022922518800889645273225699890515544202022666476989047981225926370571141547602003612727693347427206098237849899670181443829706708035105708645902974243445674342469373147253172625058173658309597265946481752792456976339252275882010306018284442007455653368869135188111161635086323990787054037481769036681687991626497743887046251599550434533496018223117175324047502357148688922977631050980722810349759855351566653177932120392138479220235710976086656653745276259406641010656839826929378413837246047355739198590099800608942168248344731382308661222459999616572723722917105117467809650492434179589336056424864966776128539745552077850365985753423748687352255774975242983854699246706564880749383830414270678338871744435481403788473197113863431488083294889460407636174002784981350785473135101660828594303428111206569588077243351010528639504067369488755753499099702173662126160981293175264133721049774858414456496510590846733631766457141855902600144042896910433564076993704996099141091210849540225073529882783896040680973559670678249597550460666543365021642841087725462929000801534515380023930339622811653631011235623446276896124772059155970894475735950146067959296647956577301445586216602467037642382112267399348201601765547281326741732015164244317954847908430400531065892167548104706732360993828503827499368769678124143017302039524732757933912599827470253533706924780529930138847099708660643559393019483290962868255119230883840078125734822158096914567885643229746772670313224784786644332408128787819882865457254632366631390875205503827604018892104330870894965261263623372397990994684776258575067641675179215381448663136836750003897940680202673274188730296199447306364110983973879653218395410472673030260416978391636760680068327364132470160420305625890274989283086091978008300389636670723614532379452862547739273307449589392220294791465179471376283818632113915468149996872982994050746438613063651380578121437912552939145160110651743479966919213543620124210362478940024566406541199859980908538344567259263202862714525425414992584163545075846891367385423816144955606366494619588074279028748726731187958956961685779796236080159907409276727135603284699699217776612346282744461972139854723853606960038793932736389248455287920664328366634985850617235498737313739438265544387451788920081667434137675938211464533749694425305111477155110591551745549741254060150534943994357392317586188809432115837783327716443042751527765819410825877076585849077882636736790133441588482197040232449153556590262562840716522944791815727743387942957637173772127641080729488227441731802838330013987652981214729415163076744902368275364218217694293930940809896561105709432729886027842003657106815226862183384269029209100578182527961823462757682245240620227996578066364699477861735891021371714825943933132025207091710503222656512392777553024639092164909506803368667963408228226008207273058374064437855168467222453088992534946232462920342657845030190306632858563196654679746974846694993627248278292360860224914711024391515450991043136584028102209145850232569654501934457516463428039302708082830385902787112996141388704784199592221495103342765570444155361631605584828315812269534032868835602696475879866620840996258701570224269370989003830199592750300520166638769015825373869055431994746786041662047065575075517624374574363252292332963385501607982326137748635521155686327380495372398046857259017857131065619425517713416113519150501277776088074438672193783935834784736559064964429513223931530045160937898780020067320418806001306447428134641244067524416980377833825135861813352753386305690970765078805756738209002825463689122233244952313675145907893111364239075091918309944226920925872766467084760355661888046433973639797963500521976230999815112724867885875030938125826782638414558991567469450238523924839369001312485590155272844740058250413795500599731366950091667256536994831314397541697438861028929459829995585487732009598979499174019798968108810920366923042996060191445471286086843599936472725153098333812041221740606802906950778953438036750215815949759571505570960226677903647923257768417663354216723481739828578990105176903826860540396516647125683840625685381203839142502284336793012447923018407376490123128052850280110802136588271020275756627372823327072462495180093941926054585204048245643249193555569815493133326649921292976223764359985828212652334734143485553768995640144833116641123813184528897335111407299478957245052798593518434901839068740171180943560234906316572450016668223996500166725039585837778597520194405473401536053269340257759264412219107855461344906635518634890574458853752393674521762613415308202251009992985485985102335117871077198527190400348034305672291880101497202374130371923905232998022076467997362567931548571378884709531047890965914190045308741833246618956511361567219670555808970617487977615533663741789442517587591021798886478272604745253687288267605553813538615348221365302159290692129377526839217252834035850693463727361848176979705058138281176047882184249667225915774579928493148215797533230656490408663130553195027586682091973009084195461162976445318152071382138316915182558399018178149307967381321949846965683838158474070373994987602861863502467015182308027569077292273173521454026604081950079736047524758205869459910744022577502004372656644411625278167880127514254113231771995592462026415983811510041744539903084647397640141950393131677641507848770243251374351645636616251387585123283772290146933010330481462935141982730537336728665823316718210624900676758883950119007342829207900993915187504885607567242847209127454288152517842575634141349115538185841276915857752997318035869181977944406511373730436930149627537702693351908419832690124707834447277297285969475110063312485323099350317902468179057840000287091446288300691289568872411181058857629680075270617619570022675909817859856239341030825960757360509845586263415323485800884722045529487653896016336231559118813300344817535230438051381026313009457909441152315044233974757324465289225429095182896638112364813730655141601955109451354310549172703421403058177900821303344098171897863000313352477892317849389474178754448761775581467532792710236385588458384638195938652098961284553709171829675169805921812855778583540501282726947262377799615194202604864600241252175759198846477248846995219954992692765537542014698464325692692710348411514403734563387937270078985910869934671544453566539732121088775769900774505327244139630491201104482954157187782183415526062599585153507729723398930658228760172066022688737463785212798928565250232556929839141308186238571512184710991016927464624257706438886734757977133857382663675463416901682474436993145850375584845248944561688817726328141544558050484225097691720601441515653896137819587523781546844490356340746568791810670554718029585526553709656811359122572978859687743101620047824210614434780870166761957786991620167728297381439521748640130843963171477416470443253035069267653315528461984491185788125623730633250547292981752804440792550480224056553316001543465190510598137699117596387923023155552527312151660778966606034046245191340678825152113543297420027052186403043612726868693032020440943256374568683377576232693669779748012962691975325327564283644832259190038758577161230146820154275587371560241673096063769194465162187310507501033765716787462293723034135621964664051035108375553350586088785884062840259632049810871628308543885948792053382952393448080428040727682903797275184349169211384807942878363241300517071907482318649820888621960586909083496707058903356859235725644237274482524769099127175881490157756139043889529831348226506235006357131866491806552138897243388194253610694071777240045939411310043597421081106824690383880857851019440801846054186601418255997521575335656401459646172147934568676628512604782658162028610389554334796400933642637282090534823013342838906505513363829250988732223498264416067243427159005194373870707801061388087631518688856722777431230230084069201932380904469092009807255630513393815205077460209673773659710065055686376548892141378494957672517145121759328756891881531367113995427074042247446842174488161644864825911303045604557820880538153590130446161293513147699792431462032932454582073261990023134322525841081994890729756761650009555128340206279707904841583048745398160689082041812833648291069080720101746111083726775765505032634361429828833500114560889816732759534419590250538730940033239291210284329958023398454893164041469935385367895182878735911962322216493255437643808503079877061500405435233806716629901192378246375665239129589261261371647755702654193138663304217467168500479675621441600745304974315874842988680348598113616307613761204267659609225537600327730943317438847351016266245462228826424154679575051725338136254183751687338613731674160191392141493304186657122228417703374021585061657643330988916215177933093346006667927570193602191189539541142761370889826936002671487440440297711709133497843409490111583069945058382679897718587508533824079303030147883429809939047711414607071081271957603266478853676901536616307920366848539799927357660405345019145199154698801703633244403597689784896698091480534219346109047468077371571733350464813496251575806325185592993444675895227394595414244380708486679003389362840879874168971338374356718215828975670281831553579883626755747620661600229164310701119289505508456543288530394931610020520421535805642778328529747967655041870734919779730051619267433698154503515393271024191643023153409414455814422659725185050903879497024403243130633477742726045504674595964049769693637857857751950471700917627665054636373922675377450241090828561493844853146803125390988179483178745918782616331921754221747124967176839332303726753913389702891350396671272848715096673339156493187339457628942639127142742642131527948704997476487347095404368294279148847651220103975739225821814017843477979899993312483855043977938095842366538361536874417220045060173663542741148544676855741207824819652724503937001992948284313362146473764172715214776380677366313208596948481287893569993002966339637556809750820451893984372252864725148940693723139612005430667476126848666015976912700290589300776019991028114148842297051624165457153293167424088690722681540800072215733458009675441524501313192952213905735809049171427362863554219622601999173220414417301843356262832975275444565861361926200142524165650278829943142468675043026715723516225442189469912467920850736156357558910408260405954584521675428620367726707005644251859423323074283900306988082605319766803050539491030199330411411085691498673620349201571703734938541654405883855533034510462768336959022740337558141217072186763832988401636985834523753611448102456812609879556814157191745482400631551930551575761814020424130962158747235821528774288538199198982305590901075413136789343923280990238344937369299990164379799225457413434280189028685423862616189214783166870448718661453647908287991126872879896656156684147347487266635766607441270554963916716728759969129496412221940940694963200534663386228517460595554797736928052545476507073895759892059213711274052481996423753639498806976031188934529183359895648221997979965619949312344639973048575936791183150566741112864609558816781982992416420858423903391255513538402758854142617620029355467276575792768886465979756031502758638559988982371197912225243909185385473498684126969210071682331794446604726474509189725762181115285735107503062883957018752532760153526209610741452602962316889739599932169153990685592577163820246860303949522875071655109980838209067512664214778169156781255177302012814746551342420917310610719220039022877154773993718674741714763409510267365261754215405610649643073445780387053755769617584365467630426597652190402270190768278890679217231320574209947998660230058276538328699237673620659742393125060212199562146004683710414139747317398840705616561717679126472733338570728348542732427380332281979939022654338381967005538754083021165106156180019856352604208768552993399782880903400742095882852624119403222159121355536151292920850809353086194810542845766064155535155532943941210113660186216536406079128736767141558586255997214922922221480177987614099316989810406772090713979293541025929000237782687690371847293488358462206138112629910597454716678175167515557123180504366572339823681777748279364335164080289030794712138143179683682944627591036255885007751489479660821001358036620793812833827412075078739212644427649169228455809711449149746746590319044502875846906657957819693455295385269514338318209980611868749459826690228431189890534995889323478681527345185333474526449829184767866899486779784257195458553602381253786780652177974129047499364478769245236274271390760965557611034130378101807194012804356417648875071775722494876884000179692798527633066308705214487939928140534962672894923348907229793258553957243929136017427039451894296324469621600350547967188955721258030569227259497991656166361546914791429793721377082232683896844916495594581237108914341717412612284883860423256013313562624477155394372174928857714573442975062905035864168642882829848698782324885739199340392858572932989644119792911377655843639485872760926386892406262004087954171823383948379134882806033272168418143403084074112925421992538917639637409657215877693741472573588617021539426980078260992961663076390863196828250640609126989627109093936465307609648924354942862169168221353439800671250407102556136103783826023095020059695154298185138666548678153241309749244505936906711800434374200469121579614222661445075768286530834784309817465219519576231894567089452099451768902248505475944768262214517672947331118726269284974449187458957480699979704585127638540506443493003443358353123403666510359284336600599633425721648729510616572695156519112684720526426816943276325772518047937575271536346595122805349838121797741601899304540591860611290165956207719303948563071169675024850381532583595524649345423234798479295933198982071937432392422243801685675435341672410527199276003277769234440731297753221799657415286679403406837081054293392949815206893889571353904081698324123832677442702578576155365133257257635703729983634243066882076587366401568279222785660242617891653390567014854591051360348321133810738228075899211252934898998057412967709087287938838340106631880515822947264972344295222966061540889045638546620986310913286446335798235558912740910207951013607074780422139620082243296094757983681107915562894380260309926152153417339462916643652217459299294249309693013826085348035222243611341950665455851062604757882474611339364958226335881114285705282052633051560374471000247421907901891282695267066303734058223089694687800413266874271386587483812853307716153439261941996865342664879224478410457336823578759738271408310393208455748857254712566085121293267205933814715755522879002374322535210062074192465847880548243665077115585780615910915939803108514924654275697888127059537795575168636369581777380581726573072674091833456277879641685221214266598983757055147489732908757574709559338098272514050600530551662209345057261765189393341517709943450327600570409683174974303829077992441074234375061715233471387805625630394426684226358223143942596771497158115112962229867233501484037194933230073617142134874559770197144594787025007561895714811980822441959733416023725943844803600317817768671196191241680548805123345560788086258729726788770775902953923528257910273198375653384166121524926747288470004348148137337026783991306880995574460286434488198391353665841771930615588431466435897712484501595755704662958290655879881560808473548080635161017270069655591044651576353155848868778512481813100236859972756707425658147566907039165559656316783754534421373417957477042847040332196979396963008028420412487147391186303877332371195968814294342773296275822537570197273952346722371892312084806145389708574506335336544091200447891234506274748328944589772209397786669667475054040816019826617755740386324716479812434037337880424686861210841194549937841136710484491330843145813657423632366323631701155196072267253755770704695676239148853395238871452264551381502860299472342129865959137367303332142804280472417690721412856697707396861810788509937594932752687170623233819145925229279396821257801185199606417198896650922093119841496372936160292275302749874110436834679601911412348723914018989565660221971839769850147756475755045404682611393265311712343705592717583968164148537517868337621726587603949969443990511956590262817683469225975832655944435585631591984695996025867205821753697594277565296425998708378224908557611056058840415929481576837877532810625340966689115383720137311740673504601793277996834750028918455644138279969555686191572795924934552213551354696742353407293879677576360578337139764511895660089918417614599109824167769102369632697633913332871923470347991040889055643804339918333837525297691302874234505242015096702858929977938947615785847815176805201391479885125678014207617313302836618562993056557308428367763977933972663379295704179201231286906051504641199161235863651761306517630127410054911212798322098055062713615260167024192014403167469074081476847347229792228870724294965927646635144961524740372191314121817474390827412568927932579182981501520230870676025308379707672872774185988594138535125423616513938514225398065814028311639083476563993874151558462356661487342553524156307168836865326354538336700660516381948335323606711326168422122634146512825850180560072313102472325077249275598177869717711605991031266534988673674458236838991616525491932062250114441967011394274526672139646006983151785089602517356563226396470980874148506232723997099523254676514771517832747176035875486219922229754119765976107103446718931295504543498946232244799565182663831402433817214924429051515739580923550929752691826708215958026884070084815204232222213143167797114279385576486813338569027147348668305754791966799365412411612935593881139042228204229075349063267175579888601963486462926424406868258019921604024503633571953994750247908165490169870441423484887117301578899194312920871351027700969050867007856872206396205109898023423110130886373097054499006867285300583956558247739228724035346143538393752682506585753350018581481388279945149578854680069823066214204082553771388935703469076362162509345526633901264525024567769845922928013021814223431623088413308538391686216330779975253302664408002532466780948374919774590650462840319604963790477896051006049466493707423984168216381166959012894912381938323334799441653167864378276362747883563944563127694398695308261589789874298867829249478359705048744895607943386226077824275954916315170254219343147840065449092868913376641393477344002971476672935492078236315649151782581984504859682287885837710939664168743759254239987383087141040704990575286431441370189623030767426359681354121754475329052732370950227458604504746886033289433790225613436561770078040151811030761634165490241372281860455586654710466464023757540800767505666597057863726547113240949071890224569220683910518660277505761583248354587009239372242816851741852456321773048463189275288291102351288007665819497952141845519883109385826921165028632798955089805556019489054523081063012707552755828385831344677155817090568461705500992395688557712531098773941769184495731555241715823233212371493626676241633086826650735882358636742831124965246674488751752758972490497199716504668756130743540642545794221041451726911960383524822772536642226795594200412137526000738706152044091157713108730578446268566100767198177995338395245277071050485301893518549550867333707859195717665513613020463330151799485837590559481391819027224748903627540809778122305401183947452206550943346602829242737754032195348633308657733687916703380265813726914167572101360544163373599226013114491012968422021496604008425349639123602253060094326233568867062375779424638005219298301993217034380008106651774251331676333745641413838582446057167696565317949667380848717824403694594169286029397445681146598378155170272993375369636809205830542987320606873753413992928116484356289219168338271760939966123904995995405537801542647697930266410617117558799353855450785687199478471176747060583363719875416138207745054920080764378586314484985211005346159768897640728080408215875381360282070119802628523706084626334176768788732536027941971046183134690462438851648916769069217378386276532373641918637535416799183587691681815144707686054487872843014594856815295863376928379700865183612855407382906314851298347828475862047850656723140317483298757665005513786148456304052728555322327851700436287653387223441170800924286559758914608819890412770946029247210721849310198683970677146821817146059280451064818096887992996700334162944220947092122804612955774710801370818378513000622356718331690506105106656344435071078793444093582058367098863265495165949925822160057391944953408917363898323440601943256136046234221037461336847051340017269648653423281301550827300965865510795100117873015063557792745065155691846410738574305058996924271322643311495509192108408644980830930078106445485868742271458879330537320806925914151476789193270453045941533685418949427648846747011686290421622811276705494097785784325365615000994400609792807747484986885535344896801613203077487175352313092059240878700028937578690183802786884269409155152745566771968714289381577306701168978568253189896071891973626138806688248486311477246173765227037460595869956550311832413124883320182503332267392768162789613239974660456376120137734915216218391426030992709680729694398317206058549559779207581608127264138890102946654224979511063802783782815691825720452119798923018751889740401400806595985632382752379414812367570823128068534912340739334710605486279071470250211588211925264793524643572497539829278005144117669740546264626197781440169317516851817482917785610204754436768089843287075841231627594482029635247251925141166054480970810968892833052287139211378475774510509603736007032766469081258762628512609211454310102111189190370468506455362155405675282029886035718052740975734188512892690897621278468361595156509369914107025380270007007339976086977808661133283639157716411970811521252377588363430951590889909277016685052791821022965545173756205585862482910506130737391301284957016937982859016727115362411251125767629631516206939820275341350942673506337964902931945093289613251194763482038430153256441136265197553960947652262323197539967324780937929291795308749790103308446500459868530761503686157590048002227030586636236788973451992469722474832801373624107990770734302631378541626792231244131698662300910213524099131103951508528729406389156735703434602838021814371528942474293940567134184593112231385342915553352095201038807887658863983468229199154523509854698412203139894454119410523188162052239546435247314680216394948999880368912572857345887301110285413331960574349435806546215357493854350569080501142604188876433438910178944539858124788089567552805689774765884596948739384559264354105310872150092575383433001335274814199673664100402458258399361665286933931573429344885848664543249884345710455071974534659718249163134759197993339799051607818302394415747593736045402172967832848975906130846934537032854893509363536497483320932299358422659113606448388988760069070603209889637833457028102104139220300909722067778282224318502251217290306566301343211373413138628192863661126181052449770694568447267894948122551376365472940927231392449306861723592595732004555831004985164408254123209281808675529282424520360596251543679920504859638367452259604795916043590159802811282906755814482041340383604533905801122392337072857498134682782518738809219709598900090912185318530776812837561635655286985081065881161794086753214950059533748888127228215806075996845984548768155871667290309403891953376664980409546146558665273104595311222800831779791235587394950507848030631330158171456195189622292136576114787141629412289874940312323763016106000615343839824426646960740165072349694639592722875848658396424304706707706032846827491539511929587163674894332111251930363037260789068720794057097429954240666811554427807185085044413238769733094942489562117536951237196204617446651145353734488453455377896531840554201194684302456120696256644883137804234854286527512144098404548719173438304249421286358267563961171514800806263889213657524186382950902811429512464981512352889670844402683128011813465512736973432886014556067112885179474558175606073012705048306994275727245547909621827081476621044244550379952535633374065374299571965183950391464472294183384944360134762268277613690476319122020286978458284442346241237603640802136274415227551980858345015119772222400360718977235468378213728793454334182085622560758388556031131397453120218399174783800466739914529713478829439176160439384218334737831473971214073575852729069648141737943321817585319265422296404352034669138708082618460461590474907359332036560753083096592745340089757407647987003316352690006586061915676142584795785918994227009410928450991480328322801673721702005902631485445776300305659313855857293385830278008061855736288358464444263801540310426338552745221200728493137079510073361142240616623698250802329965292524537522473076391639918888865161260213825475467212069585763292064926572338120767490327111694128955098707936103094121546107999950510211184586759735087378817767234592950157460514385204552056024074475139976840473515229062404099610131342562441394900754363290528380415765069520611800031577308279421084543836768279486105302704667779359710209931226850528648767626641573038961511165392595654836409401500180876539600385116887564975678337493407852604270300737669480937525694315427120107988234099069232919052255652956624259491947837581644056721827637541395655744011044954390516653913033577539139092072751654725827667619160291264887538760093038976191282114809080454028531535744819768692580566092189240977603852159197094011778803885917678415821241049849174802501763681425966347086527414437793558719869375360389333107570042011597390101212424226128484377054113791351571705170737824800257230817983740721460459072542001337211054694523433849266399105718913159703415945598322509187823106878111388392716430544218830118856218862838832293283658546365513708922788466339535612680957004991264079270923893784104369339095524338037118306851444985958146706831192059502469979890961376406376470274416590944752563691697154824484850764653760721076173320404566642429667339112124545948532072764324100216315473354560327292944987465149156553473103187350217103103258201425640935537011135490041993450189623866500561323777912349288162499762144447447739278226474210541206744808521975833558043186462273628756372830582935620544853676484380089967273395962061780875855060394221794336528932518379981846746489914582300710146613303053331785558589419721292811625475436351305845770997981115423527155216583390553497340911030764870509931338280856399836510622862191222783541627989207915619549536353189368123267185672040149791823341657587126427933037574771255182029351559768381750758844911949973436197272257950536949311452954955977576358312535230161073871050646551649713551804127535184732673442333866855967333832428816640796395700109472833524564895909811743838343482456008475322208993400032239830942518552854056602907525289059384015016914656576339121202532996368020614672115356027227719866723109582796767418047121295886233057240322970385292696618335827080003749796223642407914007509193744544956708558567516281613267053590195575997441306477636093032800817807293070782585115971942775303718761291571984254004442328132641549827046482791142493679296753932398204855123847754604614421348281921132720446784683905523415750168621134441490170639681536036235151416667910217112439474810818692731557256090346930462094500948153510969477830271673944479204686521643779471740934605340022105699924459648651763390090883239116319564355286843444259299878616754750346183353295203613879850528086352662669659679238833375877954975501527619629083831868883755747569485086585406570347107228397557971106938489774984557879727397099993977941362304337553903540836754380569136839148884805972417857893421377433018018823384485986859484746742252667637054221461237528135555046572547253812326809851465342313417812144255972356735271708163009887861281680370951346939342907678060944435280535292668526899612775230630075262158841484443412476335777791154676646305214957797623606558122977114787926419835866984165222483126963452631958897580091575297358280223281580382368673119402317647026435120634807387769574106678218195183542649120259481155802152230990466437799940705434392216101000612229719122919514556562358889550909189694688871270310807987500669179177650157349716279219241631950016848638740493987175694396685708391371250820141486224177682003997762228588928751825918094213334007124965826025863702744404896751413586252695415409411343055251875610289569757185286808159382773442776802628174955764230180300891852651597340731217514387684882967051253403749389492316827654176917314740247173100323375401492168055091861468631473879796517662631431613896835199140628144859506717101714763471281281716755582805113141538067197860673546591786742162949597809166498214472743701965479997778438668267404298161912553850683444135161475888531140613417186949641193280296539310593924438892372441415273166351471320962216412338049278492250434660640372362591286157891775002741094314565076634754217459470665751631993886857322153112421519686452813215286681925690865533502604644237792466397285193612353860069356068642448258696203651165693643975621401818124346892492370767605839295941880156585869367767523828057451907618679962542860989424271612747672334252442144380946089261528719492696364700385439630545744692614542829386361206597603021867265277546239464077212068506820041004916185980618932978689210652667551753478847403929506503639841193954655995826149093382774713693612905288965702585100369989877365013200120567400088762023039050156479672769643919651551020933011648457835213109021344735754876069708684408006130039402615714594315721742332702330304556963126424714565612780010032156518189366646382037493297845585092693327539165278428180681006585789028398657647396894143291642823531579067089511103377347126685310198001871510150188853246740499863111105159267939999086981729739894760065414627364812940122674093076582859431219140841244481639633788484687319646542388380705760408402338387603511411375082958495765201037458298559728920413908985541326951202386577573316876893605438423859537688193923743390343167533689446182153007535307339533039412217997249437616866479478476323594673376246908488260733016468473631211293903519082069147490934691504141930790661048154394517895043701896780724316440586542818424462855418708318194028721518401227231042823118699703775776679650630310246239307113322717504285309597193381742549525053182322669494882194635073166069086748374914911370718270075615414972315195935178793093660548906958110759705292704151447762041592757557735052485516722538598862190581460330930718806959714206482049191914833662326406082086082168704689727714542426838020703762517173285449652077657547340648834701737323275527085653984635289817880838643859951135177971269474282416635117482277443575671942720610538538011577217851108055733172432109863012099433320708880918441103381788668730291516820065316270323979614487363918388903190795524044183452683268650797171136519860765145332238837685341450624962475338439358811415140766150566547902251013581744541879524610017045218008605767414523489252050481003358303283400364747638061361886326762428815733337216425968940848085439175133442120814113892691668430996769698364604414628493984383995581979503006190079064425370539669431184004918930196978233952341452524074144309011111114341159176947154200464007128562795999987356909550875891869928764012599126340707838444885799444270502617305467333871817584866775644355378598154061306753741768545887685684357353567426901288757441865125999639506983350259821102508053297368284426656518938517691616748176164853367453115173414595146395573530424330018977354214228731443936651961193477225952459141038168825960964713395199517527014842705989590958465794911259027761695773414737061518785483086154079351363255894934127145092026430507847923274558400544558035383731997019228425487124479938153761208166595893795404782111458955009248907367175828399840462863641429243267252388750227491728573490696576986057170429409285197180978448761096723039791096311659975503416501900517978735300481107258529126122281788755325813155714082369918076000189174468083423920647076156634468317946573254300307720851616294833994872049437367511314206187763082217904353121049936246944488290406351848814624614486754892730736404114108962842322035259164765762159904734177235482071965608134233223804737260781476895690128130258538726527375457682784698322193347416470165470199668489566468090516077040836618190825292771939016166560240451841143944474025745230202664026338249579179595109347615376820178474788597776815797354044062964277872121465991940676984843134717770091953409502025758825565911059001955981866192957588079778311153781522978590337976909045609248688610171220652968960025168728035540264363459899955462118438469226002020766998893636934659235106333241150645298353463105623235264689714197460209729537254169894196252345748084422878942471136592815379484968373236906614597677510156398551162120003762489774454757615128068656682770693852988494231215148683050946931809432237689956275268754194418933916847791196106717757960006681002864417994354486402266008527732341583081428791065872419540893837334311899067831642764267681969627482599082798575865965510184640173956174934327302965559461262417646533139703641302574131781369473722077159484330955999552535335614619584740857271521079655028327224224345986500014979885750764854622362232571620481949036184847087351030768791568926621833709911739427982891154142686118158114160697408357307638878897740568353574408542612983808477208153252468527944185390536798868599475490273179629619532701835586489453829122558847875280952674594944438325843430881760780749418113776081356147600470191965054139813235422990883216050075693479081499780939695803455101310417389402214032864201357182247624690051493795208148490928435551667457622444933253521213157683796864243490182967915932232212651083826294561322000433987890433518788691148914214674010825813248300032101182016798688586127000147084929384802718070945597648052646006884190655425489647168568283059486183024640245497497336821348075717910917031867959489774243878427182254346515875431393492402145783120451833718897560437582166483044106792675234661412056397760952921549815883112650458156505312512070738504245062804031961038356596119826667238827784703587672446501141854711691665520513986160150967273314049215566841398953098529342103671349265517255202312493494964551858192946049748911647155418083685806978703970939137414166282087298560305879954879658574148391111272483882217836696184240654019916641059653532075119071985389116929078968003701831341663523681635001857561858784498062498376799637498510124360374264711021852177911221410898108491090298398247129350856107699889806820714539600117048096174274709961764300566492714924087128124596425433766096193572094494211719667662217162430147435003547910944842684634523535243093793873811490194208262008439286364076939689648938581322656909471143034251757010189931203801398210316834386985189056698333824449602639771014214838330418625365713894706010305591948086293426569729917776169975171400233625573057125789704504285396179654781132884695418939494064138960427011664039387931914009360955561801539095472641008265065136562141660682778070462491815731289720723527552027809029995003820684139635958018522115716575069660721115933941557814267633970717049399271070324891390016669811270118646128820038041151578144825542408463842786285016030341729803469054884357437859072038811360584410515307271339171213208699787081896814063120421695027324069747246006966817526867151052171980526827591674421261166810711125155159734892202913372702409194270693319820799128551672764184802856123360643538429861735212586068931477723923612790732411040580019309794270798849520825072979004309580924469242859718191003581887198760078527371862140373882687659182882517793936320374452399178157768317856008729280022732836982307434448809283707548121602986168828147578555105618133767201715425118714366705586653287451014759719441789566825628870810001573949081385121868824898182098948609228715688448360372746646102607065369030262395909362984483270960020916714055742340504215315085020858117463905579995164988826862011505347448198701954803283259545631270223118193685046942386908390023020147130879288263320717363976689603885394056677659201993810092173139887143822131907331427346083403268631271122719786088615794558587179384740345044755161127682226816741977593409915635295118003416076803985429105149887814100448622658939369113982005624282931963789212574281017980462332024388915340626836576611948173218533765257627985579238578478519549038439522825849271632514129538860429521384399755474992386663763352180080032696235082657024126565463992582111746907854499914679145561336664507398004016738239558099095027531715140448845252175096923584894572666629716700055701675181761067200630992501938841504024653589224784476964113219522794462444343790814875788621347031596154672507512061384511768624742459833799165134310093615473359174754502276888257922050611497330455683214673490502877673224907983180042582742342527717473059730857280676490749225220893918483704818054850448603324838500112914700745253607849734454471246820510232709877169988053774053917484191160925826750908409608034356057347493697035166821070330805573906501121456624525695945819434260276377697098301154152777520496339377175521367710056440355905397947725550894595479684866595931272443436944275321299639176650116667180127099532162968665274757110049178425835728564971906486777470039138238679643411646021262251383185438474379576377391587679378147713675989010761598208081148093773581639016154309031497599812751964873988945291045960661052757262752056635596623867857637405583065028143578890679153205569718635675143353281538503483488701923946513248704675489326569977990795447957815711156120404029809839941987182787935138032512354094236638867477740210898285951642058647042026949232698263158190301534164144528554350271989893055467998175680813213128784492626690632216117027777975224986551927532138557259372286641696761721932299393608430678654186395045821006863147118846021119158198684724665011061417560271806906650410986172911523201566584876431778489255112324564767563634803921853272024833079001943931978446425729401069652955829119238521987231396209958424464657649070453149132008022613073192045634594510082844833143672757644701698680555035837961596762669011331126388123791766324045997812505804474500536902401481301452554724882527259825224504613736909769137501958535688322099378082451865065603611833511308811766788651117555089174719104205558721724161763088058073745201905730048920978688257333329074041233683091749208537142224612128415579938354774382887090174069520519771964163966970275591119364709963937321546241650658790881381550062159029177288669744162602959841663834378097928326360477116421660559226161851346013409704324924462754714913518428738195981585967941365389119451492432440682491168087258431895894657750041651671858326289567244222859400729430335863599232879997389318616601463931696635264710445335785139367914755059508976569057859296514019584424918607739927084793074146049341343817580634588226071220440169619295652714287610872812545655012864155614717820367952195586470378456225944245070649843124571183981193046048036354709076135678102094402774542351564439585626317685915288532575518526598477099978020100230903949991092717320296048535861850551748110707791891621364693622886918564079046944379496036896780870952057986111341782525491644312546356942964379914434281911829816673458059268744514099695062106973154553054157502444834749495190318206112072392896034218724813979752884863920509846638974903291831591434722097355180502795782105089576436064101960334919854805696907309191902399996423230397235350330709147181851025414839022972108461030401216474976521811796669295622661059583426876050229075943547818758592397655680045010136378262063161317238629195463047288340699674592800547778261128139723358389296666083245833413845307324752381108767111713355496661417275120399713477587455722740185760558674807801723943340644881453489380432469204213109669124636934515717390276568826810291679053221499239257126155413654907475910632487001603977935254319361126524534286522871617130051396310564565309246186574912223038617773868807961667257738128342115534869861803907176528689669587853837946144893139960006737682549388535885276693500484991813658926915583476345009948731739913510384304048182774702499469500135313603949590328119880831555104397973825733910896683486309255126184964323428140860515814698662001208316550591735541457830991937950880338721908986448031760575162268005951564687381859993831122483105289692483371177077342354891257973779179144925192420499673594896930138301830867179707154478466846392492305176421850753992152291250109392113823120312916925999992168649194618218681008609108452666961094963704014976485969275691033849590998925409647434180058727081006134219486806566236886755001917330502487687521444357730467048459692960716247723270478515659865104326773430422000865075257587485225133555845304732625455610106806920664135980735662627479732288798059056292424637088152290208580708365819664818713635381963917629602712849066367488797225693863482733425256011429654098692851708322482627508721602053182281333344096165892844665878221773736662918493687779899320188272027238095764043677253905107008952358726864714587655859794682569426293040291627562573496532730437367588204289982730885752303403262968076800761144802305195654038030154412331912468717581953510186287277999503252379285046946913447927295210486843964463455340380239882265269940522557353702817276019262133101802336630000687652403749827368054543683785497911361720002372394162931597895716023299154392526756758970409267086926953414858737304561603284420408600130729791686761731252707303953018849068432458272610947609447516338675789527644995960965534303829254578691665902926331659450670632394177989033687751124723722173707608565464282774654367627459155806412442239558802498972078036477584575410473471952901480303171496817017070346253113441477314233472175624771649118132207891208269514975851572206560688864246727324522770156534669606535729579468630659651632376756572976278420844540207594860199166812099287809555161130385071746399713265300962481493918144882725511953434006360220517832752809538405042218424676505633340288654468738456105131352803419339240094657137696547148687538259787840098871225773914497099799707807295283988934349919853798011529558406575897210124836023346300391545005322476199934106742692628628077629589480893329399258716617290675077425453000881511721764973410106473752748937354542990424395615607644323396104033433605296862770342611668116336943122489529875085959818963020246157016620685486766961032811081426563543447878725810835462023977252516024121716644755666562808091285502079366517538220758657702849916154921380563464189736511499415768338791116948491729778200513478289595383065355560252136311677872645274573453432763838395012653427277045678149000884200121018958981917351726201180246418591405375027980521533539561924893631596362967655023566868741208579172814553611776345203957680922871901500432342626287344169941778926519601554895135272563888986467174242338707563691572578295850464557137528280447398070095755955660784552022400532724198437504228697685276179786828240895079815969313138204979264103280676272045759139582725833224983654168906426882566300442635472013512005228999318520209132605239554462850281744822866044059098959643622630491410209717972980692185424934693176375091193503976838516910610354395873619044681700111639963668455418626100714663575537395747953393443905442060496704813569556270794932175078659279297744398666784247831339498425891800827196320816300427127781334834686142402187273704761467461059576709467089857399481664456764924494996592837639736875504238129765112368111761882446129266808686891310588904647485751395529362012727914511664392603403024782336069758044182215428881568257498613253813843182451391261608585023675932201148921979445030978800965939891891552501274812853788947358346897498174955199760552773326553082619899637214470636251956674744852809088233282330652718926688042876467528953287904757117136607087186978832356111619561289846659670228548014365990168924409000793595802428760853493575815382075531002971172196992494211207860081969031491537115422660026357106741243411569267816713942734594983411462013331721246507193434928057485878756477714070708940770017135501981531443391030543087320067684560929113259179578089597757577235706563620941439862058082633041445079949911724671644606662835436134378859618539351059984197850595610785259625308226084482644401153075979688364277753615918644385720873156663339776680652235496548294682317498432643342344044066120554115217748517852740102743794123831656366123743818974179032018548547698077543634311426277552315226340190883836705196078158961921443566183353820370675486374417971135536934989181863119917940470933004550006322917489946341784531637146435722543596463516710736465792461582820011371648097761560847196210414235203228554208530321455081992631393151288567234835093411360908750396791038841032937469717116048584882136602577118425734206175312443241532439616612542446261474368934894628559656330713197578130382154501235062020282544215202666737384827121039573021901282566369194485386701838175174673588887966760279900091040554632332446869178886548280831009718306055007415381428646043803788737698122829823930069769849882303744096076038762740705283374511517946923323858412131882658770501220966511774714602836696629244301310663542003361563725682472059200993917858258316229419855846551048187137812324721613861956726429153706749306867107800689934898071890233475412531701077791952737228239746264925755497804875387248581099688243650364170228704251723226257466165756098868089026833200889511006645784053929309638992730795552705890640940892395260381946267687997660101207685847687642818976279818271636221387504228531424274539905197801201063740590177470708854643752269437084370112019790556948233840362935756196178295003128542305769518187410392236428805020424878790936485425914316990580131310407826051647384405473547637418738608050821714669835097758744031602215322331406533316037320348242872069092641230580673694627282003823553375045729523361761691361379475865833181078378083517686298379400829714130954160377597418250953959320080078008123741928450262479257036816335639414651078793398009851332508173280514060965698073430253611644636100013914622959509013473999622861390957794026566182207786420248115348249988964572928201321788756956058469501220819208631927140698609441185406997822849193524834654608868569560970741580698486359388965046888883716003765941905734418823442133776206009744200817506553879647520197966779095977750576437409348272972092215281868204905643230462356999269089259144725560130116204914856631066300841005234564418604885643535815426179394878551949592248515028847492564334510939401320971367429207942024918250433082282872891759148049052080252803630184533577615138547632079896688180764235538690599085365356910692720102194283657605906899036194778270168555514993789720746912103957429108814804927898687096147625777735415474225475700645109744119186498311081528922171960939449103251108182198669280589596531893938551185514295995367682016273745334699226902670660993751764920156966302054271208113053100512999638897180513638806746743171668115875705466685343240958215899847809339415904668709549850231830676832393426895803849992888906840477740391115482282796607544512015634526729570595334309881643730992051198890051773203943699740889596193866349435293808060683826606846511298410899674397379443446826687226534567952173847991361350370615088238139226394015548608839605290699596539527906123154267429713918819218146264883890556722977443605509449151799125748096041199049429931878342232065429285138358105396405676284732289827222920398407212822836236074568052372296188649089762087848132413369128326685821867797852072653806997395151673375937188882759831700958013757025193255464895111380214051847022151497038745582266842468023106336564657429741529988085290398442578792060571480300436957574577543994217224998720499975016088672190711955688279128888676171817749386773703990888876374244522469809311951246915904813387571623325735078707755008977191193294106241343980999968830223810831880807715529762292312533311182602331358259179549630781877139165822442797860405520261250977589664218105331681463109348659322105372283625838573153148146048067223015294355561202529468390778111994425615450171876317924843334147725942457109860405814625324651823469569877780871702772126586128865426749949094992384814234088796321428457233038316105663192299304540658078573729808197427963930805589460597975508930288287725500326513120875936573811508355777273453668699778586656966779408123526232294968355950531981972552916661033630063670319449247924912588018790062953183044499559850448271606830600032657721756098584078224512213576290143873095553640835949640546212850419258328329041228683821647089915545992111010963009768703993398008837775919463134616033820760839743641157497973839139365366885780287482533178419820328324191487967714281229083536549670753074226312049041948420459261256846059763186406737880218066934428255607834148419356685772072729902710455031214500168624878728449760946931186639872288624665123255680158390972310223798632707529201509015328749528190091806130512616792776506482523691309828132230527214960348861365588401583610701569132302304890828861896984074663698104108267920253777757543527270047388307412446425643400403304237687336540364114588246143332249496580419447127336622017680324389207934107254029811248210474206210477525403810199044033095268802368778942243406995479460273356569253852331387484133747275740365563481566419177804886334195934671533640462509678715401258586331158628791766366611788441978926569099046877330658909999889948032680276138871409284643067852284234315858297024084575054548924729525149832118568448874204998960247813845564533450394514784026650678489011337931979547107625722504379834356297823094672352372355254928689026503641786728551526849263342540044276334425645310503858538349845991698922463170124677666741267409275747570819230332283411349787963223714617327872632128074697636167369767805433490609237937491877014937622990701500084589661380284735987847269764898598571919885318023118909898484916026784500032375204134025892009569191891358548628254730634349081409263205096488680290340718130032211989810099830952129815070380191465064781953312197701399654150734817951555490152928555024118956682929901908618355101733829489338120584578986079248103856509600017253925963613002744055395103192522020664941358246489132605157982393142493364025997924307014718515554409581182680543778783443184170970785637014726038497781260400161027103249484319112020843207759767941434083491684117147807363969037835195389772086444163941378673089870495686238726650617505322612814718318142334091995659713213833150178587834811371480876267932762733194477000765716173141457038396182906029830011069933763216183738024774733859950857478508923010472302150455437006749948704754627541446997218398159274244807764863385900595763543166803138861271862433793158361928840095698511534847227836638722878288070402620170217473579995241199464960718454902362973523585227928946121387054880406518844292633871083556616630665826373757495470755213073468861961578086980848111028085557514898319444377749457678026976445374619899759646161816188303962585103923444551309766756385020734910374638913053455160572566948882882118371876708742571657702529449002007043685641209674635871048981931694826935711284588899257961113211749761950093742333732504045119578847863205026384763780285857448710443123368742510854720844007095799570478150161265358767338357567913425953925142732112482092379010125195033760019267326774901463847070107589075254365602106822021847753486347580155528908560637942965992542046406042326972941694540429731466591103851944202281005073944937659108821064113984604010666857865565442508406055080425123157345715077761250437328803299712458745872014634082020209492348495416081476710888848649230539872417638586278752428036049060210611883141462999178157794386898963583398797229263091477569097498334223645702669125652094057362315969147895976089343853204646541866419732873249417246280793888468588359563997893209254858081112283186313454287687008210742782543302893881689646583299881977600494090478702413661184602529720892706329269555494493853647519424728974491194662949936788929733115802439325035380103151898927562835189926794069154853432027042061064591841800705857039764618505605873537637421557018997351926314745584642446590188439886326375854682015244216761678489096798666034121015712266093304833046881448646698145980620943736761073178328628038016791769675007662106510928808938647500163910585181947348913159196429199836331385498853991729387308872013923541947867096122144291267731631828838002594217408621072606593990616358581574134041226496253425127701161968244188849745735267689337844070109579236774265113119776626845561440006245489374586439751878454376111739055109775343103909679717374458287313043694532142170571664519956679291230804766974882140075444475513033178598040951693920297816996417901392601028235595099742294097240702935817524794411452959086187439698743655962424965457724174688510158226789411844191648879389735640812597333235651870232211402841519695801223484246544747855179605247965890975403585240415801662046909279058936170110063390464010020281239338842987431683649181898038045762723705039448518162394125982540131143134733989223222096195960790394930323261618666337253723528568037281043329463895698946303035149769373472837173132548218707582014795202182010526026759508007742877912463783838945114117793861128919915446974248990980982183233342585129937328902172101352407313115445116473829908092754485887644247177776314095636084914207154655238206657492642790622550743834231055512476433412983253563870603699680910070568472330056686727470486832842647638551000759101713515533025205669669113394630999430988723578258903588719448720360586668095956174889913443377497476235264504374412460518486277409734903939891433530982841199597123292238827496675360512203802871258156064157800007377971258049150103644440597964571434706358130209652801535740748782265984839926111782880826996412803407862595313610451262314899037857751321230003827302128911253326726450997444488491218140732708534322296089080764995295533561258405534024805838491431077462979832038564913943957546782879334510920743572309033501634846420979410542152608553058115909330821257058264256257110339088761720455673111629431178019594590981852765191045032942866593362671571283804192323303784454107205100156739632780719730803409682368645074794424565032946297771308006173965114810294380651028786851125271152010051622543378503352974369959563311403606465543170025779604978269960422624246592912065450488981313115467117419446800068577063600506584008352128120600766038968162741204989779968531353527600103056537439906661075432330166993975165422945661533846994358765624948566664248954929636399141858821244767487737225868411846857668647255038239269737752110654709963537739389013628985507838208122266249942995300690787958523907725201521502127127932925391820868293262315181499758984210312239418820596290220962915287391398689344760534141337019391601494725135975062768313721264155355584662800249994299854597131367775170966633015871944882143857582396731502887294543256520897230645976205976094223497617600119600265039103230822293871146586763703758429419378243195337856424809119296282435000835122428844067312042978318724155462046208302209244599739336182914878932248012019975599934411839312029630763044352626277707444309166227511383241600502378368745972433521219832295817938124598045035990622533967953910282647807014881001372546991470556696107719297775649135453634775385363054062116750773707677145698774527254817269074838585566360791485772319628291423127583137606386013003133137392222705919910493625088177379404581564621026024710449447364953475419044307440493340050446660971446886050045296089758088994564270219604139611956422474132071262906677287757148378288388146176533148651806027173066685128870585739423278705422853134051423970861382779042970769308466670559651876550739795633476401544295003176139902620725208880911619320457686581901732076284387016950093811166692196846229471891152642015596164924998190637257541070452237507661753524492118536012672538365380710812958893248727852181120925052434507764904984613877416976801504326376278417786625265711483992035333128187387881689800992125055228312971750359410288891608134278470182852818640248131150757501894901290006189296216530909153719599829278068212846059889402101088333568892406654962044169089725397546369910802226612480970282004483420547916145602585050627208915624544032086701333128064091324813747143783083098819340655832799841296761145260201541777547364099992133357781755053996180551902409157027354857921934487543161239884559841789619866412456004106774131863429811849179383004654929831002361270997862576369601116608278437425684477669554687504179834158698101555338616349920645146248716950884788460994711984371785752752766796812061629116901886328747343929108439375409758502379373023824402293429262732208624669811374993317036260201299043147353696319950096979306197106501204988968266275572156550486611477654022073853554155315808616489266007321582904903422952616666605099064812060878848689990111214898061019335531658057620619720358851467666144189022144024647906560990301279828768418224953246878593049847691698264006695025683132891021121125632834733504996876694479950997057647982183598987713841133058989315167551821587614880742626441030677074109887974262944432785821478344930884790136546633609169473956022877032926114272999536550757149316591532756436362725495723743958907342996843416269189307981868659384252748504058000382169110042239738093105934362538259070033232016553923544860068739761073237823151211121828314602979589600036363315462111819866405954084014668513176064329701677712766389381486589196047554702115264017138901900615269868296771318794066019332432804487652669115282964089978254565424379106565049178638379088887377327930939999956428321527610065483862647064183147971906171319293703693097601683449240047453489508887772726526244482078876267411988228107722181415458845860983440512111026495393524287590116751642948757264177457382084917836987663672631271304557126277177481671469416778400144540961463931216004994485759425104165833936744658067431205071884466833381583565897002614003789631325816955725785455167539655956980923788608357443998893012086415660609075329793428210150500556322239556226662845725252700739479378389205504268740262297981983113917583552490202453151319026440471536763327462293809696098069413891421584716964883552239501410919233468832376409407999526307747388139841979705996944448619684609066661238947403653303157225829306125994652256190641750567697182500642981802297293722009151036957250543095688420126871407162584640166190116588901583086322759158374858203275094889303930202550163749165042630333462206823886584673908903133372852341653039326131995257174941040931617748000270752666850860587831765947845466668261147812640854409065048846602500155211630399988859869582580122408426371249808378435554994479993758549533656390808263630414797004360049280942202987925629533258464196357422573836612093362502533069290643056972401428173247826516526031213520255017187735818110076621657538430560285347476465244523309716935651471875968538459291196496106451580458873401128173594897949626784527853958345000403063306876849452376215245547389353633420717990520749047892569173743172540162770352304197557766158815177235602566308140180248704115700054670384801441012415498159645356720722891930563523978077537161320099798361039405776064064578331123180453777402358700678548525296533117806011009697414038121584458159635562775844614783043730789721004791104502408213417983433146550993670592159927269463650761662708266102302974679501709747076131936598825056174601013290248725721929543430579672558314770544689349990063302046419545276720203010878765067572860692051670367066666897225478759834423182971286524084024898937342281502648223784313411992222393105255145742410438153094889108273078436046713293588604778506717996692486052096535505728956166753621338080255488473826996811565820180898521154687004118875936377208895442451679478182195284946712356835346656467310885375923869563201574226132481092179859008512438275608455250924892433611158909216361364931208833895436911628652765245696374829165961594434186311255423013886565775794284028595739185068469913874055662414141765839298104728808054809724462817802465620850712596531753709560082437036631141257501590071843119959453852225792422089761127777195070859758233603030631582538677203134833592613907062415191188291403778504810384228018750358885341767439892820388059815274614532916639811423689606253615722683114548530091316386452653540707710347816720392531800862203253091073246747526837484154567581939288624817116142154344544467703582225390214735487858554999110679552872325913302299710957659564154850840484546412205332081062972817786963457535671360406943022083287123002000332983573157674551411760845278087039372788764691469248970668690706571088057555974211407029164262460287941661075407809642381497970521230459200933589985848408901914510340780414654298685564922233796843487565457938754752325662326480926530656539360891755943773860240645108689302959771563789691936132783765497303255629637978989803479861831375788023070875277183594113192939766721748093612109348959384679894356736286976649364764349067334402652741486684595362263032910687352657934910849090110244504828913812747006157626037614405473321931358801977074884446146237480236780106949114419427533215779651122866066591092083102661250533561065534975252243588718867272677577004573748718501275139451019576857066483228698987559936700352084697288819055601814322073181618456235405123320383825786499604238125327540726647243446199183129973698933999991623609026296810092824432677025678986560834409118892226293866877657174638291108840799499389707048290093790448240169986266181144256998315458545686001244988832804948440855785192060926835751783135809806173437359753618483304494368546932606944572401665742527342626118120923174557630259760850779202278344324314579262503470385254751513329563155282934956722107068911762869720713096512351982948550850932290632317282229902243665895654958922802052271046982480457101567011374646315942348978076828584136224578349641611078538555289854061853103353934894727563325051135551533331260493099557539519518500641936820421424039446306383958678835198516914132189594790114393254324407964943325413383254138224584330892788829421038661359252123448034050794104033482457370489679738678371484714626061940433293529416920081102835411868197104979197605999214237033864294038678348749142565479429511818893154996623903178504944018706347235376600703764978662828265524776838951206305361816901094616275377790248092650163796613416872462359252400286330567436288580882030576079053176839414350958032028495245701063210528182561683727756316967721093393316359678251597558602908786399556966446582532636919321474082412960081096068900985962932312961652192290539188762204067357308620683609723015711018135347374579835572136316909705996639081478142965929144255359756692703064045919857692599471308553418124169823547376171234808233918380149880984140814451056997783915421502263425340080987071479986655222079312151022881232439906458745572705557920297261454494056261685405821372482320561937286449083793045368620313097863805344219923837037728517650888097689061401760550151470732305866487973979884655682789056839997703722058301207773430806216454385226232630908507484319976932517415068839243038171159467179127825951157335053980634569639725116187328948858735758443098614652574487278366278642390077407264409714248609586201477538393232306012732501230964995214240504735215574341681713656447959655927140166398062753421392578125948773084027786315710527876458401737682015793682487603185871709100595937213662405785674385939880169830872614252184445102161417029790718989058752219424908073544045389743947704692573460297147998481155116188970090147336874978301862005625253283876876854804578807192587797794551312672781114154456699399527449507599950580959278471684474939625323605294821060359334052929584688032964528809409902331076858497823543949684340768852774478900491322888079400557775392909630617714304021260035173961754601914265500553722614847700863593440500856413889967942084324039452013158834906105133870244465557539720508291378677922514594591716050502030529727478035174146687659683191591617151015094252391690886810993708230716596221417244336528300523747460937917512554226847290255178767973024793730561320469400625578544473090768466473729683660646059402866150316083060003440579691556881402574663274559390995297982121397125363036749829715449896298835986451517284270641588456174800802011521712026911595821944491792432166939455316879339067506085918035893416412071831855302342670943097004715949667557711304896033813141058641766310275852404670787771866104211655800206921514462433586296421214430398834396964313638096707672777769159782613829436734816068312096814997871070759616126749347689195691902667728172137683706774801951824574149893717011362039105003131245122432370522539863400808411887198243936927728518033299219391657378826714741974525634634702639541633420224922667063316390081342786735295244693136947925779885946794523512904020578577111133223551721821086431261989329468882352044112611188083835786151589605681619144941676742341034258780005116118509365912730865276704706482575181913600381558562372989028359208946009818565104597782660925313973598903608652235589907777237109673461776578795389241022306827782922558088609027465759323867019605989700908321323060027276107781639412486832964298696108021563009608030442670326452799014874696727622002781763238782476883187331217004284318203778566487252537143173457357324087320944599707917796298971349905293830060122940260422541589882179486121875361188149528483500330210264545246432094186420828259381121313922254704065226840967882428352239764864870660719081352104751262032335708761063813483245056845557380087950982515802288208805168977503979606013711271226032178224640052649391581126526638771517391863455197453301998686203904272380878993859989781334231221779831378338169130750689409436924780017332693593628388449238803897071595016868431859351883923525212546855427327027570566151257321902471828258880770131994861290819272555045818073753898352275507725589350200739461400284288432687179423588687158769114758487946522579509396997753801250439438068772791184243247916106561548028474704115220347831266662800028468345954313551512544412760790852283439123204827583930820881524156190366900039144247006641963042415045813953254444149488328840786426380487570069416324242594451202113364594621913727987784170518759788583634857502938263011498620922003215405673727581082037828671792458657030309292041275777650505672734104618974638904949466500731679151670899809783893017897310569506434892248910826432508837159184384491185069217610579677590937206799923569861845606556712313077140964298341371893333882412743011040777661915276579284725329419583240730372407815221600172936346806733885459704691323395754559782303546811543299348542509098323689232530427900829211573477103516828729766655882486594110542729273999673877082196086911944949603876154995675169158978416279688563347043106101799969601377899635875474887246622757900769955319041403370815105641043499068956652211699373174166378670892577180699468826765210187395043722951640301533445212947629390349238078472241214038616618935048713425740567147209938313522766820151642725305901235072603052273538006888480726138159199872776678881390720503041400073869465219579253160782536901211082963465752421245927328256117626677195465678572147064547786884007750377782929222010970288598610891043876785004906061433467474280322924323757822738820401750820642956221087065124334134047373969582095390786420377844434048325160495515381505321212395846838249174179138118719658128070529694591888972523875919143702993120609768062508180835365918199629972405886391217466121981222825560224959096930480359401868806645452582857241330518945862719107795987844723031619047452287819571724829603787113884636250708702250953786134139277854739266272901650075428417429427263755790198491037307890034411497634461048058019162344225080231869684223021168620120562725484377252225511675201309963821985807582116199210676861192120233374693191630004798091070690940860552231505449891028715736363980371529948195811134200536491619359414956914294014646761010226607013098029310932741825963623887835866586595070965064615177190889148715404674797727574645364272371325033365712520533117661951185029129434227073555396876572153081822496363900021559291789760456300841902013667110677023972320817211559610658796854332432654556837771908508827145668012954602873920557409704108979642817464111590017758779954218179045350810157616375717751866838585898178928945076517580620096090680580319712746737157175414318636573244339935885895760496084165625365136804580887414712525862100279955213606012666085998186112713018378302451900888759394427795309075521665384250710274242703881801611416564687071052008323621767267618181686569756055705670732101290187017633745579576630232738727566224600879539796186991569609998153954095100381076453372855056752028066438227617186846702738113116607754665245778897355280288737189594321473960684599919592147402260648705641827388627228703954274405116899664781172688103775745908818599461668168286269456418260864930174760120664410135424428262635725958904144813504957727079992600985588183761142627284523385185591416283585610788545919211936926518645550289457756253879354004218650985399802839322955181467170822770408799185419964444861416562996907248267190732349485954275257402295171849481134821564040213048538647891754549413642506755774480679422484294448960353946589929119370196836279765929702538306495021471420487939278280790920235180834779503497086530324585373766151021068440837162954989479068118588864095609811244181055314516836338276039187951219200480254275726486686691213160209035964413408357279868727979939388790686613834966693075919006136263091130518853048219423220793536748760228496107644866076427050749381038985763659127626683883493577035270409647120119200114272378103849830433528854224674106081218328853163451071643911097172638711898988053305641512992037075753538853247861129929825974094620406526766887834433047577798037683872285297729755317736716231098868592670960841961622451972867213449768489947653963236058806042650568308872780382380809935170542410570585711884164856872983655440239095776701505663522141759959497370681022749596729038341737570315600293744725652730952034214480505644645590814312300615723684075453043393801941078947695397330364302970548111322438121488891548360104252308076057536511084052375326758849977658229835968764838644832941229378997472652549759670728764281034226258709399139732754926929062173247331542535383589261958526414398805418945295959956587174129839646240870463013212108774361674958683021018074715343825328697604506333863747492695862158025995121599179078383767454307667033553472061312243646190782964496201384451062252940650578676106025571175610997183256962200183153403544407325012814162564126985090351368054953974261080387198258000462002514069865924066940385809878584562765589417031275907306298500562142342038582415171972352864086699460017527871223674269739598650611639529298427460879953878577944423452097965955559651807719979236131486324992583394188627709164703556283741731486816151529871651477061879151598552972873999744601209136255258986198652115771377766216371740151421042500916150885863117601856493784642300494660214234841858444826862541540172031710341865099345045140949672190983684352268735229195800747140325668246830973826495069646556193710706480861018966611399902040293540964875581561242335293761812782752914994209936318851904882840784039519993190382462925785271817298260416448268024930310488203405255806451222385708314163760939059697229064789842868118029756285188991317103390610145912065522579409134395832790525392872425876680416917543486096424355390545632921295603733380649117081722224726419093760798585510822250440602345353118777827656981747566565684620945303362219664562984119844388492494145748371775751147068095116087635577108473862038749978422281986213120974103098256838066151505395879546399625977513955372492809962739296181667597717336111692584121659530734671896168741299475949098940407874365052447746720328823498469770068268268536877423263709744548191618831341874466796286542176766463561865650878432815724543481010176558779857147178210188686860200697318277141941729823262525115895150456766892567127391462129612195031465627937256052599180558361347217181859097870634573090393381240053485547278934703770379268754216725588177659400257316132321893241666629020214847457828633147077804301552627708315374470304873883191957499505483286611013872183929501889351733784705816445892061195279555952495692831015094720242481401307273433091803807976826926196551058865665604735014639359771342821928626367055769903332121066682124855161987429748777133015742029077114143121494229918152111481172095342745997490011035547417551848724578233607892469937201295279521557865182110998208294259235594073722963620405650077047709174089836969652966307378697796588933641880705228552994917568792835614668572993574011521197619814552450575222070779925170873463936145204944561066004408682599656581203645871654535615129962346169376375008850532755162957872355152813311626491673637962490405872165799702430891666678199261017179211306161869221291514140611118845578599043137519900063899447530734743153044872870181578986297542912858014562932548035651849611245769795934087661052656255768453576604940861181248025413145037859142606813600855295793123894039616166341594441043265629524766270686240777804434467825583920255018966766702675408093731115961119065068597137607209385279420761593317814081988904835688688808629131531086667100569870512482418886815000424837389831529193379104241560595200137506098630327590764702798870082783317876158746471309170511379546125685956793520733459470306328120033023822761070334649391254374062607271629942785140106741316690355369991259399288268794027331428012752860031747581395817204434764260049303666047940434262358250263976945274230309558650022805500023532303372280400236673584926400146795313954480608504176101504545201750855475546765051823514282083013784682303788147374449072570480067418114817193123964341971079350148959917999662958504503414218487693201095136300080653185332957548352320239145499347648828928343057148919917274745571554353069469798826361632934506854084704937213096327960986464921404574412736746204791505782793828396240137951898456386828632648524323224503508363736886456262107734628395714714746114806989636017023969789368285351671681675828189143329301316396340850434297345920347656607656547292814593280041948360900495683710038597127252640247387885562983341649960649142979059951020928732212321722369244336828349453266218761274426603169440328622861322338125169238353317148443527982638725435887995674386431670846258798895919096398680800641723419267673200628234862864813672692663360202798131912883447380355992052635970025264212451762761379482356402646098430502804934527232720792422260567168944290135834593002605511889729090974009701595193639820502634710717496034845777692073836121471168206941127466260013864193508322128319213190584338458868586843752090445367385823289002669248179888580754544921527275891521693076257713603392689913426418311312674036936290451026253855687888081533953422050305806600838925837242313527795706820068739778823108705310733568462820545193652384987034632423061402400430153647222451624873886335799892340454375608402303969540785577568873507943766730927820947141316550766734385848180602339613388450737936025341634266717684804022055184668491495442740510000245232584110096600140656864477698798295560048316922852999675744497610411384809624869144239356050708937427330873675876893663535680329767316627996640039709549350496315104652466522011476919777879695563272688680630600414275386382232725163235948938123324185681349509476867687615861348711066936147704453729655559541693655906599688312165291138602586421896520844856170057782525558505525441671571728311650540773878413726272701913378632060880455585964438989554779100051695996982815334570580183185215132372668144629623465737009329847727215187759770305263546611627277321998003147507522383278775433793264428251730690968595315508493914596293989370597497663546541653641165603463281758570282537439409946378108457166496247333623810981600933574375752229165540666974916977984106390903161071356134286131578906502194307465301815400767077884300023570337927989447513314515349601770527418315887284410879590601439187175594482081252975656384687639759374204244741248114032024591836713806236780848077034368470007033183753963986311294196837437795403039320372574740124923240008517987408768786570952035808569741052883161102427323362343140185892149063622928779787598177310779964147736730372373778862730442894045732298483200529125172228196646666132429682207467860889755447754439352819231102265432916371571220925231644719871140029024743576383502924676921921649261442824372700727860496485314602799602202285240214143919967850881860107761609106414813139344113403026076635956880059941699229609902811974617604293426164087966568563855509112320613358684126856973682879198205713186324537178810955989441656727876273767463274719032371341567779854965479011567029744446894164616068514960531901157418174621189403921282847289286382147865604985797685049012047923951639899102028191327362153038045999632802738063053027455348004931995981224255507845934420829428490503616646623151923516770797857665361543230198884071670562339813474099721276311964496411969424050032628140940214347440751786852937026497039543001849639006519889208948059439837687124060223646360923676909995829563660138001954036764490369175758035161402829192880165538811450678375815895282971812739534454969381798687057015327496657706670457578317158897040712171552830881304122626583363323064606790261898154104567174561834329470644353032280956795190366442606805326837514344995576251969121302949869677452363342750958939067321344591210926077752714817277882558926340495830321270712891523084642575534327541052478068330206939548975799654885880536014916379617114391630622808260685025825723848864342798435398388923289240889838806531798071826247140912252423047932471402468477666694527636406055665421974667010648290605281486230531670558945157785214689316743727387039263732235148007827912411153847663200358303350671788371246080857563611826265647585634243077395080285582337345720566327666062184080945778577261905954910793832141822900581885503727185661016084069213533461204729774885179247821162553403591860526814933378548835504850348187496009781614544640983510891333000948208592605524382216294898031562565529235453435305027565216815227111979413579499669132246683095217561462363083349379228226258246651136063970336385078491658844412885630692918712140269719937305101557552170799450269312482760151641036437070340403212801082756112884088224308460737688026234818729035804886313935420536689323169126017640422292172524862357411706693889819413987921201057514910608040667861966002145214878614322868807185457749519396343574744272367196647309895871650633055625000387668761321904242940041836100229238573539360692936044763275710876462484702431712323459458981824564052553408683894458890144779807136644102376078342213378145767671092464887713212944198178136399495385233832855718069722677888840793955174736420344593901500488185812354576857383677665399110155979945660635134362541106791378290782763257770547582162344199314781291043048873699794876442744608260894444455094289868243495267269861292678896250868362218771308426756870442561087197208820699356930503650520172938182389271648763314753459899026520506387149256951091543594778884956440932613580901552815856683754580130970221816977597387174275208167228464489800985668455522786708563175444179209650072948483491044955500737405026012356209178023958905341153668183895891356859319724307463637186300721473917456053023632606347838385703982912574037690758005040505612975028219717125624940092810305844736364475252227154144249545923148218447861893352680758688688364935006310239689333596145520376791879699840180445628268224741647691700291055381029645473727975940614768219875731394931054938543316902864210390426371043492425420365816539412156171321479484283727845387838504248560893747252612541226119102562987222369336360690883995331855051203398586960694064062338425026300825953593535452438175772274757222152907354962126310052705531381158864760117511584065295097817684985798199680646554106444193977647636764853804667660776547504161525434671756173527156542822119060707755884564243711993681331114114027227985069526191424250302021664184834878083524430918827917157736049098519234839751933453000750577092438686003110962936736390480741484558435668416972482688493410337181301529791896286314784657405727557386748900327181492785762297646704037874095844924342160600775146372633731617940055631164013805857550026476815749252908096580538861399606486649906285860051877368288887641119680394102781858996023316200245795133064405386656771110703424404244225054109783081492615513057997368179424543558390403240532295011277709912370220824646328286290899497275154869728106865646770483815641994580508135040619979604824515270213119299286617636726304134942371934952316127657505559932231642845904192842344368535920406530152469297462974544422026484655627341263509669971152143404514216076444631812147076017889924734874073622193810049064355428390505440233417336583624677299997073134987011572263099997636386129687988829304181685509278760649510374130003681062851002197599471735808532386264537926311945411353357073913871324012758781809339655768716765475724398340460864497892072831333094385192967307265531438387346611119050617649929575351174606710177933103379918048386322434854281892567398057885504939276107182621897566604399319728294862342788200823851033933935489140634182414145437438029860918140945899681875984300572071152171294689643260747976486920057094468199601029314917090456552643101778760681991864164001413706501561206827616107739966288657807239461171246170260080331200886419217479792555266498878405933033117277457618678584038818081466110362749512408019653745101716012599308495381305117634137382183958851148731076044544819002165542703244516961726947741360285778775283365704141023425182199857609581747359570740528458789253584813598789448612864751753160100498086916776617798463659753338396918465974379480782942291451675103547154300025405391513399402558213221510217679165690780066257220616468014456888472721478738014385993191028199932833003999217216157650378467711826204004046453729544404188512798983133391964478500947809391292809870726414371957205492147601411575031800780225185414432669041489645743655761257497922425820384453692498843533448957017386825688165046458576253988025881544487296999438931962374261737780317787965503003516203097737851344307576054859248969847549745964526051025892303382885616254846901845505363269554854528604225084749344372877642052367286819914083803872136473513997507658054316110642632125352726021307219621775202486504158578431291091650150728433549671426717537090182889558963856917564784043698925778013364092739984793571457691713565581933493506703999116109282155001842237359322124262212348177196683916726020007653937362183567229998524043147519251401780146757982184088167993245215846953174564833982141663323340273919947829543060479601346942400447123927515778366507496345587720996066127239422341157565317039870313239258462049894997397113073169209665904584072539232213546634732809339823001837092019130136975554763977321281019803573993559857865857814990896808394086540020116653499435882007781899160653692091486517086288418014632117953277501559134591983328017904882693195132972839247240731894775438022391534104751447485997975891036155683150281411469222201261178652498615261486069848521841545369052179266193592889973133170229475584492600397498191132807073175146524489029605389147269906766100616530207310362673157539478070989232948259041161181778232730107350372820015974836708966613268813936185768799049175462585906444820066889373805463558047745947771020504117002132406292425678941296833677701180230907102023352694063870112451899099367095339232596559172713774231295504346966665179495360327813858014230602703708992038825350343328540596792735437057675987833902873800887567582167584066116951085752541214150206947554483155078727135809228051862586261166645231058817077984176307057138700917040303474736026471339860735857438426439899887687723884979046616727382604661387574975060354959767570407914912285869273666153596794320550679541083131598123632472346041812238589724574674912589405253345000281161158311126482780911808570248424624634061507034972174634035249189989296828199793711811046042839624458635268989550484905849032148887603853244206810497418187619735619206588090286074844243993540765705568370622342868173514334901794766502293278665407071841978894447451486357250776900727496756568314741160832361270059217428936128600058139739444376153763683014728261623430675617378759032305841444093186126961359152049347482282390618943572827640906922984266561475691794348352712134999920418172469583211138419911926545615754010753310163553842879147583224016266218965343123503361069420643432393401847230681815727992876095543600843246804632360376503256905287376460562388464271610166114492112216335216410047809711563883069026283581083692387113703576347122657019259741864696043462823454553702080528039190648745663777585454837543464876337261914104561176175581436189212616909790196918728440949388587841344404534080218642120294548861383813641391558696300853152936965051081707857519507700810327491996591776253099572472024590082338882734096269449758389874161451627731657352230449175205026227953047862173910112349671242092337539974893259502476912239708276326755012097218623417162331759535957088265986760844529302160172626469625743283373657121910764957384076323663704244380120191966750539424316829796682620524094940369379057273245374073645864124118248316342554989579645491777336667291223772760713897931736261923069447639370387899194184239622750231920685572306781068279396402969572032237975997360941507549749502358728474337593577459385891230640245012531055380494865032015155900059103980358567308172401802141400268201766902668816420907087504078077205993482232408262929150799414104981162178853930971555651125551575232939603044209387236878648109549334878270605401674052253164690621374464762664412581486612564160852542296637580095623711379697501742838119976035801924474102345509120160369268214774939372047615885442433757967708836711332463711706693124238799023108275314871636146509631228053813159396761590189454193832755592781713769605828126373141694461495227264597056374045336328144179699852250652928317513789670712336011954746828427542992085921874737869256159553664671741857097154994667125128252328622163686498897682978555987392613189218869684579582176621038744043223516357312871568568072507321119649272416701148938095556722153497296685267212974153941153182364393391576066883877610435372427190998514456782476099458881744991102496117042478128796557654930848683919629080104734508434284867909076689819745390955050452163025535221157867660611365551078375593570397807647672406536660268012650111965334501877158918990136981397734620556115527468592040642027255864735476167196226319949965269450144048530914807878347902667891704366452600199929505698503110093122624865329289192472452326070804677653965449583847349972005023990455325391815215857289480652710649858843795950162057382759768346157569958061822073531334652042068138425893347706462205567895909059131839186712172841714656892623816808656158568554648768095330896609908631900195182205126854137020096156017075604308282812546389630835816739826652329263421307415555593771665618396204626207725796142510768198501453189744474852915831457379612083272116342765786329166248504135300352468685028607422383705101336377319695321236782543080926413531958200165083717905473974160243416660614669422598698073736487441087008212938021254617624698299420522240592484864935055345124257403849674311949200084311171432181418062450065745073866960648262952855085642610987152644131978548740663403873640108435617836660131210108061382272499821814490012248712876557055354923116055689652688644844944379616951456078559895309219901504769716547134415520862325948364196181794917348975505647149307204282225041247723484379597859888472798225707437052726030127227511716291339518252759928759800069572739119265187371124486122448588013143502373645547540990612766980110899851145561681762286904719332321269298520807895637825787544203331852165396008045110353890133273354351499405535171373767573611277673931279805931940126913794378005393462207881632774847182100353070568462850267453812673306061027038138037551140039517051964007385311584680657860708611879991010142842277122188294753884757953665056103880254708861101941941496555444682330518972487520639453232448367427323306019054966054846806125793154109748882821419391429131843356314976023876476981815494490003866665024807746275639305548861173028105572719500681837336578415013627005776805548205048874776366711444668351259460956291406913323701433610426318784875644843320751306253517272388019588305317930424970287519371495170955525844320284734493893731981965770637794607602136530000584272800279947737288582819559587682304395404495542971851402668228880943440572139551287358157708991881254219114065580718442292431071802546751470032204420863878361340476499159258288256645202293894841951513223411288992459187697047617786385786437029566274751807006171460410403441505545937734531070548343489061747712019242142263906703082694173901700803210840338252002116740579400250624641086554644019665931058257984722822775551091190017321152498308928914091955259937872658287230471795839457353911023588799665935988273950099997996174956073923937703562574046359855776858347784482300412217020039277332191826489938682025152272501119444392108566503612744664840797098191951378177419383366336527427479617735159802320093418022674400442899465548571401869971336734193599575964784191111854864614998424935591243266688022488553152745241673488800538739872947130456821679459915769090151621522446349484602628048047419750826698598848418148730157711806739821723345284970989813008806814014883712178002584490971979100479777234824748569784175188817040236024894506198407954151144431371982946378202326719852502055762863128544426501147383539877729480681899459153851602647022758637261875795171285119869112599178235459328204040189773785360798212184191494122946056770561282021999107184362863293865697390427847862230718085931648440385413249183279587431642908599944129368775435317503955477353980050214799451167962437483361759959581091522855069865585308604949503114587152548997598287936160506355002220149137777022979336157596512083740389468197463839881283907494468522873615417695812337316733490162263893112417742126680296668665296259590111585948291946256427706847246189098996872600952840844560636180113059220175325475836533377883208249661877239298887319414542178925026202786703560591898664623595022741854501399723776051913257002845015300787886141173292729974127602020334283844527327789418426939218370443989865612965395745705854349616155491268896490760469298947435314678216860225175708908425045429892356236796272367578782534780630906460335868751590608169240292766648148268673731247663991295105888557663125816471941465449188876784035885955563314531288632672270121110695967174281935641491076325994936860738543416514045050322180966269912522988916487126198827794459653841578348431723878774322499142771025521883982908098963482917422888017544252628432518552069895391778366153683839923239063392578913841279580307891978346117930625662939358937562702739578769819653045932243963142794926913293454934060344389128636530261242783502546584381845526436935829783104693801547560674430285415603094121780804720929734371958449427165471769981352095541402528430904082932934668662731720715514696125965778376828414923344861250967871260019025523174250363625387800831974701753345721012326603869126484711626223921077601340019733730507749512718301912292400307112029648704917085746438973232900649524081775532401170851705230223267997094320815344718632560405111138180003614271792920892836533634735930643917172647797589224027944705799224033258150220713380184674401954418921055178928246747675572963749212351408434479996225372840973225723239625756108794165960570962061429336826048231729098191527025687257450731924373102533518587661439829836254960971440857818997717124718020795378770206642029254229527527056497448204264067978778575598658285458188619912428238392906874440952424267992678269274957085909743669760073388201871224993339550985659372063840524113796353395071040906317113922471394330238457813426252828058008891172011487531013472650544188760288956889276558388445772901842665966153077612020238566430178708196753955371893455667895086083603526374008186281281061445721538659361586900360271492169400504357334040283906652001052494745338248478914919510562239050520138136593604100938901136012052767581122165198242084950348437410575852044092423155637229486474326172627321681521854714812856493393997458387618129910122751923731610257518581841023409258129578515434340422184911728621481303851299250983516147484068778383810710170685860101360943637616521123278841400868632522980001839848108778838909139084004301632384897865592359356349546637863014754570862746968031741686608369671686170577044775083690953374090848471003171553955501572638827874640616572919280642932366409816421159173529597035674274852830136408463401213698195240203423174489230326815679073055509346428119211925272548443085362134759574118103438732322113617901236621649316127816368992441516234881515962010927058091301740065800031766312479492932469758585865013303484739783197889410864526418899995665899747516142455015645313259947618983195122559962688874210366200936472360888942733893618756349889689587126970138188699427366764233070077041389536028525554971404325441245862134050235714042483760744664374767120050931200603152487722880271498575386028865102378355316154524266918833657347589548236789992276954213314431558391974032221587066506749808247982207233595409775956369152925924310551463726351235703261939640714035223367576949611008167014661893441368634760221173088225469962539216540482187548385806164921554707419609991664667707926639881344226466033483316747751032226791308728856812019298537041990575930105191813518481994948685530097875219905329145161608234462619442278258819815724726717488408145686388677347457230454083767514870604488034498489434504991677689474650795967910247685754657295125770992014910986280807999743744273017616063732567786983725983927023054569094009070602683914884320396746645218217433861713037584952854542840743444618246505650435108984032339117651442065750029582509133876836495375917120631532183178437967814269601848879096219319476622419629410801538676687733083652140273204148919343422736681352858444759757075681546615566290701427540827837692963585546294628087668911752651181158589372812847708993945304033677219370232741141159074420154223157598170383192061933513337997100522736897436346303323460822150688089140632650175154260960892843408664683635961410672671738229750297463601845776474378458904249133203584449021989812053952759939542476728044691967629856874684484022042811637219849649109629652064434634128235951048654816984020558819604910863384035631555939165989833099083804065910831173686078680852554448817538683783467060450984870760722620498022719967290443194553356785260522998159944436048711064421609407214948669449723802498857957383357698334240266321622877442654200205660680691101684900742495752313847539814108379349024640269330115179070349601907024277337363557994109825591509135996912574980002278493108017133931747583222646584108638915443824054884328579317373359205616070777401845288360583236803084287895589364096957599818817517789011122805892229852217062485257188973323634969627710901751866995872688242470055804742523708198537243827540747453630181290878281373233710131843627776287139526339766300943669725989315650127729703473397496916683126263450373418014275648900808351186975707269683747031396590192925997480683916336764404351953907761576886119572393342104875534152948490539226640605984786274413332366422161398847538191266549840191216033956520116994647530203569517369091067259212642584545829236925783614173874387020654369068199910812549123038914560330848404508164698896811337515916942116091726720199659440461679171207661016545540815555452854733695061914152532538000703010674177176232770733136870959142962958938347020669256041666116727128375396233241188903695983161858932540224203539697784653446666683810871195669532488928644905641019312248535554432679590735975598262300617344787928018969339339819511024199143710652070861630438365716766148186990159838581152966365828549823265624387108504973317469014358637695224202807294570468942182710044400041170900951783645009939824405051860187018016457964770202809164414770073919186069256288873425893204877385469703598643477074604478017319180904098915103165222721082306272540722756031228561264501581282635961935466296995018188365712626698386463167325059107410825650046034308068600459891252471179120289731468479123068124440147661417620824435872564313032729972704895937358422436090283875090182133985451910352118000172963134814416226047219198351481708982539330135040160605880521585406899286424757200582531918148827765446009059157818557273949070818133740915226471332394070516947076498940815798066499715754880899816120390770040509779852731058192221322145127574240695248308376739964745101669416334097334542677558750464867084644529357301612411453060374822792710962178312294767282190229294671175577867548359960316470863397649602726239598917191948360130916813760790873532805426772589280612191157737948263617439759354418998773316180311949554195791177436432404226894313203520701388914564596721475106642005138855681070885606173123025333209584778205215899824152444192102878837370355352165426462412728496149596907970909771496224381932361750222476912668676934304013824474133740682758267538885409281361052944449696571166866253820542784822749788680492400546777789557254567470021864452597640651779551226921753910943811932836758425536111371331347924558459287699616111586840715830290416146928102314154252424065057210283934876278175090595968227442076599702693980611275126469461675142115091006495018942983900518034170622634747751471868116341607161036060197588637242425884840096172566611934666320979080226904481048737005459546988803187683486825951848072816891778759826710078911178226034711067420329090841272735192198986918156989730232912826637634686015395890867245984410155491691903766857788637027296288322438781195447469142731491556222932278446180606276769959996924410977092930710334724032418505944011125131501292211914081718924828285915684025402610189543375295797004742055254897988824894399569855890984547917071485948648413473502134945643111035774756957713734521053806946658866801353595412266190796675087819351628187209080827413121363454687257413052646993980134937845744705567618315619632802827655909778462892878259222501161738815607642972623516274687152882528768523337373633446768857525429318039441562926209456036485822102508874241890370031992348790097179553304626875577992584166814901530407598122484480530297050030386632646884256612248745607960757810032927200618158319248880462042899149098243102524727237966694069984288867046852357875706978779264910944503274888024980099685814187472053520720045671651586594772970861890732982576290834016307393438379261128394208251863456753924882573811603068160680441766399490483593144114650041219804797191139740691958806836060722364895790034376663577728005577749276556060079368991364102414348575584417840164819257403772804074432588190304792563422072774514248898543636565498501821596697189887735980555997828374182647825839231138249071092892080566870527424348737399937421393949269681950719188879011597257935795817237944471429597867184094731638724929117163544262570394556120001604512125806545001584557728502779688326117135642282876295279921347938724408125232558193398977528899064360736925919500158716587855561431168482927940295904505454182820811766483398003478966840632319607930394032998576761150462818066520175127402823268527444816789084060850027502841167125159023574477560795631005155280056937040716497588985916429226207213385254002395911109245094083304102535959579129346674416735773279127671665144788091778124924930026803836718972257409604157382370980228941190280398799223669123079666189206620070838495557825697849132894151664074250741216066029912174720169255401725235664142229320820497777875230420863909495752899136904771551086794424660235736957856129777892269292495164303213823626026781124184836897771256333528013925835405607614190786433237697041097902899501869539451850040793296333362146756071720415070272848060313024732895133031607411638646927105714047582626625284436519369905832366551871031088378460806496771825972348990017345038822183103028718115023209759021748132962963837047556424235272694333514975898173728939747239417219254404332771339160915062607174232521043513425560649559167164581095445792227552528869791696492985944767875165016026273052786468253682719382968876382479972476780266966472782091623356376425947808673643743808893579882751777209917964454322745691996188936529513783752680215806403922832859981677540052689776187831005558634897791987831507604446258293753290855878740162457176808270366575312087942433716174198791459347409987173428755297304134021789673158226696859962292780866310977216121055507715665064394606843401134118828596020176358592057588386987284155290918346430260385572767573382502225911795511530297207891216165237256484333324640620032839542189946186908965278858116370575556686374722760513525640988007035812346777709653973944496624468213640582657555948254951775373586506829008393731396401939367668089176993215839559504261446417982608355755025757474474776120183363551579767017763055061972526289547188449916028366464404128230744429436206164999249332547699221999090311791952987642572240172947013763472157076189251661254511297632194124893616068248599803281430432125287240336411631587445094429415036492942631138997294129459057194639527077915451718914442824629376642091198745467054241190521255842246107711419022874075253747445716620751883374288630346546338795971734138591736889613008429557833503786557258553738977518422636653711813373463257192085842273667875350479372415928175905937670744558363185740299735642504584528367886861888213773450743119923945271024929325295056783188333213304965129699550687232784290506291993025404035923895706680578792634362386618181628535701445871130651682019175760859269557206010306351571260000164248509494025097628927934509688661759853535806515746182174241957932930972757117809953442570965644024969383838439840240235933695748057417135032414108665297909526970686103150807580076323399389662570677327540676925838829837634431615743099262443192281897388579880674328111169240931168724159294131178425358694796260920797232670646940039998479514771116575426050814492598395853524672364636915873500713457072842335903106215152591178189127133356461432292802921897820775912710320569336884818817658071757826962628652619467924188625343552864128058635097312573042268218016869824968155204335772999003827863076471146750722588598117276039352263938492439197473203278393490115817653883563581520238676425975325663581578261367485977097254236967845932302450890448563075083770136125642820360354651984806546850397006208648156643941563297000624478573968340148614438703039570426449421915586115399163827675694193024915193008711392493236853790533348538369334372036378372482664099266705762739697540739514251237252665454464818585100224798755387963738554067116562989113541057222271527397744110865660535715893430027651027755358112448324718739130965803663149086835013947346218562921984987073860669973356574873815250307638351267332840805244074203456112274714793598914791137730223081624144498557381593069046194301130263235444113103963093670810484470535104321169811070274679733768975261074094319859543266264406015341110500911718799328072896856181640257398549506817469676969186372187355921843415628892306904977885123104202619721552498810735995277747894257970666124139297968190948154355994069583979814200897175359609141241230321666009051354132328702340050225071790158650345783439099974172960490740112438747092968439311791806143778561442300422310899103516535437413770333038027053049763825898692151637146749165422813609249391311900040872706958952329074926827353228966663489326893903424039409015402721896787798002003774105827244743121888001106744160872074835534209258522296634129085900323651784342331238137697999555031628180531072799307357477468291594990546093509495485364158192064717530887234739275404873382455423824911021953357418875834919202966099194116061568364250436127729637164590463725650577043039085959628130150329291957784404998964215458328101336097634059752263281496637487989329283232571214473943483375314253563504294170184259312053093008897762047966797004087419244577020917043758643623841176545499109398748264184676561004810111755907799079389063703427173886299328657118726445839818746512849051591921398620969919592560524798292907301671260139031615520995756496786129738840729676369452315527012441669028258489028881376693874666636521702529447066530543725898075717446664219406691488876384487420612414964771253770796733936854497892273540522342002531904441403342517874934839957942424784009345266228352601748231966600223509846569743103678145383384795608725877358020292245158721263183369220512325263536858865424735472584681483986406006610123613413127953614836760940626162630195770438401413046945107660278969169082569260904541925659097867962225319163824387454410877405918016801958229419672551270940380047410226830585301298335245204087337549683436287739311767597165145062393853352225256514472968727707076160674651755636452021125205229445320024009227159036713411675383124933425100167768851056925229330942951585456875967885564098280020380948240268865839424455702522080320762638719074721205873733496850056070569737572300905154600802120330440085310864370476589612276281484540462957042040530579032518338804765528353267955087991953129759691930189214567282483893346080034101801813044198108087335367949712588482864277302156262079206274285643972804827057187718616499074602475758521181011441649201370221499322250026298707592454481497886016672458269353507984853955487788513922351885175946754206201325194993330382320310628141441202970605723495944266287657833966817685886456587472309430460134303212248413416513687546504934286314763753014590127387347175679995902586329904545612183738939023215358775766320437380441800103722549184020208367991385171647615940291395057616176472463831816131344353510880225660901182995276863778176121458625927771441990339604787648006601603998273118150685047532074492085307062889805932077416815411589756068025564483313328504575071436705153409874622727864373898805055984992903498976606689955721224908854160215658387854746727234860962490636797156859809761406429605041357582813460110355860487652280869756057720326983855952747779959705559239939658305196909233887930111911443734228390262702406985697885367813799988450126969511980873846707148362747731513902520535870036651888030623731240543692988742985424117627455656986029770763476617687081814460413571369687099185109328300157701797409526907933437626013346689361604715879562567069664241560793867158235237424319569276140394130526286956980172257402744079587940923061432937218854091055191612914484592932605950433896655864860150277274678496976063372218730121371423160369565457359534573858146300018590603986040442196212437024134136434973981947628284666284263345445455858670179660732884694376273478402479231717288725159837866079700057485103009578386411636044632654709419507170090260532530855744321226382635887312965103165381942095555294436991632621294383122565567555079339562048022704333743322670726902625109208739323514052297054868419667030276149972795332030734146048324186917362013769659579185990889500606966555631209956150460646409721025667503400662341460614101528595849369256189808188720094274279321198493823126327697835983919996746908298459160918215888156486778971479588156216117228064364501072113075367945979429809580479989238223948490609229898089239487786559048001631262459905634515917493986350943121474410090687878641168547863744494916717695165244259691289537578094472302473049113311677280856058625930404729148051864366551096983497119278462593657328062773629485809278255119460309852476613238612338860807276111342842440844977453009682916354199704504987129958515952672446653166671655931999267480491923698789675989392125309958977694733937642306237943736458317261624365628484184051021444317655248535293385356448032113921427659822509776243261206166436690548686713244711013856609918595352716684122877007417968926568014511904975061983251802253904391943819145779736902835175546894690983270058990808902545970092487337669073335173611617581072778871727589402168851392266149140841967345510302456853000215738100714074531633591337647427534345205011613766066137869467321882786614348819405004311217986211574052094582098589507497954996931245486160522643105218602050421707493032651867950730669558256965385212006570755550812607666229953910653858366257816091695445587385327693321526249913020633166508071665966525648168381069757034154167198950080953339287704426060163537956550494360311538007022793506447285890018160049010965616636489540063441928407865187805026670096622852006387380527604543789678993479212830506857768725386596063071707084873665605080439969972210954342528567106054149465445680318261034792378285028429544827523770941776470582011934979851451768628714272400926419281514806203247775844772783552384645549305615375040338978668756711529870250453360000609583356727615201846805421142015694590436160984579864862961451486083798602504723907036673111697451106854315318338740638426361752810238783834947526543263818211533078564830220187313907982079197714625199898210142822439552011984595854341242180631944797785811950667765024831190834080646672200928364267946938066242077541743634868026811497054976707467702905225449051950182600136875611324694337373954067963333559801556351036912474700488473725131537793607181309023995952132952207517721861720649476241888062547318062887839159559383658935321780426990300615026202934187278489580280234409328171395959959333084690589602106155646621199394482033559946678986789667243776636836861249878883551823912198932544903198458857628328699235250664559762243083144818770745580227195190509721763957811956806611487694454985032487808045331651534004627074593773361648800698197411351820386520235153108476477294076313928463427550052729757235439660988305093928052774830132549858995431265712204789412467230020536454583066282533995044289587632428448497077160104683824594945016155723787295845101259603911349623980518367751309863561945823466923501487476940738535017784222016948606474965191965210766419439728236075682073309990636930687890766758248922278649993585405075422186979317570666813365600241692470764711394245199737602428579832920725221424929298692469482244661862104101656635710662274153867930200372092471891767630092039396833967247222982573689900323629369681224668050226653712231845893213178410403446720262064183281889932964187985620070707491475856401571409402313187962855271308147425143287456504938014246209619908933857888625734672017362773333074977708152313584944334711093335242697075235864922709585340600784453507941620476641759794855885566415776498563591016026134636436845932570767176705310247209599563368781742350677042754186333913594685509120035620846618909189729186496446359624017295497270400116385175100605692406300850295542695980088925695279583370465672079634255178681516269672211585763921109674947203491587823860018576533835853826802399528087699298613905559373076726481813849803794409205310760978797738134464838298886511460208427626638510147851428390971435588275852024047732477814767558989609844902413540177771821944872218244283320542782928990038429657384050721252480625172022913122035514907764786894305476365652658117470011713832115048648249859389674107571388686923718146823107457230775760960224340236284021066739402856848638428858750883532255971082407231052691238295931727951218472901795120851168030182022239066596769190213954450675782038919199167043158291940739414640029405039257945319335580150299703505733815290344108708569403644891000417134464730760155325316389606223988554526735279191261900829923164915090969213033853603988749920340106076028920023060531795656820174162781713163305445085794826475522290562799955434330031917738229140356051645468980931211944470322078020019018497552869414146270988256939502699624419425519295561125920319519406634384811966015833982449742901652295365692096083434530184869357351712314111927781288979433092641842472452471388840606607274643004499569117482061313535203974698145418048897163838351696624946072449431216155761017284964317134387834001000715133386671340332224825213166392161595598719652755737003054171983676902060944368031374485434223124127068269759113642824070462408021754481903783335658026411275826585074946985228733482751058392144761179960489102922570818645304009814323672786920170359322884041509470709205127906135099806479630485990281029870783428399767585632995990719962578996330140761264967033750102875648934030035463475287474633201208583640222312493079298853551410031673298420594854080399543753552555284253779126289874652563792307105842122983224087034961352551529897839293922390180798015459148015409154514498928780317099937692427027224529575997679679015730608862990475118560311040985449772269921768576511113063171190793871615072814445579158764115682526087622753318476060571767507058914612236938549752687264394730737487741737388571759456942635775934529467128174148322931370642015994583398535527011113441159347049992347264071948127498433785030698614137037355357629883467273370345763918808914648433883408942079544893289255017379779720483257579284008157232662299127420438896901385660683614298391597198942584326823548582404234727063045108249482057963689101655680846990945469341057435196206695991383721595014011949016496009210054402415396358330459570721334991259704299103990954078838669786551460191411697539149075349568015577568617901302210955250997756962836603016848631786365118761932703358061165157851673993931012533895746719803874662693731660052609763023850353346615129429206284125152220463554370559631835486439149965395349775722391181474813683535525193216268160715133905272755161907531562637415121868721379500190902294163001225303568596299093865119911361392869463475410875053295233134428943505367850435350004333356622477375665354628887642274114773476911117640900905636224806203188263749683035106302421068992588707193412218662075010462712087928459277770611991691797957649582586167567100548342417485441538019885282211478024009645137708050468399019539517934624339907071257614217371101308972977221605483601738777660717369414433327431390625758931899800126507461153602778527793653756259474017588653176006790022079885734387771110577893194628031230649177368386577748277208985871557288184051875769239654167721881992079120516636151812252971131281375924162787185413265729285885533108741381589914130286106715849702399101980420539854823056479720481635130785486346460838211635390218291367614568289010576467277824803776815428415317317798012282194150630419607603755819191237889687933498466852790622138650444548114571323331160714237283810228824886667783585339357036234961508064825705599508838342860400651139705534782732837461459960629100804464162508477278617263399771872661789698466169329461790077611078222008608235045753464004007596596216434988172169891218988291583560271048792232519619532404072495959048035037790643782397879646319738616189999069034692518043047795768871017895994027122269059386358733049686274678420367136683819840963197116835673330298689422103760262350945754309301497526922803216985551025454913811612421305983338506212644054699243896649596258897628545901124086958559529249252529690985781329885067243830637617280848600755841425535549022021742096122554203357405672716348460379544119026178752478937339211165928434676093421670550757287127743949145041541517484899491750732403478479651896860723939090223451640206003901107566180649997241812868385163527441736564565276789922938205170861237961627711418799623503286182192414461706381628321904758805964116521554911131766021344423698705082631525873799183007122795716024749526827843423121031156428398868161687490654512272096672626058090827264919488346273483546570009960848848906226875366043524620003517911795505231338098111638835109298068032929950456278794255468362618376023242068044989759394065814383318625171248283114544087420466955548104381131579304673318039121530569945085512438020533081841891782695648660533523212030278553263181025425212570570696802947967963957632705182584726809553589522031633029052527632565928590585066534529541537649588804722234063947386054400652929201969438138020390613774807579959891175569938189299265822430154410015782713289511883647882683003379847170316469236495774693352230634930622936572818578080206318900423849330438752874536387595385501345405641602190998642268265571729658208533859733517777180117948711244310476434787813663691551501657406948672617544207797965846442062559239957682192858581489135731923806395722352444640776434430016832822724403399853299222965644335738126468620931340675358785520780964486910633613956757906263298220958591522452242611971994366603714291951818919928236712183872055562792050391147555013484309333793848189767953885782098003736339650069631533721818503732158531000641750828929467828058251037026887251267058136297697844119018240084872915081415830959188851962006198191161790023153536279174609958740699233288983520011195723987542175887727891501905154436167111838468778509603286352813496150804605063019000128671442489801914567924364371077369944989762867097172052351437334042053265621838554196849619421545593010386052524101846351340067466446088447992419481733225249197473528537746593016601695625876629728098462249372567553555107111526170007980061362332060994510447887810235727172049025225514464225895057769014730975220333913898491734086902749485280443577938275908589390242149367598942392114944320526963322016956736947631969096352926754554974472794288222356336501034915351623201531272780339079783410472506305076376300615220894269907594450233282489046054064738695781179674810612189454183181410082919940610216072691523835677851007249520798682519198747268691001929642789554933402322817066521888718093369336779762786246312862890356060862604021601612817510043419706748040403119869430426027313986793515607408239848626663605942244972733767523180091079914140899678215874812259294652570045234960443777175145787591906725448746460352002046101539650364884045931330666968312460317727615441269971702960928107907705599025923910501374833490839817596915891560306747023187613225535042422255345576800245322793588925681489426422000273270878470570879296606689494969348964033062245242472128903699462476968967854826731297095030138836257280960250152840986478916586857384703573944713951342921533335980123119965567179534280614673639616265121217409800756267757044598892900724452698777979042529740191760092265518427281434331994263971199583126942633241938124055205351568690288262684223190970678738061671631437392359692836914804911549519165300274868231697916217162865716625017860605681947067179157709094272461177310042174367884866496703805540033326987348954184333177127521062654057898758439141630946180913246904301455796718987516564506536294169488846583796031967205613597532668276837419474926628774663066340561695047729482953955624395214898045372882147373988980950205793644299938034933222129315319771078828674898396689283018303365928555796225788549784354849254491870972690740411881049532937144577441139677299320387141763412099010913088555782653946053789660032588264467586428170779387567504016645460383830230531811349374252986853594292731664921651562547654806243999989088806777169861752797183301181186700027388326208977931627875536696244680233383894875829784199734001402518498053245904936160289462476968530718376416219214415982016962052230558121374090243306683390634669175232596509896278961705039906336562668209393752123254053326236160781036157488571407316790443265978192375916254921418879286942357991505560690239657429433795194673612086708967415884429390203857808158306552061633059975332131629201107129484455434559306713939340108400566939897605297859444375618523001945859639081010302372245575430510844764040870227481898167035764170675894631923643419219422378621478728014477375975550890532893783830886424985641127427700550014537136111558180319156929230725677580494015189230887947112495405265872287888514917925310062469717100596336155185532195952378348711009810614683330709066877445369173632096527948932145303032380877116799104032191914557320047680295492548331912736961843309266525288866136540437921325977668602717647749580385025260844287559332945056853681990778311976643119613422474430627251447305341543637453009480861529833188554013358959195831376908303092088272096932777530890050000947677182605642766878585840137106641523699405976489826368441972365029163855511182612748662758971790863008906684783223917258021808168202122919209557079617504686347437159815079088659698388770105240916736641401578564864332861397124018447741849750062259626038753578787590427385542528722263279366772437903089619327347724112700428452536206404126607389486740685343166180930220113260494758428605595604687121234234571251182067826595793453171959775881927710987451548814294778960049089138285544198289116256876690531123323721920381180026731996770105483322044564586139407796712234481830966686232522795020876418904177982950696919749333942069874395433351880597966097528555018396875589442237363264437624184753504407059641347913807755802135054862896748744000598979651699511571486082061336272920934277712386275807119124340316598583698802346657923297729145029304571587049597084558225046663913773457600970371162860280033299595295036647175578941674720336285562589294562874934987019421105089825080152957193947919181280423261170271848499504713012288154086726740600170506413039414713798705655426786868363225508147552794050031027363800133231265507931393475203053115076858550808640203652961567390279916716065503585564059044730159334771700520564986910718129801500552595989617432348002743842189579341818262961076345869089429834375768016597615926863077161617602164139190808701839384270518408197115200876787503642935047887818641041971428213867039322552528934375359669410785233612817908367146134855062434357764746672445821822369276882532940907301726595471786318584700396007498334052769811297249179755438178925235770169195173971112342048774773286010864569877565904422984423769427115962477607798678225587975879635520492905568855210502817947110354190178588169812806296704765385123400655892876016428580095027059648204700604886947574628990040852091206516726741148986929620014389120153902629615138519045193215759967805878397519174896038865808263115269823724682271551937841524983413263422443417272481406359109216657324559568996591530302312192218744858465471340377327593284042570216029150660646043883020340782030755493248173679001939095136736204080763671495049508248764764293382349621599583797693769264550347987134333373787984008299446415759056498736305824821895665260882733456035744130725319560545847479526716128722685141503113022516305738640617410659099598896314104604065241256480656765147707140284491925004646338474998528706909915819304324794527859206094042061207673327740701385312723796531669372789435684298388704022862314366329077672866905799325084030316610825957217797979993823497935606793858401361227399619070690775309118411123115933047792697953115423568402315771852642575384131344139046005017072455967748830043011571361473539884838355889830042149422509592643002026548344026409523812027277518901437035331967498462305616624235921531978583510382381214110530635467927389928468978488210027416095156006722331234072215255091901095381984648887007186801764579481402041582910925692871644761835670945760573404197537936140428248641236199804543614939738754266419406076677542337747906544304408462124158457817830336931569733955346419131786051899085749362994565342544305030330084854387099463033724408925593708725984447629353215361909673226441794264391747339725475392629016458917372073436379217111348857814477279803013527922324693997606566146054480739285735993005841634881358665344584309804250026278153280240984011214534671495889453019777991816936206459978517650694431159599891027143363895532088921391006640899061243614981826700955060129945820830240512453747957745237218209301875088719288206729709905254624906749652139125359707324093081977511098861492690599866333439585002020293881568825488897429262755224876741792776942843955826553856880962408565998791808354729558283950394422340144336401805131489266192679270068404549234872430270258511721401585504739984481867274988333576977449979895897409435680394990402741150066508964448934518182976680164112487374848734017460428193592869677662435707950155144845822926340122980925789343463948819144753320267419377391070449260068356255780389956364699830961750943772875032606836435677431013925519133958012016256950556398816647151673310105290147557630563479314765162017897181818850815202010404123891647728931604241090812810249630566222093446658118153112490742395306613841808462412357936435301885299427620408833150982586806685200410519795768145313480307018956980542678061950970063118205236845223654706879719254404214066911469471955758926135705627753140856769130318863122480686820504355782922675442481312550956617586996617267448680344531101442858879942641734848478036422190671276115596984219332014004040714133073292821774211900703469804323771145560599336469339610741567396499012937304693725120076797929691389520289592709133741603775490839336418580544950904619874390246490355206185457893727196619263022465837608619249026816772897897054456719078037764489584208964842939228085330574170482582069947992068990122035616285558833649870308741212024921522113041886662780587279911965889176242096672761271526342441987371625793654211646573330001490794902039441380826668827376043305997862245310034360080747188875403239184451087274382975844116074037204114154521792140160354193232561496745055660771615072769242693002499294474408136173864448901526925669314471021807990663483958063168880386140276875494019534377168089851171381860991803973215217253334192913439588548671458811246224664936703798807940734383158745031655271460541538062476868092215435417795077253627838484266332758373272817261989846524696350387128350676464850177145644467069713285873967918261010734848495915325951887863518988840844325865874903036360331323663631943000975604907204800849938375374119616924366709858014436227125683196914111871834129712269734737268316891121625061906748693352614210263293277061651969099189266764821071952436080810598909185590658641492642779417807638136107905227732481165333104403957220271967601571718367382735264487950367797811384201138434058541681020887880438538588843703205857409599915287096843897253916963446236744549619324846254432601107047262535096628145877923603880672466975707036204625245872488243696983165572637140816129096307032382366476191654916479898986128604319299792644036451455601797963717996162404780096924412880489647047435206871052089913618829689721455248631801576837627136145231307924240470026556597095977053779830147873048684961257715408872162467378397707204098856535692696060691081110014078120184228441971251720242728496343219221793812724835939183401219944847354165988679829356119311766886677148449696522967720083556509015239458849004684878752148749484635413977958424291946090070922215688981277308624710648633238648610958605789378081099516570831294309057734174570761827816209872751222535381362443642991478794526349410410689207876805896770785313049031508635562261477471881863011085452720542476442869189127559462175505101600235119044679905119226299085150271917224669590680107983981284608732729271910859930950350201455369498817252772777685259409390145645356788745454676316851793178425635377353562217569189583391926130056652263269101005352833240208183243231706248938717256216966481311722997938622186023676648671243322242543843920758928750708500578784071634639201568683392892323611233244222940148911362428685348931654764939039030765432169906308930717839414118144658368158028472497691292007080554422362379219623522543448113027876039586414907175198741576671440947892361411064343405017203389192880934395988036723857963194732317951205773950589059733119323938402761865683562007460212384156795784213912421951549792480731766474215899817917456211678276752499668920075001912096807727841714300466498089379920722190263359033706085427958234036558379963750855510626776560042935399177422837041920316952996197518811927019788305172271770022327207063926637473207356793699242081244485761939048935912666220394138643630012807927783321797041252983877389996021511269782915242775061657378899613340539299994711908053275217933383572968984215946916033807952919415578305668558609078852740594732846787502766609119740690492666485679770483437118776335386390906235124991453628946363209455736304794927405558452276795036072485977506966636336560395685680604669916321098612538533757016874330563807843208656486018954529732894484590571251933825144412263274750768150042344329197286038058814473609244752915181292173126054320115139504589263356060800275955292177555535500551922696503555443118050946127828083013384794306892422761236332099998016680580514823262752773269661650484096381036283089909096544117640062531638895216620646977528955304204091047150981193627589265375881659056133410324305713604006094878546392859628395405505948540527565138972225521629466945199328232156917785949268150956500022884146343532584421411636127475400142377738812441064508477140519444792896818169239836307370530534821838794597549184294563642623612905394538451882053976945112064249464441095467902600972704938190746117843073963254472446879773193954385721417030526387209976954305840263180270059984608626445763956848703682324362139326871958332345519982501952287635346387681055610306334204498325117753271883385257886655723376262759345818101797944892351944279616958958481241192828376180058104022813996812216315868207428969207443321988282889594927497392168446748979430079019590884190656088117955493521978294777237472667338177390975362351636469010760192288669038420093409082643248334790862761222924518342377745708953812993135890192582707759264508532037800137790973874000247659833712937207962106971467249469950817324786113398836707891313650824937329119898095440962967832228603038984604028293837807049437081680361549606877533588115057065303819162401388231164637502060637457456013508799525183875374583407467039207398587397154272379344882393213758617815019398123842327571012116464363862299902708892185608842107696581935774128887692712494711262613778273211942654685427744669209954624861968026388518107009874771114451293238788241467385083916408198229961481947406138446168435817867848194682903224007705740850104916814195181651413058031100367522446595813629621270391061880608763607019588670675459235411955491227723179335077662153144889759525663304949899002619223067245086171575912935304852030173556998163274737120444150351445609761450284475884195820625907990821907297870222887734686843616694497378094907430534194769887946048452073787269015926285683062338055371451368346975488048232186147779449110856059306335704040178288972848624570930900262128943466861091175426472730995645581228691226203457588093087557159637869020701946307640481639559475035435299155669561810365202629498597823927324847546746224347517913828993318926306569559367034468306386259390893981750483632750315342003047995081728040442377578485698521636757113414500375666007733917993308298044468031934573058052354887417957707239817247249562920876655901847366844510525123288573205489761066232270894286772804466853786152704648923922142188084530737454898305305327563986081072584057212887875471812505606761857443480177624545288412795221596437762493068639041628000652529218221197268166119952241024742464508732360016349378837926719811234922679499632947618352936547207761456769421402388751330544129187490581874170043813711458483386538739778670050222394483799543736809484323334427649401541364203548068658287921029668614072841367906814090550181892102009327295718550288781896972861191910011222223584106234885077544099801532777985537756103373850013551546467836147669396915304497591309668420362961002332889972348240068241907202392285126202075662303809206501046561882858168780584445268805951862575986144901314960866475219286328990066663265910176838061871780521069122280577622310761670931098434119088398765008934633601123521566412562148962639630064979758074609594563361619389984112999087439884561723901264868014850530080159309593309562928137416707383275192518133993675895972091534861720206434506383177843508966475664769862734962063701149382057638100227894184686268810129770160010883739876123233239994157011103636881692269169787331722701397336688982745614982771794089713377230989869117018761119574024510884071946960023961336312013134189086972374304295832589644968736137698765708751283656148283474709780443499642902618171355754751682081768587713496356446583269494241736857520407084962094469598778496592563194004902265809230704588805004411016992819664038151438264710487087829255742580554406211119478142661831459378824683661776577313255464018635460892801714271929456108974214345786010385213220938549051240672548260682251636478493097309241676996187780416842641532921977103234178467684340971144260892434735162845865137563111102239955278842580590801032051947782982639094043292895199585518837758377933024468383793715125530608918501084500925767975207034772522911483771650233533373429422217418683252192234891331669987687728744528111077666930185380978480867193651018706260873689112784610587637899141199825642899027626773781975826495510381338332792521665188310198237597889926720793177741511967856262325089998267556633494403400009984847966437049938167180458636346429675016329013444680780405640145439188292799354253789013781782348034615409630044204620180534461338731379935091056611014750871552637591097999110861285930920176017299905255159610707417163242577555619421353590952314988628661457982448009250244940807958271611469372863261297606198261979898235869589474818103979502751235373127650049187781054732202680727124231052031222828193817274778237017800695011486696947410907074958695077912452773494791625384498950511346095160605569030194438345744349548888677508290476434222678147655133817091247681107569986363457590731688902910690565838121712797795048014233346197846581672764930847497685919031937945928581547922061319095548925460320923070507286067171697519471520196590461500741883120258760762975488447969623692185587304701524436921740224675752433790200218148055583252089889936327162911468393736280661707938029323333471959250077512314203911256075591103206908939487482828466827045781702800152973637498352719588740998430439776770662668962848750175541500371229924482208602574590275601170525089718583475048704157535833952682549901040876569595713742145018837908909736890896810094323363288062156010206325465419491487545640038536955033024253582943188373431251471591784150532607896065819180688994495960433906142962136468889647130935321371574670034711495918031256193215707888501421416708109478915403703302828334272116869147358723287170469831577171779741535080576638261882154430774281083518560064608005901381555610660251798957089432738583921167363007138040736385105762345562888241289682545146066045677555752530324183614064175096840137132391202802539611550788725335050326761066096046661256046843302629416940449982933149062820272204834161947320045105233125578777446404348989775865481631425637728747986387158780761590968329252622217711255830317969030039986921551989013738614719507466106542546446475403983131903955626911020006083889478767258046659540335810977813059787922066886100054029363073502740446173068910712844418627673831149001969412823794852596372266412691695300967485210259019590129723522651707949366717760205563156581475449214046201271111371805749753580070083001054327847203836837022426252068633888564230276904197632068417819831943456116788246487422545969385936975114007895448256771249355543288440713780008681202545118873271563652451554862921426989141060211161888351887771813649012352251348415257027596720781354224285682391227059515547954997365318961445367489657056489167143811684788793018772855493796534906644274875168416017115364913945091110668643313135167576139240357872605407888502448908800833635846667731468668668893548214972600538651154356207563231595359525859618988584654033382646308979540842313194808273452590778077118499413519868452363326356734477452349043395752436132428445843781551932950434904389837577252564963761481128082143366956019576267619562277427046864330959575902745306505612014234176412231608259331027914402925399147236145612124389638679223209535481073528533441067253933283265017312246024844361210250869311188001122819753142823599707350644060670412275599520456390210696916426253759366786091183615162101592927509147476174847755090774245717659137154394956749870047943337439084215164487224127380134412675134413524734582953346468460340844501222083874572135394295934754724797140049606643195039565459972688180555304810341526625835886600772990107959800724288296745417823185331664122815263944805907258738536940697665174973591357381876475561809413310628792832222091921127192995834388239913902825027444701720526692602065675318040100043410864910165014118596452657525080356391972629620931179037243436050635967758799632577022415138445002780406893355837299907835237794269712142083881372423506866940335215321701091722735138325282243297102949252326635983543607285169421550134383925859251143987356297109391677062392370489463029851031848488637225034917458536905612439604335995035540539500034705497262698449897110783769699587542805762431002491047700075783201285555274021253606738378025067828999327689651503241499135796091044739602494211318828986439008117570995722482665670356485723419465690047425603482980278069345859359418636075493502996411366628567305789866657342858850158769563115612962732375711208848331726315447982498406071595859479023013133348458145353631448592507571876243753057355463067150004448069303858821759265498688006673827335120995552060539172306903093571438167846861566921132355085099763361250652068474791698147625520597020174459983956257102066240408522255309397566181839854711866730459271227581124099370012772317342582271870339479723978360752579574025090719489171718660874999966170301655669509579656136131889484154168314461211769875103251692602918187719745243552093236651103795091297553940378235229078255686668285075843005992521817831340602370705760470040413043494914846641808030969625048113242746022150887822966238167325585735589971596569390183055380129106098664018356497268282229566184743494531960730085640165510423801352842993980805409090419030642450187005820067741917161105052078831880475890396928059326372373827523990558127596357567685905472125321699407458357402817121494410645818388280875152046878066459551530736417659029732300412271156271491781485849283478573412960588376857314349758610554558759804009308532632755595910829502278803530363550149132044379420880057231848844440445116419370344098410829133141751943540867878192650382222168572307607069168318005496857796386579481488029397008321513990075515123028411102069842131979535747209619651646487692012020310588199664216317956315102871997763300672881234891059059461284867905276442655548625361570515520088553775561322865035178523120542622639331512565552968689882314581183367593756850624046729599234528437216685868063856440633323252169828103727311679676917220710230287070073981877576995580400815982416725697772188811764235253358778575636887352599525127005357729752005327928444527877609733229004001771520794065960716078047235277229424719099716334094263301735770772091237213207660013704647461920548823271166819598444294245067359206557181720122794592804994899649200032412507527022893051564894832934738342923098481695986578503733435050474946187717505490236165549036451780717535417928022437450943647457465742322849372814023025297877052806787279682212011824870382625887664122279009784354727778029384602322782540109523126544505422329006202706643412582624637172420409225559051501022312736872483169676936960728851406721604384002013235740955132524861003131074842931169499188957153782775107820979930547415518146577550133536132278677269123515951606974226118877233193287621960438147591851122232233589783474429805610387626710977544075932779955980722127419200795430453569043168248169234338586636123423867697058386305786842136562802885902752573426141173335627863447018917279658862479505840338991826686822719625538031549794197631214402562977829576183131626318037672931436324047903339805073957118587821120978268387817407703891659237561645100528756514684497481732771567913297601705301579701240432062097866769357061414094820513166638099918501037155102037433049791158989040609078572286597048308059737520360055511195628600100914210449067075513435758449876140501352705144884277242944856073307468661228721253116065970670818808947813643411149965459157503371445764781904609170287331653171344734038378857661531830199721607073394916060445076358803273271353476785041642054613856594812171613579364332214114819283955442955187599786972789697402799408223335293741676824401325331277292478182189836323321938847729534737751960540503591355131973797197191029258842777071637391838173048736686624431871965822744757186945526691333029038612971456263421210548924675657805253866204629214640228147523184857975735320540016258101028184119212336889098153885306991419832415952960295068880781311789624786116807522539221834493514399540064655092466497852288426527753207200650119684585616705353112259103608550066759408064389742065276361068181327115339316485922352268104212978131570460488893825371341632013004104208780112063866708104582733848713798879983993388817562386321282577220633333539096377125284370190956007197880185329195849466176190082317709286773239722911483272945097607871609231093361968517230375774668098327294181181102401353992555845525322951004669024947794602377860900643969864628744830658748991143155481870894854083035354993706245421343795662952709077720742870139857192307105761190412133412282728876024293346363493107720991252953093450923320233696599979672089790768313782833255054401433037502480639210381061403845110353096521104716725262532764579920381422194634505313893718334956749499180593482647532896751223835041640599681285488328023400475379382788877342824803777475575651865759188904776513919671830294559153632142545270416523484361980935139795088711814657875750450827973059579324226462247861732056997720623692018935272648023936005566164417353716185674068901563128953375258087445342241592395614491232601364808380546512404605824872709268941180326827330521905047442925841952730633891237409145818137000252110618995903582980097348354277714302839840116235595247932100049586152047909010060685289476358895261994133709426589574327153942024232393607431497690510657607050857909311422149365498347456614187210107980002717586047228289991902833601941824756638868657959310004002445723669858323006579996766683948288368875660911445709230831273687507925980204680431091973319797630327690962691389021231293481995223292058676033763191464008747516438686714722465532719268512821296958801946813107806081655119056568794907327843727052106123835449821352282280094532245218251720066146876371593887247221205457953450778114635766537516205072131882762862893552245251472054706526481262124188378663199822476973884182371601826463680378550685074000047224427634268370367643344705274210962524929586316961768778459405158480875478909587357796970694416346440127465594613200128594669373613227569819077554602879211435727858406219450985464619340945047647079207670245256117196976556020470201131082276205332226799419166672705395553661232953462932810064158935227865713932658449835035532993178798494288261813356398702790889257801215003422400335662757527851956005392676731889157044118899579813778155366419408966300195032268453374192762153343585937386807069976568586970044176203315326236650007678110261703497646710483898530153598539831167409782304553066830151685498559615287438156048276983023118890472641648357959539319893264186938027934965867013314736898638985540819528961396878564471292870420972175757174462172097860193650626532838388930436179003525678614369814726443867070335547832608546628749947348103220501120977948767268307565599034420412695275737004393653257518526068191890705589382844659308454433100540905985649320453326498694625448486039438508299920142042419262248836770717738755817290673290379703286861135217635762527438118154944867462976518433886617178869424443694212444757382955415514211141023148234486933172433735923831270511091316697079938489486593742597483673712236223380070248669735026787840170954126307250037413778979721398566962083550658695884331890714494744091419717613805172336846505450255497625944080614678138011938944314451233081434802527975448029019966068930481856995574505240957027387584511245607210519264150766517715700929388620782765757577410063546738759181426567496120810909875658181853501636787376507286251273585957567732766742598917096274787401293860804720799940449907777607201293996870400678002335125381241719480358572364994296434542243246264752531962505750627198106684996401901688334802263299810649817899706681003485804064110088971894254519570145885485407992877854453945987453612755706831044218450372551575071771069756048943185982401044481227851186630771720854016536114667120605428089336679564875836193404274482723852415180184090185733969197670823961605434074809530189565942174680279117419706441331408624077225039863295658107602273988180230338572574664918957568375274710099126614162651738160829166904787767397620048392125508597199041262554869494892310938002641897493559842778685188768645812022762786132620895967320754267044342708597266094033301296590473863307655586612660440833106726779125947269640113475737248532660944793909016987269468631138643601549907773555217353758178426906350694880453734350684575899044909381576723195828586594611815360496589116171637738080281330055055410501467745515415919124993419338157574910244338642434025770171549260126036938847578941096952974178157084184682024326857970625275065253054538899940175539271603836249989071077145672231195782965733445969152332591892345958555066021131673159000459550376101780862848071727708853432703100607146368493233675352816706837279503987807800821448537626187908684514275599976384053419564896052882903103153509113109188315742371788997059393156840157062468390756527531039469029208956130323477938854342838157031047686210578343470879182116162374640026553789572995456697776110277741861914553919112053769670111065565322975418706672756169002351053653805041532472662815066883191995216922135660386422258932209677352501534953555686334875266021531163933665306094202952638908139129797104941609916046897351517867777096724922071837631458712122622447700580020580346257461235571163878007179898648526913434645594934215036119086675806828868697461569936682278390887986359469833069612224672505259421285499624062393736381304898605841519687637001823995166977002084288190790026530054221980125272582117107728836799636784961260724012089750567902459576353034927952540263954302852109783288429391977064661506128055890840477460372330537435338330260893078853955059401580404007149325271486510876648061157317311157484231871947427805628280886348812630352980275404643316722103436576685632220074853165927633936689008571243443582971070100258228066304617199280318806243802937489912473067738642421129359412617324435014580949870191135752700966487422877215221161932816597453375154437918662972863042460354894300859534346576802952182366740664687228597570678275795570292185701289331359241933803549415784328797285797543976181234899940302811583982604458978602737117980134407197395564705108340300899537806860134053808937112899258095075389723541764887025910261486368286477871279812970972625834486920590181820173315029371914657977197556462236681642413038444110786837799073294276507935911645558592895925393212608544684232357190943735685546539190062448914119492426004252758219162362596400683992899718556084954574051944192007585210991354450085407896662387184515123051577469565284292384685531263269513096099194206216111966396028932962204087779213016446335872517004994325357472227444369904207810474437605654417732453595392324088920585165748137641625910773456546633562511596519750146034741926225093241497650058512189214802285447256585022030399250177793617203948289104411993385798230760660702947879445043023290601490612368577697949172211440387957094435407809510019076758653531055872815596426461563578613693688711323688569645619945724930804249109888526356633201878375446750746820445878771386224118378223797480972263634425588794792722232787187882846831550210899706678057090227433574697587867751193377651290585935127537278021605585258710023562639181956896909440595636171431918803450831030045260051089803413816724809303004347836750469995828284689454129884418612506315725359142175027743795804286464113733270986192469703380373765080658344931148682620734618109788955767786680080840249163777121009599728707846730754144327882602759073830812979963741595723213684268526467990276935558475609324213636652791297736985039144931381253688189703173307222879181913349699367544646554344226681741933040596529591579996655129642127122420622503267513043517813616852098000690673302023114734500650806690978725446982952911709581798620234771426741179879765698480604699384407272487364760945744372887818143440071920004085178181882098019975149626624665424039663130472697092268907862595617603382989403543638218950011986643045547828515224007801256751838951293069134764392456663940458128347985690382415390358695084781237257703795824619015878470465573368991854787188810979628158953651672532595978476775586081668087903265991031409461748749125487617828073393392713587961417695733101929670463027148960154113717586327348229588252054259437789992722806237208635624107772503066781913218946351465288877841797825351033337899431351608678887818129327121044366359927316904577695085019680802491707457186054658342831631710459789562282758299413699637765811127779807466786290083272510195132284031879760523252167510579026444253282858099542196710725715071789126743585444044215135127468914304767078631914664802244359844652960982653435727882227865277489462042715798732417683290692913118388722205457885020447594189856338804583370862137941145805081599189873306353867826202234271032070026447260436602760498761395433386300106563251281988040811530675033000529905926266111946750691187655062962212395792445467210312816301580816902285762747811309655741339982448544871805911950875287265109137705435031145144022324417568985498324678482809262855066532442375363038254381232951078664540456415216534415248843361919665825612177441288728246586861934854603383386174814462335357440784123184408969858757647540974712292923217787414981215428704860172111023784222033351517175118737510077875833722780208434805196646473154080200738635816756355515770160120287748077791052338905400055042250447427329033467254895202815164797170766934747905210118411431384633408308133819085900335251504564997613996991390530605258280835062098716965084596280236165280562765468302028098151570152626351519751469168146844352157257160952411320695648007548892045780855691429651426083522863720601635529763517285629617048813812247393340183168972212297432032648097200935889798599585049499030459767741177422519382848688477411512722138932037631575981535690373286813863702645804678737911948183208363326291051058121922757240544761598508148227928893961851985107696213122068125375149947749601255706735720227995020595731137993602171894276236337628717861128739191354571472496098815298193067574201598877367861965610325315661562886367714694151869637617870223832534032871491237381999024268410960242579889713542964067194248324537089810970594659566787727005475194734491386277509388227940412486902352782770972845438455324686536461624239335718339939558028480582388891194275365650425639669109426281749149426451475437416170681339185120918087603391249678676463147085898377847061634024701010508454301503873643527530746192538800289848233821461264660756610426272382740350966215979535840367964792939010073710153536653071286415428164261074872493332779673590215685700060036252221162599326089516284095576630603438326672596656252821459829089512193370654007326257630597308325673111259822580819337118445140598667311879289526097867316760109430091405671027389589805992936307005192904652916980806158639362519315135232386236995922611674962134300625107388271365240297192450027961524641688499735963477943865706838733530862912691528208758717779521017220136522941915658900248074128743794087561324071742826813046612053134897174632461305557269744508697834814478219092099842687331953521071519273408995274013628245118788249346188910368485151355823446272986519629143940261368639813511132400213195754415527418835375898496014504892297068656645791510935379077314391352815465622071066872920054154601847883328221198168964624229461974262424131228160269766046385635519915044653010239183102648353796660708354918562974392801713554591567050511305764336553090455847078017735424941375839102267117248486558359580175864884223424521733300852563731260831919210315008852600432514745180644686210725394763048977740159282412765355002212803580429313014173565703511649031470811538893510435505944799287737637663930789471645517284296827824556008330184889465346664489986443357047040044740352534471055172488656858130805802906350634739481775823433630460013392480744916648499835588703996258594226675746981682510706070871057617886283144480208029944671173950773128535093765768809684523833834547470360481715928472235989039928974440037929769587298223208826660248606790985920206715293364447493398146326412765249220279370050355702426369927106962304881090321682030831365400020354406514948888383509285950397228766603361478860925262907338275484024015213208445477941784050363781173271140261945644353353569543802651365405235246051871673196453659067112300171718266775489776936067580555850366383868319605812992801783109786885568457359656250487959662037827888744260750435069565231189558413166965170258533325372284310912040033284008004841756947936415185197877055153164087329056365085612152136298940795642541072906175871248946674480339361497509999025437109434797769234448938868683004000778159251328129702102992633601382017671882551194093367145796212157894392993432041724580339382566284516067720552911345803573858127830970216319536093792720750946735383992163820946917649855899483396482621293578427452076876940426201234404764093455003277461863648583749375710998407830692988954525940865821359635399921319197897740009379818760368972218932026846916382998498006501802591595115755678540421380193006108268421497994134676490250242740934353720362540769198276559622999033621951661619510484441834858014632514003260921936954101699851020680942890688288407131973696109272709269502642678592932791911380897343298748875516480093345217313906370772226340441864265278762565713352473604404725715915065061461384414792800966708873824610938389803553177195634306590099054086358703290292256803295496269322478938356306970595931129638057302928377822902066140880919739437605283467506427258766672545877380434182390047527484161353643743019308145780112429615729601941593568125948797474256725563652883897085881517916218364689411791586957890201912616655005769147711582807222441005455252355650349078946019410554950217736653421697492090067321808070893535699601076677235265411145419666157526104960737220978099034558092321709291353387340981198200264868437891445377313529361810858867680210591251511689155535068322945699951667546616211767920334699746862214395992246633196002737550265887986850336542734409786101140225573315045499382913798731032469646677409216640000180706323958779790801254077994422369489996690854109399570487326036382989915062462018410294987280014811248783186167198162061209018299776210348876187463701542486943392958936146148741109621355345556445631972492263726485885165926380363307649683505230605349912407963443577455244705341033356938100889029281378701255466817356398295631814600251533253169422623489032487580087608467696575806580922006435888490126831183484967107980329681258579287662482564232241423920778530596544280941974810727839589417314989803291672625125675536779569172825703691665247954772889365250324595659347735329461583175745968345080064739627316816408663356800182173821394869724764676901778576226164315364064720351165054854414160061969776902821846476701679841528699763061302853480795236592328846557566601654140653186891889799474828961337511009291642311179385990781671745633931146628528994029387137922525143488141812938767013594484475501538083490299814814536502990749759491450808073346161588157754588480697042597282362132398093591830119456658795312093997895820775114152707019515411156380049375685363407593635219336087463024621980015964677283635949598387492902592326074684151994403112098951738522049026242156289601890708503452161767322365011995197900987707104981751077937210076438842027258083831626050991780464804838776690660798310772449775975631449249793121132601523100053569570293868746285068608391349102780374815405767090601459957575855605637834870113106777496509381199802530376250820257975930394690984752260967379170857344741255021192319069275635569391476237330450042330545689071559077694711117532880333142993365938508422948597839421167744089684290202462735856309492911507783656872923955019516988849994839336872291886617876105762520920028997446610312299773356468096560151164940518094425342633551220965876217770561806780612841642114540614014210403006152123318553437492003942662253632594511460202648313136355270319189701163065363738919931292400812988338738646180523836844620191650340065400527009547988828513370567776263030229874152403379427809715878256778978082127219430815526884738629820366861001370960977557682668400784907814018728532047268727258321109674004822672033299279240693232101591167876421898087880776995382805322586381511040466465131559010327310051791889978031748668453425036343907082796681178643264492534885193028898552498481982505590995775993806162215516626511825775233757347554003763685424789468971719032082669544992810292994812395573281630325649253677380218489451264218903200067184856454588090032402227823728968709651449973130766804969761098488872886937922254679110611193776869852771645612275069452957882003212620621704961073783824516462721166516945757882434947273377812333514355335765617432498782880279511523881608362517534962443787733107629771706900384041326846575741261744003068248522735958886542495833401965380243522148377048682200262083535292053114584583108691667547268966619681362545551504864197064902888424739719194309546818730906780988323659260116326704408519290220227813487035039019442746581680033995907283996766969117221040193941499497815511139654234750521134438638164629012689717815379348281785124819102460767303330007099097084632641706315450140045757013037571145036218289961826584916748165660905438166570300847095642442154687838616398643848209146223191566258923417616771448969307052086533349319931505099565572386359572256205066947435834919936887091869588012174476670126339019768066416996994488130794994176520969130579836773882968690611604047490594736052130368261816405612314180056807755598608186738021031607691522527786260192165756247956462504588280817130800223744296059108161337327623417136256949563312178060762909556399382555501607677734271961981783267099815067335275296345978570241511909805724223216247063250781989588258537783613468109888371381135058946679514208653039016432904954250319499912314372693951050522375353110787217730713798857417362602535172238867823890521433751297119578933123945049757997097493540293563328440932928530623872116612636668075029838749079530642179753086033748908144831347344506788933131459865118873911553257016453628805553134932949960269086044368968884004627104225455464553620812098695413117357935342837815829959951452633085802863512287268878903713245467587014424394927535828336744493640436974390453478950679979390757577572349607941311907189187358230953561137439668347670036256927807067256329794715717659846097581349968080326223342304209864137639885719130853108127485361084580450125090724403556230148717848722329384855374289486140157248883949704277978123134968458440379096539635631654257724953381461794152387818181748243135480634727441617468929297701747445452278947636723790211210748101035989374447604845612655166391688770454849246983549895440861798174900227532762009083015606086808529528534823414408797094517454007285073986324390211799738671433080045610428567999490498877751568581849540210398748737794047215361802531552202417719122575016531947223812031375666221162052688084623321864291781954629781903401955391704505544445789145263452222417831194068936725613121868267264916616520628104326311016441601570157063646096706227257182438943638211449057419848021665727127193269348734277251353886910158943927822706099684945272341215473999084534995655634433040796594642827893173777326901540040199112409890938949108357178229995113222647518462833009443354177331168858779219652288904588462786625846026731691606520057382809639096917746206787616574038890966152635788385153176822038716754770330448843220232211427207255144680279408298667882472128081340987511313760856244099813176518744907245256866509722694951049514144503054793355839919022538341616083053853368082621795400450190764526251579601520775820598293522591964975165828086805021772991629550492351232334868033496597748924095914967921856541470216764870736403497533593044420196314929429858428066067363191681818376335264669487629164650864235604385029237983267002275160814581903362203828396017050082730013660716167984838141590100156325812077492475223589189248240419269490147880172512605043723939567373971877251492021190943557996839802996382128499401193268549042032528207861778592045870020895698903637725411738141139113927106135500033733996768216376717972054976118206250437769545946882394282158650320408748117722929574781035771643143171802371948271713217511222397305998909706299159321576115751292692614901623124958822571326617628881435440234550090394585327603103156956225876555704103173645500527693778234296669367752518770608017227580217489726751589839362518722248895944129509528968438879928410918539651919940481091609607696701508155681714937369779978593050512099721284071055617492236963391766112533149720410348572947250951456043749876437820460328606415807152489971771251765171931722446860681145974575548362799350988019972098495922880140057661703512364704621886796425522355049055829339430217186174663856587444567785109352407957770689126055175732067176084059234519573131956712093039891799400572893194153355472103917229918469316065394190953542625615222444511997411192081324596233588634528265599094922819826198995734075534472150168607890276055585929636157241981307323725978074655290753190179497632736180303485758344380049151349891030489189822179651174420329942843271689583031293223041086815428712760640210860255764352264417573465136462125700061468352281154114643937689525457938003215273484453189458259499338382146884719426588791222703726721811745972397197870400303706191536177275665399567692612142086808830435802871526464875796961793727621830029032216172902576033594685122524423467958532955367580177349972032878945515672309993980942348430869144964986998554853235130541100520165270269322166284053462088460481113173915732716884409084092647018061983644348401252504876276986850109969494420763366714802975738460688138528117234277024022029856688352433190929188789776463877126329520262738696428014149884893474593913779715606138404500226452141240592526850655647219121793649768819326870839027674401799953959420348340827443277748551469419540066116831866396410917824268948908778560789170024660779497963446532383145777985095903517002348517849008322873113221857938365977467882856618140838097693252993539974214994345977738873407229863273284923183302691114668285670415542277384521213601615559813864495599137238689045815313464821353334670478461198915600405351007316023224474987801571274986760161958905826522742665953650444878046732020986554724068136841339552956894912339883846194418997980463151783067395969715265635015861220763667941010251260323598581936643574268658339337484202057755512850670495615264498441285789759236895887470532577874471865377533816419339822504166467925467713423835428701778450420214579633702343123497543302708457653352168657601575025075510382031923522969902586656849975061393327304965288737365414188826878640651336745422505930459805139649371722792447641249699434793625433536274029615231046695373447072589601539944028009896749781101716807714973048341302732028620994325198662237583702833718026975022360256842679099309141039145951556978895918270992588645779466097054622350706850295987856316986728388027534187499065846898378238843875389582619715263936990679658224320043804559966639917801001848682218926096171800263403340316537783837022382471314223324705826702588213973135805420313114266689844686145498235119216081243824022384972646678785607553969017033676220429193347417701097934304283130214772865037088896409846088570330817415628473570011022279417565250159102294683828733442821827424583163475438888673699520766618979203756149946338210311299143485112650102573412336381956462388362291316307556782761774948597593320116454351827110275130297756455467843128260039691401353666179667989036490236696785010242750351745011126686638223091857883808696029946520428698421130741889852914876958459288908049814546070142304419031999653426624987208671572626229562413293210311955582664629347333057864468292028627177730756383436991503001281357291465200729987776783075060673836209689173938099162801539516021724866348073644472078312712020658773997246828759711673168340596442437413344741482531278717049414494506536312811273727990830610154723223593582480292086036870475153645170397425494194776811018659670325277668364033071183592565567302912820503240775489469558645780091321817796351192887664143251939322625843918582056628281079842948869680763543984865422646540090644249190546336154181712285412364757061332981148468638815586061884392397499526432108393074913864720525420444393152568615681656408969621889037338876809841052166108357947596696212172860432436751461072538352976054592414212442375274391222426269004417137890462846871797408216450849696582126711555969125764626452664054030120235481254936804426985682547338232604291778850509229198933552324067510544797035364778762133348853097025000807283040710940880716163249362290475669681105445921320558038356256364154672101067103090884571206367863938765726859808788490707154253796625198254119904070421667952377559312901640872880013994673711789922868408820420240366006833388314007739534486874869316402799302434764785421874998867088196100405436120987736330912061170828566938472355922862748040540100330334577616253778599864908498109901673880615636434317577520871975180043104908093603337565856366347596874061811274682936721143617131298150347681118325684223003676857776665953237445906995828287120014447174615175558209732577453809872244484244776411180215302946016488049110044077963381930576321945075637040186245241721147996952680498105180847930756424766380847201168995341140988687224479354819094719995710162709952072951234178429078558869773796080228582125092550723013050045254543597065324643534357783668780673707114319145306188578471744273624491843545530970678416504993271201581283325547215008162782815411501368916332104326049691909132486469178145104013204284348424359926147845312439574285439626579651466283078688476167641690042761225194352784632274638087808614430893817126269272585966462056151504360275027541798373086707669478851416555941480947848406832209256151186099943069673684892176565047104643501739555502852214870178193962767189979588545933616992329375303498212608638059521197561220271364083952230120956431839309497278062596308994195454249913124133706734849452222587959757201360565911281009527935358080910125677586472212533060195552683077640986810788403094287728016390138495188564879618360433820980822907986212531965195532321970070802739352457337637291973065191521779444402306807016244564234216766451199500699139666388343250208486337276850096998821005414717316870300873402823529224882975559709918297832407802212855550441946622843685600966236938269112554806110814073278890082431928928557782137729702135061646377294387031909291253292665059720636200667213713892096955488804876150742732342272834143892095880612154632465466508928180053011638314296633011673006655623337951216451123212381824634618112667894689287668358350365916169949771828951522606035744817465570047904059562015598778642669632709998990788954451519854881517577986688457787748146510138407224684999641496173691342243044841454731121847631617347968612215009194816572071726380233110263834421124007394858979086518736861207772437600213966132605497334196279182194760633720804070430783612129296247204757341927950012440033592700123574806823125139176310843619586345291174872311443014414842919621379957977383466139546121058773387393116309688898249029619790297594736197862846485792390979600093446985191420804912037587446690240374168516251920013253406700489041923682706215209628564574675760871969990600151144730322915872664521795992997093205181110751794900126059560083194964491142864991528009165034174997974881717269669758316526830452716810324896446334247448853838211270131765002376849041520714810230016068810070969212773992831622025905504651306880390907651737397876759339906857522467643003767391286304932040221587889742134756938583291188046228945167732070676060759626991592165761289682712475505335555242045119375311193168667449556465164692198063084241934098900878053620187354570389853574663466709136054152436840826539266968230775638892816381850730472739576820031472153881069065831378249869205175545147403629419530410879581637443170547043639242254047584863394136707989590740049396717404676087415396082191058967061754063577393195681855687541368245591715339959563261658414051512272442723771081410724036666180648904966518987162731884760502195366286095174390688035611848235431534834396252954407487854431312219766390845322207063330696805669929114149817020854294155911904635236964446919852780049616777884790940530504674155407528622303846526471160007457739938882664448908573761086238659359756218267691456508120732238920105444913418136587928300548544283780964118521924819230092969521370863791125654518359093467874272616806165082762024262813927663921736676772577056614799465298587236213021227540436415792552332869155219749942252409055353012566022493539868275403505485683342402959603519093946783574155717075381371565499563067398274872626134419389633833617338156911665108140053798641402104292774280573242571083854362759330028205612135953575278963153897220469858342209404728883213209465666087611658021700175101877662854533749410829974500655610058123093164280680728700678991614918332553278378016601413133168176499997781588950985960470179920884327109777329638386017718806162783635184581335765712235960315270176138643997606046313159774863825792506760152433983204953346941921446692103730062096519759467143644826757334549793754998956991785620932777868740935219883632103230761598536532993141056205180177451928266733687753287238618914826753937431929703524626485162995108914066734794778753368399432628607586690976865655196213552620570992568721821410774697617962320164740350753190785093578387243071924028903407200983037458496558706091397862193818191438319741622557138514174079789034108133578680774001772733397196022341692508863432628486243648805106816433126529314215786069989409121383927149323245895354240110787445282458335206683131008500850424089483421982588596139155322418761598857142514247396487174477376842179834107930531319459784662145253321542691280664562235001596087048354961947414134008319818822418137669412395928942292797612867541119172389504745695688937661702922592460817240522312278319156722452206872509798634969827595182363818286363805289545879814169313632592372055414971691005128050758084201743741434159473652025682323730895721741926900314525018103890658134029719714985190930613945730732429621062591113921040500437027330646081183217832339985541661051490274101315182182432605932949469260018337766557265516600335951944692937313929704677671315849034935421441196947476549845647485921672934684144199390865845921035002158842341971111856120237089283739832809346057311669773670060921036074570663095473833877930378456995198707795496660630795802347082226703716335250820146996179147125204072278294140486201988612584047583836771244961685119650289348016288127786269262070540598337894552246412546886077331863943036943994978061561580613555478920072815200424360411354054644460202435411349217419862384293264234962477436848463314034824047481257302584338296767650005577828825799074632737551923160785701920379737531043387588871666139837991805000335684893600197361449098124827551991278981213181681276601644265857631199125687646738828406271577268013650689456711322920185886167562346660525441302432615623455676274793347096395920781427168325700891964400611587818301741801022249688084557436391864560729002597679436556002304158121831518899302844086011829428851950504667080970209952217011858777196632458027219990691960480026346801826118794110557633267271710334863140976208648110324848640559518805550371213270876134792943744568547180273449759043275902469413337671697057359675485409115124717462688880854237306121926995189153875954273607867022973350267362927326041915132844538804252983218445947344055158804560891588089755630251503479280963985449189494290579422523163148414233413400689671524808886396576766234285604117675655655952116216395669017526339109227952888090520795177020979324171544911364709671132178006357968798393264307817051724193671895710769267940917774071471275753406849577955544500469114178004142437045781278997927959403572831560534530328955233536365741295370926191314352719779971153332568814667188511847448511927125581030546001377227662085521404102487274804207681280477059276417776591978686537502940558627505985789923056330492608871089999508874031924535667614190879422609672055850774111261497686747547458549682951715620633591206611663717033001464676045837809651324963629729268700075866155442722521237172585095378808594667749733715759679127629591240978092143185851902970784766752063035774849108339463709700121877836397641196936802590236679362540987525097626676042307041202802281106192433147513541561953145133973396918032357497598689481650916462005644278668722499005534174219386351681562449449821846343107622946328512965615415692572020876194866104449654980688098184957922714834520950230013493511539684833835134267359718203621253363413698904224623155077266577243846233763662980438160403486697815021548852520497518773373052902896457592782882175454757772673098919356205600202385121374266793137411139508345227258560366435741663463869937715422367597880201234960081749510240532487473206395450216291294197028140851161800513640042623642592008916827078225639153552164298215591197952131752976577495966562757661007888636271261038254242966903265871076345652458331475708413274193445649418943863272340874419420852427233365595994869405068808077509577069573460067163351928716933533028406795782621578906041674700439045071954017636892925412299270069376542057424618360183044240526493482369891088107367885852086931096540403659921882724478171344723440333679047479501633115550406655443911782256769523959496592097495993472580705341550237745294757138203838728711368481070479195025361787688798579442105387239130578031639252865908268248756645696436443408156099524171332164792189073793661710229978570667439968762136531910968015768593250190629886315578254140118855865698122417995012680408965629649358332583051431382651858494534105202939431695518207016934506892509087763711262809862463631576485159154214709478457001691294766889958126513988798160502134937223386107183542348762970029496555995165965377727726108689893204063552398163575253208774762625491475820448514152492433041756228569732388701346424623412834949218401376743498443607215297585363446184234494161381713314636277568536842627839895552089780316150541815951045275478775294438263454894898115938434331662551048345015492542495107495850849996940993587446033047264547436573588164575690978472329524729525850942865552404135951751726319221217218191075893946622537534221057433067220261523239111528731905182983639989425862132097744706428067736822767795566682054166917779405066209404623997074115688632110451471746741995574162165253081399820590669633778905001694411522634557311299923516291547759220787315970876082119540804684617521073567949905518715866521657878433494755036274285206952594531954238265607184430699585372378844908687518161450342484452783233871884785655342475408735162021878536640908831307496554440562471273829061250639047380815428609996258092058480652089443631131487933199362126620190944424871873752267661711870430475296342135900502839658208326999790817895694913650529433097562930396427782046663601196124999199113507128945121166625402486050805742128381651700825607095282183116542897568135464276823003276723744629615555166734736764995199752827992238847664840029234858546380687164975319610771039918354689434790915447524386314873288611488220827074248802026143582685888945894173517793172773160381661382386248151597468915511039077476210541950332581572109863798636320107790612983832385406612145863976842664923651659576973104189431599277634252413405583256162259775737989862280483209928279237145963549626786765323553107885784848198313309828015305533305677905212102752209942774149593618416229060732387671675666750713448155043261176952427607213900599196011579979689442112187069442800440341174645812721403842056108471149473834163008841337570801419192607788767473887357376423310686551396692689333649728999860075562932000075181680118212814607275914166761774758936478626880686545861775130778753375982487094561766527155574084300720570396422870727698264135728310759064251750315357326859312815692142924974965660566548679351200349966651729005399897023188419453409599102910835714294773471538611978320711704494918745889902467878848863454372454013420616522180767644306737634581816898681051462252301782210071380776145930989936888995935918867393846602458728408033170096998023713938499532557910429804042433746468683675977434707641529022756936017422294821833289261943842656543274966450085505604721155210017652587029637437407237113762726923568548034033271868946970257640591682130506210154045340037476291850232929064154346811475091537731523808060797517593184051779075182952003409407148149532103528070042898401650038398787800532708926744122671901518022061191397726453256487392683073279774194048558542757454056215076440760088417889614636382467874227616465766170797558414866326506528372664998832869485589988085215961365046154650993080674883053264211794962319119591464747202916180705331395622737696619592441709813739944134386207506142257119289466221718162819433629915891734222933251884481570857092886278010626987566393679883747021082210385979151476911059251002826327255719276003571870510279602674408121282872344353109472752411403626844630665952679207965742094188737468290621562986948714686636767833875216516912461420362088131971441212034464326226587639693429475944907047764578965082076403298290400921397781239735561395558116626614000987918044131467446426355134179345688494147909344526185418436827734515850983017815573562246683281631575527216882106205991882504147908360800814130002166719962177848925985467052035053646748610155096266031658695696813761909572726050263090575680327763401541594543416056103686090764385219358582620392037346695776548128905232849404289305180315316559177455918394308670480272941620129988366060890236030724757348375224705629830053287035620774465764127600459124309540180525847906698480582101800489392079088548710628707698456617273345669009814475892557045252206977005508984904473553230033258720682597785420382457787964367858415726475222098899096912638952329208916217533643999516827838819305032465476585539736221919494074441076536951541694973845040333962565751492232638700630633068325208970524602021085885064126905834274086917063415762514455693891415439577722185342806574692352931271087498003824878172321652514682308167241138465630255754705940645760103306445774404109185431229255278166410341541804349680455603943481593411205015174589633687606473246440287961039139585537296150916220586060253753289237607649563810531806088878069373815097263059689018090142735440533863601309076840097014825866458314711187551748869180329606430177333893738844442197887800041721104416879251835183077122469354122532901491059779472214917804860885287276160133232383591146826930067227841854781124731894376809409740896348689940920223219006961410597480947665365882629551910981455018010646826398235429627168098216643035420735247510053347706028957851771957065291812049222721648817500514565696073267468320454483126707094902442409561820559353586005149590812027785331872750788803349073779911772621163866166775229083855855171989897015241478611979562193240217052356288847396724879950170948630654396854566595033795685327509318154271411613795610707900375853656582955253988986483899525260554661388301035138261532058988772502759042444221684556461736445259952219137452234624736049013514523464411903984857744903404809453939057481324499342844434594474662629975173085831933123687848619844316138580923829340347877773275868560168632957482087131924017738936981694567614832649710170025368286741719822066768806974123178010859853639413959850215465031010629921410354993349586800429921702661743538577838146716710751587164721384467617222607887293215385615117462639949147310588370291871752033271253827303416165725218625836860775007315046633638651209567910896837214016656456755781996740669308625056107715150227547674605050593955046793876639092024049718708998608633764008575965520109155564174639895802858462210747170962356726720177049855820356112128438863330756767441451195688941046889326688360180150664314039972580916862918111978609796190902197764006171073861613107513572818432537043484539183682973822106487632199754673755335677454669544537737855051756815888720667575887186546160906080446474155465396621212154311120421908440176012345037112889536689499388532651804065999438171026889361166742500647458980245042747037261117288197848343362299269056322669303475012275408356142579710143888978837825693084684729763415177820889500096276997193968522370673488450830289048029124103486841945698061312673242230337875636534820848614152027146725548180612181555111680236286044347293854372276586314001576453824974890920401650041012119666988695695907171966830579173947498948164363299524612491009354353787837016028376246399844378516791525970842821635689461443210096895915166063792429975450924013147328016726134308442612711005658818499768983041143158354434699035034351330488968421350804429507931570245347408901876113240430049141497812479082935895656968710502164598329723387730110921830190415163479297593488776680880116711867296703303161852863270058789006862758943663260736068928929181587324716941972236096427042075986271232407276789754284111625271681984579541538404467886387137167570682501122839213097020746515778539689816449527160213746713301798614205092054836936782940144859600043059158490644297266661630336714080317201941677819970027287156994317383453430801251818048767449415249837033388792104480901769927781364737439368114696417941863359060715143230866531101579768036084182511063066593454523783661396545865427735746181559305514925559851352985089929600951314700012119276089195018050429225521173240736239737911730989508399178306974488403189098049903079943198016811534187515843664682205705422373322457918866558290815114032907497531468814658110010033900290265466698333639085732986882857384944808355461806031737361966634202814755440345901681888464540030859663667466270216237569631271291730824116917466259450741847649715393730261394120253090090578630257377261627633969960496829513030483378871420990737349956024897747524806572170337308387145152913136358686102313988747781395244925978028024072187728844025144159026232408442363526502067481423204574705573039249098192729876733479591915245162797831703085845177841098737747293158392861206924222946477699092689914608561449266843354144384168529189659607851816247919369679716672700166647144285593523912444092038626974059368045729444373621688031370561751227249117697715419393254327118446114698127414726139976836942067579755785780152210231866866719452338327073725247642314692534279421384782592204268583795443012735433107247082419693683210543781983914784493852713141215771364427114212786708601188581093372928422081351712806789377903548577033220919738078887180632151440478138430182444653467051298400065207183299350349300729357512010857991391571287220347720250315484839265068291479859535565359386862036628683521100097966976634893029367335045163477136332150372701050467337568794935409099489047441662221507319287060765767217672178546688010613404266316857478683342775384886931751639268169675117204399881856605571874777128877547982144599681765929386444041553666192109611986298789112756686721858824637500799934842057994642353225366187154958725300155063182047263545693287650027306220564042339868472078868922331390900770233486939351052728337813352419625855689584630708947174484269920230566720732014407714478862744748563429731206144072138109336353372603339337074134603759330646030462963463899904911895448131329192705955721456306910358402931427605519788489602777844789979113776119003831466882908504779481630228646836548752456461353688928957600407409299812475596882656426765375546696514209634853555258555682399361067456675734786366451371738233470696124275009765641756695104881678861195329105121612089413290010508877743093065612479133700603545564341223838789543889181724831294151403214488496855763077254905287096339107859127094950313310456839222860928331117003569385305380610322107800842752382294351125328111153653106899680489782922932089212637433470391169332641870141091983242525236339408276549658086055663587697439876990356178367996058447608178806930896948081727239971373244996560547632904443372631098561328004427324318051531790716287127826401953272214615616073351346606990657676594704988476453903720066004350937436620625443543378089677972085204457617455377569564072398183248259076604112165831880531508655344285530535037844132977563574712628934982104275267475711862723955112638093814802754553873143819926036698379103634545161357016296698669181647483463727161520876868514377967212436389290445814732431329714859531929237733462366279797851339174328337039364024449373784309792723000901182918849306123623876616342497790814844952118468644337190255199204944059631164949869024915604250914487665135674750800331421962654424884556764542573105957481351348017072025708648345112698791117188491624445205094833990847693427168664510990007882078808997912512264526836169833731634454833619181731076557026864331501087311160689717848673427696128151542319879214075110028000464663978609032156537784416408566275558647722978489790052161605845657145220724172691868562372488275822572279916354943320835872728100899147775093983072521024148728631409443835228120323090413582936003478583426928329212193572316822160534410652400376435713694057126611821040158424154899870690487198854998480408138500412717234403901448889009408450377227625495607152978916883953378081234671972485618647846750847868083090835307187137732220502431149872957346238779164845570342344696035379446007696586789048266891074350173272980622360781209916730036713197155965140660591172138073486251569588601705907514380278790002657247115939072955912906869845311156239933623761597509173696580326177148696061811189620485525174962912817543342716537782235046459506440590341222900541338417661101200800044438510300110357258332533828824423065611047291568475405118971749663797510877794837643978866692016956577358924139693790949915923092185290424797754389078874822048269329586164862501477089277861792404438774053005665770983243009291421767644055010882069517161988217332687179800542032261551313975333612868076328346419503916430208026754434989693574082286533659899212882156023246075252776347703317547066016420772478049951139882543711483092212852072655438300548015732992706618921419108985472826260944711664922195372663187255960609274796089480182592179032831129913715431418047493826259402807841821457359867567712559929333046589744917179156968389831450969588449920744681858349323184877470867622821184109964216591203442500100743832504282879457716263198700563095293436400393644621047624477636128699846086761184663399671909702788020465794235775689558158612446081533869434205467318458014971691803881862050007939061251520403778201211089293148352655175614508151910995041618322610558203736663280749092969551825471633374090489237215053855233963464209386494758628080563308586205428478046178974128898525510780802163008945438294986364850409203202320846834940799439953498176475718275342377365376788911892522879475591197889780040693239044113095964087580343327406137467867120103975123964700325464250722302997564554984073132744751433629720943497512802840515569185459316644479852147940428759211265357386088924489801466434327316571914680564105664227557035829339548871881339436192663990209562104258034874366971872769888806116852457598495949761269718617863658363535829293415430906074920933524405253201415820882851159558818105167768318273039489591380548593985623483050883075698610352336370911652593809506109286175690685946119365035591442601633746453292837716614368345964850850710654518456877654802231301836946480342926495978995364485545193116937453756174606472946040390311108559484119178079893274984750031605044443096092560063253642026299585766036503017913979118421938105700416973704761013853118982088597331443264166430587360158717093238158041116989488053938026472626524927207692320965059973214115989508986388323649749051736988055395672615027007573783124628390952278410254178607747269287916412539895555640385152135841681023910880827730419345544723292346863473847999228417650067540366530670968751282582968069445927470656762369560088934715554911518710734977846572240031492568867851801539382328920809981878682399207555690285626425683096068884786965866512153200175264500039969296754825383148161769257681304176469881894471636999533160703634834441031712685062565341267005712757564095800241739030705852918800372175857412000555132209802977894674356735983594129573950116510259413185819390648244104826642114325065431334918575143202177785368337573756228137376127648131987738440012431618980413146913728790188232067418706484757387600316191940691958362575542793369470991113323112814105665543833440359055874900857311524541632463715598390638698720837056368531401903880855213961666696037333846595093643758120697750710167558580504208155175904152235342552492592009386459138472563999479471003799469672750980361921337692802045265737389433583642752476827147138325690492701087874877482316535360679349033662209721377960476156973642913259809457428930769812464523266706251162460729221611516845265053083720353987980102438434184566223470160814244151704388057936923844352802460050345239201259310113501884926912132778053278692576699725506744710870855799479261905034332975611323639795911204059200294978915218065092956181214292602641663677532007618397767901771379771944807934489983706114738716772840618413785632688289932423573248208272137664086171766560781415486079966355568764255534331622672454954572779326733555473178746189029931709553626476367712021285186385686520479442338609204068468265160525688035568633031891955210785990920239514050737232845512086349259422464037916912053142187643761735096472820211846653082620476108251446155126408244613553910174877214645201715298699206290752087602060281654777125590169995534413425230230457938186039580265048056044518713653689411375263357751180929231154818083288693280875207698292512859422827665240975903219751023842619841023648939553947405344611174475390463245545476422572709535719186843541729987239028168251671326693634845505561086377763734737835511535626000481186574868345567878312887967881850047798784149382755743858751037234834009002397068062974594352081570798840566996325688182971090703136746371796616107329283930265923010651071603435171976911787578681689059385232108636934777475169919028644323229022209808032676080600275550869074344854565639475723708783601321817609272551435268363059594208168846383305235853658375869514392735049078312710115628234193299181709078470123142345486218042836955503191607814994623861089924206704470765241520135526240226025775321571596176135254211251514425154011684334359915785119735199678626148789423732637563733289484504867948356624006510977015530643942488519598426224237507566756203058547127649545455257994610237978389006234375824514661641768630956590305401292470226999054209299714180828256761756474399758013030498353757122995501990407909245447756027228389355993995705954567116018811442340354768092129579821365388716116327366751016454820539630501189173216101611897878060999153725745779340260689756346005001592470619053380921462419528898746925381164545248806471339551383021633306642068428787000628904464641424740431210370483093064205538218681376689766211985713860171438234338886444876326383686608499526020841991510924800815787309841506274324401637926158830310495662174936338853272567327313790699353274626893005913090290338532988482776657723510188803607250562231102656357335619352688245958681172202821222748660879677449521408354961459389795548312231934313001533945187003873853614433675535833282226930566032689352648584595486943576541346102603597817132119382012610290138564440679047045096523831318183847968355859658615931687265545135456364143241297419872689429660391809868578827698252718919919826430512179279374305845011002265469952064360901399662771656479703483357330953587939011249103822828226068775403601820472799508377392632782349422697414869938476647372572209736683395475969743832263248276826847510346850487994118882274354406398760145105968175224025851614728600230574689477146194010343080185500341700030107792525447324395946034876050509595797881069695432695002711401607149596400480629970001410804090953424383693058319107327856087100320307761660184231284174140130739845333535177578858521876419615540191628344584717493541433782082503993989526524724780983795132564668747417940118302583118321042614298060227814348997512228532863191192132953362901381429582822742817894542469036678026834537753727184517742263899292918324859312602670424818989266287995172977971748664103130062582453669385630806727770869391646921506958034281741189467269177260461196617775705449640748896719859530297945039082033207561666598249457333789854973986477383497254355049099827097277647058064054867778009482364878289021123161051162177942145184692178345964976408774170287758146209666673030691332825629098525581800512176249039455514118418066970575782956867040150637581992293194417210185461662909727260619711746301387987002454511110228369899816253098392540431678703711276014927996978576784745631225894635100519180737009376317723498927141434488634329609329418618552527199617532375651591233149618490940173359806151738933963810740754584682432541972907033177274555973535509283885266478386853578164254348272299083856673220867431597745004842222726935853182615390108951807381697391121990718028480860598469684519440923803312760264007447421780193191331034795676430928632902584866885347189448593274663440958274119299020859694564077556906086452272208790672603325718975278530873751166637227864878889408975533781278782043180172783054246130594211520932520266929023512753892053841672228444062686267634865394871852544193057538325190166591329271499708632000766372441541567249051270401031994806816595792010749986130013868427797140206283785872567700930761998860657214332311047036592092577594188153463540745940935607178457860916208332314959228354191876831690104024447182040190257012693080891313601074943300305444621697470316082732265678831237435559656470310073787911142155646617830465532348425354091383186989352555026869771427285106774679637478411596363099119395384163416317456068296324354481035739067277568891104126089666504307021697801094817363459167472561462541735073726423397640858116221093535300167626762552359278465446171478535139381561415463212047273337772401411469194514911225219349718104867300855768270422155260437608733119279049151702519608347762352712843607480712904886407429937954093004603806349220190509514892768251464309610468884215609633284159605031490124068326549146136143015170413115709001151156557869549065290414415809403595451439091849023991290358124439604098568396220726849076127621173252768067968555297036025286082589459280563068603043685201170482031002315710259311936914874031388785497035008992715615833516509000275687546266652769908806003576295366124988297606460861698655556562999969607147200813091833963504024112231076423705815594570131747491125996163491886335047548763141089829275803411716499202729282586988204385505962303524504547088321809394196827547948889751781361658204170232756908271575053150316195833848652607146440502965085873144985440406705593368117532648807471567490370256664810983591351830086174686338899429810789364176691210522778162345406734341437271157351807946475018658412022995229392772478726566945384622689432218486896989289138761341314664738314947999201876521568467719377858462904003545754163879749785573041196081847533762413418731800897800034099974336266009532617906570915966079828227131035978755389260525184456426273656216206265275098595964004427221964604342628572096202055765726521827283365839529402650604067930667405911585364501400711447078365073243415325523217981120292200389374514736711396135741567345209203935090576590644733782860584528683352171759047978358207717803009225997367244376984538099764628507294153266926691399297324572899010385549738677775377138264863436446982313357752572429777204065098131433805975762226154378412954693100869531618900077160691023327137864760254395680071612070569252164517130505504221707714478056229881478217188857434718319498256336371654653668908379074185684691014890200603412136413259152115262947056683947257223498939986886802420598602075407611382856257431945525118062408156546634375554108314454109040565964530434659761211016700709474133301071073384490601217383686432092076312603244715347411376907250125754234890993096867341294202708596170651397649361647057479283674787831101877449244392109430540799888921535278756533523384491664344195650181749548753316808680279815562374619019261991882241607164355295090652929998904576943026295096521212183602500005450002111458338834078182443804820033268135537895568303973896822182049737908129236936285419977668027099212607981444412453060414831734609275713471430069836612337655198143577492679110676530083705478519829121342090716001644528354317298242063639804809439697377698335678318135878311391488028162511376806653226893333106649629072877998821686085341972726175360299426065463894171780230544385820174539967505368761861570039873019152026618549259435874831079314012048141660271686301412084711353058677461008096280957351097117773093465895118303329037752354650663421688270553562847917304438669766140737450770882523289170471675356845793182669302303535290253635037750466230116061583920310074182738874690797896356843684128006770813646727819484576228632376298845014279178906411475961530665085700914112629268965701202841064500678771429597823073180222889903905337113334574573211286037707257687841726873553997396272314278768344771335541170204828478825275653873269336588953025332746072399978890789807042703481984535446793154811574971050763838233338959996472055375022176439637631076175640235157541207965592829713899729100388784169835336251930014126651321004043497295370843529747972958322953404287255908850637770674899893812099043832282486882776399225437119051182309635016144684562128333518403591833714627084370078450466035688046181461133825119552137331776951516873574467620179995474053580407599947081554386308932205730721664925600304970418072986560915317237982830435242506852755390115273368678340065839807896006693718392655908572962432325317946312957608714128067766997603748234243267794758903848781877507955980307265705227930527376364976073776819784287926042897933439505197906392628486903590306333364371690562888418848928547293176934761785654252216294449200411020974865476787547611623932883837464654361489811134669012311787270392122247396241998066924156631952648240807591551912999967065832833241957183733273475624278397220487713399554655418112774056479169048041799413294593706425278087901799310951449308048597344575850885724177908651144703108306458614751671153858489035671331081250262765830518636255670721779966438876614230371017223637907699899007661617426552731217035558165721467798082730363591620332679031894307745619682348712190650999572917499452072603089715267532280636088241672460790561134435924416613875091481158017400046173001021626112526265917608673844549654191007681151822514869949902418391035148360410807001973072804513480785690902802059846117984711435726628743939574771093078556926832650306639637305043765284923104877233750893457986121133792203620995720009747044380485622267990280797756779855055433966209263437941479164747660872683841588022454906466077075683449764042760651365088772605052327100930374386252150855652651827584128670240280050336913396222844028998170516250054616288196193992231980051069217555663373460341810208404785427494727442498769239454082507541480324093544793915642902940229470419640265169177334331104373446208820224183080651567905291745667626313667650165621297117825587714538937449303443848168934616047329951331129560089507503793509761470715815496542724069111598156846106619559989973909336412556430397760225108249971479050963940738143230929425072598128939767267508417837278212668141466480255536584236307386098879321619060168876225378343959038083596692483239694165568427554381529543007627322494508712318622862505974313397066538420020037671118059145038148098844933464623538168613851634412988668564456339225651374719506834868937390292653745834493493288596521449911776572504178428848694344044151457924069792043778704493326666874862739523200779130810165750988082151583128824335527363840689244321840183876294759976315168840781949011642004690648580278017058537050023876100366591684189904171721129432021158180018527062954060156625031843581697528525443972267695787650231999170308504071926540545020463416549378418452664497464214388233102180094056805108131901761968795432020782012778873078241248840597657528965557707328792442635449922176506513730551095395910917391053680467086322833805422874017504371104616515720277604821217266244130167403657725873589658947225539877027301636001858827744463377191365789278037321373031166210902045080568949749457505842510623902115959583076260205066516314314776667450864729745771837678116952228102180269746766143194825933660922432212193427695986860297787139098962792051250172163651079850098135889157782312635555015120988288125686213014900081630366642674173071815894405049781010714293854499183302803503009510804855227943559694214059305630256589139367911185555466745054442294823395716350097835901027868627458148942181145416468994431938893813930434574992700265452996147067157859187567626166616547364939360868937752396441041511226961852988220974346574361758704069391817935753798034965304711499704336838970371835774895625763187430042007689004479948928225242669780535938867162053924895219982556183565371542283546820406784023339503097319841553394784150757104746801309460159260893283603142374884165824337593698960320402880340128758999420667629601634334676019759127634160989121320390953371014374728822116689264588477354977309715314647596986515962455294435730322793236478742532112762195055963647274431618361037787666169781475965645418292289056217858480302977423741860491070401838729085759996553890155804363939491443934274794972656466827200532262936633453908569859031502100006615225770463442011794271269978767211630778724607179205060466221028214171182084749530155509193491580152719961843245858611800912988051784322938384719302741066435892221178983648031070810743891404638076527754463098306042061814402198675645521683897496625674983672075663365582210326848115426671530351138499080357790094209884197369096549117910281772710400196633526806758385511951677037666147316014046143517078762904375427531789379954287228901848917319255118467199584107297602496646283070381308331633675100772926447102850992709979860643728010986848459318238933336584870212021222263554243243851560617179756401303020237126612670132003543461762939388919605767818107137131227561193077595076642576971102792681603923649752938046442881843294441095209530731442907433424757520856678714636171789970290811605217933865512980069232527592181291030711298297930681447721162293858080350496727838939110623390220648757991017788566925128059280250504308196468251271824031601104053846089693043909234873522018097245899857425109869302380986823437239548291877699166348945385559931140126970889537387209163995696111171847491307610388697366949198489271856915935655412498744663948003207150569134474389180980793691698438857013581015674023428563377695170694540681047564525477226743088457526476718684375216733807273124591959961001780452126720464981885942511715665022563570006918517117006977176819819628204980467322819195666546201162702952001130729712845521790519948136598544018291522716862403392995672523511761897843540824080299109969743086303980553456798000966565786712587728092472623296598997097576810652300178434951067260099057895308031371464413354446437680846332213902435350584008151984592200114873304764987010101487773478135680308280841996172405314119909613290095496070341248407567251660948100762351969515684998468575786867903186674427488932547353281769716321442462181462339089828232363727835446642879766397983741906589220897986189972710693285831915976356291082059913924262655419287256456779021891304465717670335011962815282960694673214891349966472276474921630408584371059676946722940426603010883646791235074104290394505768336703879198251410821526019529918089400192259754439351452303497683831030743843800658699336455885369213168366246273380803634743330098477197585238313232085919127571204380192385005882844830505236447726506395310876986704453678647657371252857395660404126096583393133576781129437069337703594462250090155848600647822976913359814517246977015844979482548548591188395542019342069837274585442147400147920919012161599763387211205839661868238889859324521728177844270041619157119029000693050169318296983989845504646200797290206542522131579989446871678690256324410947293217687713560491675906128092405581823008207456025463600944614935618800959544343171598830440288419345226167793043707883587379882067655791283141781429704018638612302831901629582518430024355977187955466676511688784872684917052033205029246042312138668888864381201242966436072878314775066371473335362147031667731342920265369976320723906198601068148184190193358083008035614148478285524782691532858236886184395272497136308596020552311168089816873644116461260524330794571682835728640443144191969009537609789554023659769207295149514464358384072593855598986673951987592197408920116844024380148703867917838034254415894396446073579473179893116598070120936757815826926095706094555628689480874286797279048840256694871442781241491536420361759453468088783694486639573316789127699622165640805074771925898193605614151922552685508388898010652458304896237438053229823789040641791743234232444534758910940437616669890711531178356097668723639785323351043404192928381909391444003415934575709048378768120852798753493300058619600154490586085574662254680850295054811552573917467441581596207947071433493077276291776520017725765845682276480649086728217288346041716903180525770870155976544985956697786996263010844574682857970177098767765816784819068809252677390630026392815495393005398125718182891630510977781040848542447741927202997860801367350855488551239350590052055810391967902087940007029980468143080558671874429019067568762662477987937803841931759593278073959021604937103390748539937186143115115500508966869117140470669902438461281996868962770170055576675618585925256300108854281999909186477267652379393330004178082247267398210006173041043589650577811267293984811981396505338578038921676556554429206941149866567237053952114499548894728194241968364354429574583337961404081111354054807665972434570434102905398383830292036431741430968662424825835801884971230805516085975744415341218145295618397176362751228935883353906149058057663180836479333131085513953838955408984501125083054334319954629377623405354743294336984713997116205830751363700597455603559107361311852217038289877344145156116757884608532710661956297503837510918660090162724306698778551683539273165573485481319932452308447733108408703379255138235201743168084143506950681764705546863712460394673436036896293331797454472734933696031202819905678641778798349093265300219977567066919702260670535890157754772280742326861961108991050926095987016182717662843650839013441674013066128930442510365194871164732617075341894670820348748067811876813122836211127001280060117039530249540608877358288501385998362125541458662269180148831038947341091519974264781063482295919424408914793336121288584502960239356145061039331315080374110042759040013915521135565603044610989977230595371794081419981613433033965617268909039350436071029374771467565282933718083093466674555382983263536721750379416863652570261795533495013785828494628910807250964096019224691948471788335900664022528986347535048805321391442235539735622978217896181871439293829157309037765010646533121521476272061290669303784977914105412919531323990386935140803370246853206478240785687824707501032197336733946367751382315214137191855607765100638588326383044407850752638136060727794556633921709281018839364506830096449764049652829923894555926132109630009713703220737358470843922374829900653807783613855210963606567038720480162742541689129232222880274545015568648394973004119614115391100908356698934676338594260134396704408137484488879380408573049955818639041861895149383148002045666908959179009918955090809607532453294069158639928773277137498268803431270561997714781357502679438560353980948934398151766107367090062826955331377939334854618624713470972340712254731023132888273457425132153538299588713679943679476299018998410643877533081275380432530624429411842825839119298693415908728856125192770187799655603700391795096194441782138236744848253940875284505440476860249278248880820319749577689192188944521231995252729040906200044291396317748979588986202182154480529594126294146850838781650929708739820260663113317155742029653656656452801611283111360181922261607790321400297662440724014266965955838901840389067060741558597078610167684608228863054316217123566456143470536636194003164515391228870207058534740069875551752396108767607848882203570930141904343224136659567931870610546475660666515719552270664209049363690996066254863448683011952646563619301093222019553748759963310207404536867997482565105514726605512959650948555604755651209470432273827669679204060453156508438111766352002460913054161373964093658295098290635759665348953252362761106776622560307721974431324431317049109110763776364925637378481298965612114319818141146479305434116645927204923118977853062987019176245382237679734615754110998033429707737444263785567911111497837426410725470800992043559408925603816750989334847021610463399539013061718921989467244065202643659941773109365003601071536533802827946806936791386060094321781064234725078914043704832767055890951648915246890054771510618892691554386380635489496366980863901169736590958763017113045419900757454762195605215778786029759018548284389522335398201947150719715442719301163712899659009766267901531889003804852936149956860611054127349266302609659549633778434168415014774649092837117299268929437890845719156489522847492994343497113278580268260429877854415172335997456656196483243486123358832871968336537490886863163595087274258049200357585504369040625789139356633212802321561927908494680517347094452431347132394052639945929172949689041281717853601687092306328105936174197835138070997127806998770031249765786527394721732092139266447023262145180444680576417217838735993318737345079087656600806784818544667463071669531707634316135303746043527012814184693352637956487511820524185016104119336241170584931161724257169020165455221234772922220260014800583994497186438707520953324954540859692870731482154626536696608807653469391189617421209201921670678112125649343939433755614766113762726871926370984496873182017610883877617309004712529007701311707213371168354249685139455070376221568056845151736629628908296570652028636104491299000844973219780409980693010505039411033953001129980007015361929111954553752623502292476325389249765381909483828945164351803406154211335679936040324493462605291115293589534829533577281688087240827225820490258285481167192072641547060591588286246459061278645493326839759917231277942341498325834855683683660259331195866482169447928599153317678725526228987112772102410218364780537426204745805826870170150448204926026300821546593444193787259954167837810843437069614855016573906760284042361778879278942317242974134801667369563021192614044201250088616890592372175828877709772131619723202705616985335861527879690016965909559129294971126726699557626181454167846368971936704855364616026164835438499356059591304964164608600869084226234441351069076840888131506530511228934193540477003178946744413734282105266340797346603044825710767161605574721236482363752665802233517140398899654685686815380974867254539427274073649288329721184105210208743804109297494670183141780200436782939745905222711308629503145208515735115026582736848670991107424194081749324805556549366745695734173621308440345995757664099947961032756661146433989620154163709636189850950428316839054641446009707628647293551414498318783383116373030786836791247437878957976825741872585340487152875392977769325038208637101033661046016063860800346267682737545094447152323366488065705125933026742297084469099089834391447443991593489909753551946296922053392474234415512542082872563682452058583047840704701729541021783308412749148964512341970949908555045739073029284952446818056918356234508569249415022433351924004324784989723004791597541505163899101293666164678380933259907030199302279176022744053274290818908982409563346616908039040398298625688729147150767512824624837137547612104367021849136914366408452814376968349076508366994213927010911649863501636347811031423992792807355937156346000920088298069591677186899378790382030120551294911703630531776644265206453427967034009037976617433324343071803638553421222567767874015539766903873587230089792555785604402734453770428342511660328365383358464114527347340285694958647379590283610511915329401563183003178051962789271368534645557241670047516579947478940532948804623868166082392276769069884878329695050244721609624770378893200167879113354072871831281339059849146612315830426913678872597103834034579949214212445370249464972697940711872187746951569095362622473682925509088649740221209588435914428554114382460053504416163944952068259208085166020708942564096852618766346424684584210751839249417642285119754350916253177437212209788741684359078212709245731084804574014745868427960002643024403694959032265334666674272091654744489215323184470282026729535904126858756998412277620805551037986810908128455781501783766133698821755965224029388532196057843734619092463006281195565844338012425724438219556665553643997720221126927367749412907108760042894219210327475284198513095695830975998116459468806477451224423898098444473071168650608141771750652161326189782339997299153995680125167861587596748822080000748511680306164065171771638519101507319628018088933023965560244758708535224775850012627174237132775913879317301889576430199458978908248814198642716809053278836443369819287074967493895055269448309095359019924207547040239486861676386672317176632040749039213666028726105343042964759736102703854115158008820024722284051890467148309256287135532133143072815460328760233881039361118886954160401847540985598207205764524353088785293216394862216800928571579962454333778045800432091404712488987594376330039482291560713086280945207542190681831146014809847088916584430473702267057080727590184609375912961701221713628869365676161184717232738228926332842019605728056058558954660371735831957635179405640273081141397410606658484771375575422997961729343032613152604563585069917623091468047249517404878961621579026904281464032094915785585430311161980582561628072998877709537156761715696618263234153143741059482660084463354483944076616305841669655938866383679185884828782399853429202579423074953744675608746069225354336295215985182788739748520357196421383227220843534909678965501523831274595639825316626457265753346091540302481528377926391487775696040258280037642576691426424256126218277800161634297438376892010023658538491983656022690012709421331012710643472544194279960257493769459694176017072188890087578729001436246432258989403527385388786771893641582843316264853863953595842249173558567631484947206094625894748963612234583904611392728001185544842498429277099556898329846298066282093052543114694593946060675457632224923565128114985307078321735520487809091397520534224059773050518027315775555681941465568140959180006988084712736912378970204490973466634425682794744213836951657511963698407557068543112826213804685992426031579459558384345357275556853502587867598831551750078294362823302517162981228081554911635066394454885293809089110837969413739847153652968143508629924269388967461756311603608562102623042829538504236678267671533975027081280748334506812444606908236151952622581479384533477055289798718748264317907250874577143925811583757894375967799827711919649983004587428804873629089851889501478943143198037438832841461705003960726849543933031231687321565894223713865651695065564101145487059115429626634926665189188826562731571614123537625006487409224333208508044139809528764769398097044251954010659437856008446717300600722092253284748502421827267486400083987139653316472136506615554336415005761809547581521042793279871954323396474350819805263782739712440197534697703007976938281708212737831082322276060706824945547359510050412876365102544360513652337506242159603084976225965497214995365001440864462432908223207550806540806310929780998116202816056130032880078609581791380487682812604987761114831655968440795673956322086274090056237136758346191999025937639676817386014597986802718453421171934308551872498005323040903340617384536793066668930548351300918160357809159780783283526099898142007054101565442581719337322189090493557777261036456000739161357856303351940643886233400011299309501016249127528366973197712315702101641056808998478415628925246278247175388314854433017076271853608726133340192931739725841338157111920765130094902415366234507776262637457297179072664686183727217819778143818246896745192924767852762723029381608344489921997270028208359197353831732556187406955248568673438010248792756764841878970392622809813545470581937919884753818349096296296535062048115420757053553192066034186420536421695608691311335517215461648467762474976703569358781226345769047316138650871838316672282831720686279189455443022260014987272642650116762084562858132637179302248140683503254719064090130295292552803756871449908535924437507487617233867111807085303193822455436828780601743623098981370108595195967119495082929509423073791799868651231549068605953610004510561923121644598091108138574495440368629743313409428557586151513030762593562746346443209206559154457004501510707363292174053191102500521851093554917558285160930227813487142056775132868537395156113403603870566528869381775699146866734959989694177655970144559675917788358069464662404076662636385879546951637275710111696787563613948803643940589638217546067723796556004802362381070209576543727683036124838127319021398316268198503792552873667905061066069192308105722663916207448149819954410759503407404137940809336308528513660317471604146220101460695030560048138419978367791907104413539822030374142504698680845472625653515608448622180325644340954110604876948057950316317439133860329570836491403718178985348106221706123205519596845685026700189492164539061193401723539542489450327229502661470830570873764038765892090970724627587180602591511020145955147558826729032010614165191424062397850939728802472254157088583399754215967412628793777321351369814838550519617558250776525975061567420235777062035860499696271266295924336176685657056077775609260662885756168083513593327920019199367905514534171027511113008385199643551548223699689093395011527009067537226403263680018031492140566968006355372030893020788450446836273506254442768372285138809767167751723644969696957009753060805813109568781388581595039467112526762023672274200212663938868604499476756299080360082580496099061300871811800222799788522163469027292354686641936943973599464794924922943091947154236881661951406742560317173244544966712209215193685849048179958836254946347328892574498261053559375889764393203555017418446537638992961829793882437962586882189401417071397323267367221271642036946785657459017207395821360869968301765508196924607238496548282988651562025546291001539990591272677046167015565571503059820042171078977181977938091528029127060503354316301434070622466983658477014456721242146744502626572332362300428561977794551424113611906507651419007994367531892115217104634563838754757676522594278765055896876865275748875858661967636538370006861673246223653166223850003531585580520370435065796750221172612534278826363687038658618753445310067113922272499652698163534955319845895941059222947006078160903553979150687247488836244315254804498734031090738486862103040469490608672201984536524799558550328975188477800147095038697970728292320119654683945930781154841018862664152292641645357125334746566880109240682992441506331201990915152791763296253564051806143977935434975267825754142569020643709828795119447046093630813716069923373304380542895662209429145755322977744001095850263021784534717688803361321869499010238219027925340902616297354041945046438762593707100468330523465442838053338103136743035666439765854220553035576709447263901900919809580962264454748014078660560297689776237497767085024285351368758594035547541779924115884894448097339687916194817031964133024072188889423159701692511427738485687334244160903010886497791736223371645122139741455261074144966913809676369751629734297736569663845647260295990997817993405108677016196924619699753344475900983721507092615835114275034500255186125261077916020397854107492380145705568765643698716241953388618297046598743706262433384796381301676679248166449696866653593816312632763141008065397825675932893792725335200648254486889941444591470031319926024117795601404740441633443328954502838115440501379735662029222167162595918417677300164376406409874610846906393571276653777958034450076754030847067145499544438496225973645247919465463974461045142769021666465497838061666349182187279723928295260186003335334910516117899960045021074282412295310059567537978900517470935168306275272363369195325037231047298899628110341549608890111519189539205857081279642539413244781354559067677824761066830804567695144229325705599508748550593232705702042128502285003242597102917375770363596600728962161688843993205995031927544948387561254157007513256789601612334721182161381536817738074274383204374327741675973744340696698885831303364345624278781586482343522898491344666486935525089605376987209692181907445549100419008519869867423052018098969872768571937110037199529051643036405362020620902417581211373039893872641586195526472983097452635926511360625982514878916557708233285943056691810461813469310456567297727381266176828612104393261858412208166258237484598419880009140752016579671571803377849761592812117074873688591899502119002189555772892049775791556482327706254118194308968924611508546335012028826260729170961665628674510026315343540768247147144221478018527570830802474253951012812706328567460338189893155724004383447194675209486407833178415257804259431309283976099507050791535687845316602520042806975234710578354644797276510985114027347215422067224891790022122010990690397060602980263441880186857779324781972806890988250453171973662777934161358076568462093587827181138072736843025627140267245476174870210115808194522080379436432222699769099339191482057855026493903641213033076174528323166309521314815218260958078733538124046006860654793078454986759626551889770416921849295837938082395115347272803286185832637580792212592494043524219816998778747574116421737958717820264560860981828507528317257721257026707346700904297678108310093286548089833865534543551498205479964384209710685065733243500957530798558530278703749557596699757675572477686494119304184345815877762346003013677301936138173889067025784236027961235726674676317051041227835511238294152706314650271964260023243557447043161218172265773899040934241893344973141508481487420204383060717429024303612179029237170523797526665276683595770771939374875719114573939899182513434472695540080621658590533889597302488997753620115812298864567815602785065265083457515130090162929079241488444081695870956610956199450327640166917127562533466803792247904249195864586293051711216821035423326514539567006456639496439653171754007760040102453480973821874871314729871656520858869961939610954392755895876272472539086379142566355075695173034506800060378115900305040452087132948406665012057162761122433679782720382259482815337945725072284745488597237962114206365593239101872753923930681780713239599144292435216606110289756609812586147812661904049249548208092050007258854920620064322741459991361489045135033240470983553544922393475522441839467354075490813586141574340183164692580417946211811519871799359033740213333500469053480500654046226014722825522523012857109183105669398516257848209895662388328532087795053904322572266581496807963272530824698358638167684285850313202897533064319167122349920692865320704863505925673029958739491808964107619991088905035209187824854908819286364505299947084720172578529576314243183609318959294420765561062670024567050681294528198854032059868948508894472351839506815875744744149972928528053679838308585540471007261158562252982610632089840245752189186904505027508160341340132552645755374507744614452456720301139108955735130460944178673713938665358408068836123141289071129803298387068719867935845168371696549537094070094889552006329506492896411157409603880480051815239435368950365124283077186026936412044669064009730975296788259954956125895674514557588816153029484636091237931328421530442824234195005526342982305489766945192169438762595935340518555237081860785140415475298384336980193175620490491718475222310365081269735404129721182706639578494964641357446322086687157539863904008737637381865433831080475819457403010679011190331130048361057623934496384032473725283208516902956962999902751724533740103632017361858143760202967414708351475414361215528160221424076178212601068917301812403332674204954702737925562347262409594888808029691502433020385398657654330613869417331831854408022428141989884099634907750350861388306987187188738266376542443451881619546011607703027013712744757006357205404119469897282338858984057887493484415143616949790883124290301376849713488898154335687591495670074208982061544285092836559064931425839800914702781816823218669458833477621023727961494053772191288962067955527099912858035910348355985160036149062780914312223084028614167204616256289687531629833335424915231833198038123451724817610867912743665869896120556685699080218798606367717541973869131728541027697449608933079287923008574117688212354997002168609362088678869027845348602575797605176068909913211761226918722450873393067716751505523315715755418359734045297718578597084594472433898679047473881332185528704568111202436185559322041513945049712291423799093915472768488381336840928519373570942933439558325990161376002296364927895913128254120082056973765823882157521767901737910378099323044168437015278580372901780007613990146978117258649434548078958406034176216391341251166403188228922001762601280790588189932586262397838062562706607949766399498557424394105197698810533879891993394349219592251118612086535541583711252963554797640697962818609189661947672194843648680746322950295322369652983790319485889644951632017157182758117321507312568355899722704746835356291299877006008632088164960339066904971273452448991991630758479679640313988894142892444231011553331899849277123561452571480156934102110050366862620881118284448374729314715763756400196979757702296215081574336461464291211108975949960871097815484635630407167919063737616389770767356385603700726927721902673534916965605400180641963548587653690878308035786389111431310984101417694439266347147426938914646453804751470837132374088633999541391835851972786718018274342593875473214572886189948877157461192316923948426301185516538085871454446653510493981216455077829110634651980188138053849978853918466015223391220440902314120046403199803222216824674471868798629865748816211813870760584765966719023375682597785896748141361681943179568465693945351089220044238210523452261282641689256736229990453783266886910795262677757113972742948889328739127521083131289216974457544894170304166841826038518102419491784865485229946334702172709666453631160462344664935313731290229240894978122993220942642388142773056817205404899265374760207346661258785659796813784050652953352121309266115098144531903312157196529250493498140599290655145231655014050272780063493995685332685519442409584080691990422729861453442460482190863465969426104669823471947203226148216149231163605195226130730496797267334915073395258557103074355994370739930493383570856668047165826015750280062216834696604761338304460187712373638429282178271700669891620019578148128421057893766747246239395382514248898856428933131642996804666418110542594823395410244318589207604465247093138364353135768568525031213648757435201063167810943308806738796546384179550947351521337161769130511175662577188849620910507255330015755223188969217292492851382073295893745199874744430861767751980781913261365963770700092592521617400689638877304652653031462807040829027898136223042052220162713461943690475541449086922719248769827638504111424300765476991805882984812981012449100288404277759796170885795010308690863665239347715041499745648798129096371389314555057575288468465022233379796926982266435071720158897070171721285727477392002018769019621736194745574227043767113684677935561000681374248494869053637200008485564877424996594215375916375553961415664493916860926280047102405302807474407412575640362927967986425976522722503524819379413181980777797616680062465035726985177122083142308650391697120473187050029508212165080966548303062825559456133623504205475459192683726857921086080450708741999312283658689028154308797948494339732357269156472774289288729223653495180254756390792970502747484168463305702104686795484671261505356361513455304460999593070297273129965886984744535881857802470234693071713082238337316500069189043454243304106869549124367181302209626575344676648909920787566345781128146272028568093018205170778393906453423145417827727675729265621989252526893622074167742681120565210511948354573521671530400353354392413559657882831928271997457761455328882740003441376710764438337882368030550846724753351361164852596542658503461527619099750685828506682823319321230791433938966161424959402559526092997756507100518801010831715687779953540439223231755949240639767827591653957244513257117831463913017690188694863869409418653831744328064643298715713908426129301650853735953109834416069632232064422964651560785899043110550125479574618166222066098990644618528361969417725539830790731205516435795825298896162469483483790147619468920182980323625057871196818711284982396079159574676068831459978708399697030070957311833602295715101435799530822225535460786329654592444275149850968544065238881100959471183490078161375985617927448588270343629039605115045680396859951504199155969875922966086312306059419525561928347642860096681159254292745702699571216819545512664386563845417814052362969925162439775118788527470264481932917344804482870763346548517705587674595227590095404683222421728374831626900994008561393252730283151989353729626775574419968133453908000939191578450406911096680979205112473667245442189069038930739085468236482629096204314940374686616488110905807192467761196744395071876675574116985789195843057568194780369632908537230907794471430702956951626352020708563487920177761918242779391529527877596536839510162450688392588730327350111350795365815563908721401869283956709576067651185624305262501776818380856445031657609964189817583562260228156393881762122649786882719938307585802078416753451056396039207239242539374168151881762041474730611710659541978149451718301978120636018367747319669854936332440161088518665189272100614315241607444079511315301716196505237016253126366872656551806046253307159741683231595506849570722140730114121320979709095587723309047502389047641633722792637303439598626805397174888021539820366658631479284872279477719313079742012236520529431455189101353853341354575063923331613606260616920308497026981828429430895501073992496682226564974306634519052021315006829963530219056389849777130565256447611787708610063187648912989455821720414714725479466830134807804541333344814540904618942916858690050831941098069734821801928469394776311537213493134103526243052736250817751417049033538301841799723076687129378310486894351990986932084327739948292868272691970752427380433072724145466194753455609340157049945579310829544475615053982238296369733396326736232078812574575136157838683731570038671042378010428039091484110685357075719794029762116478381887687180492512463625761921324615517532081569066501944938290986634571368339104879146071176158904742716269233607276301145813724543382104013970763942537448667631701566408587104449668373555041829565051909333407998216169706909081448907519423045471321601835479952498716749271802679484274386194643369172653143229024806168624863929873565915743707701662398615581986190227336618416727155519198401824646999292043197008657508854814142964034891919768144586823091397469986420658303745678247231315413099301782023256727992166110491502919336692663057001767288945062767296298857518591021991477618612439027047536631355324159533958632697146628353047301296578857284873225650777526455187663227578394993581590988790941925980535719013537749604562719902334726485742120067921256434934482407353448058594235738825475900905320489844733269786007369098333464678943798288694752423949531382713560416871437552178203114417829344429288331316509235840389048745571171954167100065061448875867575876328187960277430719083129404703102058258779566728528384991927029316539225602019330871953443511812917596733868660582698312224782110734553515750197694590782000400211706352399764360153422403726156736180620511030738815153447489801302433174930671778107336336727047412320347703027651108497765100512384011384762507973849011626675608887980812380538824891313242583778094100084654736361916417739889470632283749723567696102017008197078269826433114325541977759525074687218859360893852741506471625868160027602412701673216194404692056527060364406424575685314538475555777632479793173173066274776215894819603690867275943236335900040106200677119481129880254722262433618128641013186208578546966696034298795538720186980685574172699992138585874758061562911940664837306055662662574798426995007573067056212240231788717508025404118915290736322687074381324261144497816684056716596199428881964918733333776066116041154255861899719553718923758313349500465549579349039286120117421867692224820182880861139991283635009937104881358838650925266009392316410383922433488352273200547115015003228415048494891907302227687081343039420146742525343691592101973400631647284068121849860417107524645839294244840250677306181066295084758267002935898779003759185696042710030834151097315107732537647785377006648941206588502169518127157365576294431651093978623669261869416603834093553024647641510191878370767784464381556226083527777049511597167042044058940525195835553040214899493568475265375873227491360082926818121096663312625249477197252550701293607134809843268677432378437329543059329161021198730896313469607692478583929587757586450572390846008644259766037897078619025869200860786291806991044129529708837213602955177365274834414776452324278317921466377888929697387862898086050032009943030558181636792260287419999049443764896185332149565971960861792736968142017674260729739264161269411371703083857640721634042181447644061653171977583704205035635722122987071651007658951301241604824949450775090754753678024194650397701863330561474025832778827601310397154328499864578217872245538604402735318196076842394676338488607758010623090228301162419097896245497863528384865373141955590959865877332632774620346556137330414892305036446278122348602980760042010299706113793176823126018075562792217775836563136729709975456276075493967336092583305031296088407930853529607143203663622927546826887401302060980757062129867204674142835447390398494854261269915634611097041250599969498775383484951652419355608240083175815888666543413205600863728773405144979347676413385450315691461882943188458496866816074704030900415076215532840523418104945093725929194459311003797839936089038585721973545393258067117826368585707374363891770226228715743108215695601092888420855846950489410147125335564562966404050407350386434509638006543068017263622099619626198684961783817387622904018354470747768100710493873037710401831228588779964801183403336102986778655724708100181003215394613822035244724285543981889107030922175987695428274122078416526139133944295706706217489221483651898597160716987849935984118968785237929667647753769888175364187773387337348980376293505520773118942465155523557177718538450793109180624524664360428488124768958560223765405369886439329975667773709256722529804426361929359986126212101577024308811626106240463810769621043762793050003747866186790869752000471361344255441734697103685869855436862881913016422597162760181534881328101060699232145668276679350982203564500529158969373949998062413902139862414530221576579868725580350025189273532141942379240486132538052009334161104168388256831655289705847052036538944124238905439694109490173309783495227419293684929242312595584040064575828413047737707886619039047020820734665436376241349926163209198364039659436967217582387487871728256829764818797216378545601217014941634218504356512279038720824095222498884157319759760878543101652863051249972613984579280929342217951646071690807833183178735172772340721820202734285933162001897978817997522988236627543320317670298074692662057817561924729628055252601643517465202149908933051210279295727738613381787563290359996247471293661908375240256220862433005009347034974970155272529215598284478046877569800649207124579745914964923889454192902264907409664148471103077094535567067315860727595025221597792615696705372560460695192206338909085793288853693034409382951910926670949080135987808795608130476339450690477823369883903009333676173332943834225792099891574516262769789302000297340573956679845312209294439224528448275173788879222581400920065439030294227049356172515991872489217038901490361931799173879199405989423488791355276932553929646106422938482095582203877708018348589256361564184525562876297337799104471739835342311291384095799409515116057729754851600726477262708138815164197623658582557251023961439551613299796994503046663041470379981780036351366827716382573273114078585674846384362461861579134994524541272625523571588218281629631376048039945678402029595023529611481550513011225920413980003917609980873496001882542150602653458958062875467303639293129707506399859868571675794295571700873539493559195690466913324261516178541625790779492355398476003076778800260482917387791501056244354290592902793985476421058119875182253518123648473867530212428593397718250308402219473166238008789596982986541827906472593304336415107299061705873976463253506696783866452294697505517083470958652130441129707027828089477825367055529845038475003855476988089786866563958975108769277356895719791443142908166548665273137630633567675516686758825271887854384594981688306219524502811957471445474623781955787313205478278253953481450526428210953656556666008637110380391875073479547812557640965845638210972767702401556716463804264253934586942324812577422570699744501768898888525191073802617357312178505133883801633430779727275812858949709281482770974116640804928641297657492204961929216715387835324623061029546314584004180417592269047512242142998456511879749669470641124303312404215111664878056412013402368876147360518078474050265225690405740664081981062214199793451855692150454028753722174077634993782266829777014019608026794191339217604365344464983085021083391992730512057343794997355857733798843824294463064450304699552798529044742694381098371096558290139396150129355183706977415289843307020218270881453772490357322309187021670607849139544374303124787312193938493824735134333424275309330658122490485049890788320512918062120327580935405509675003536688892978755687984737707959785677880131960415384863715482777295869909506551010111317346898769857648453454754699301838225113121540897286310954979644167408876226199465376367719691711743477634251711017034998936749180349812208119383904975712206515789026744597365535767328241936521656151471993849407320204644308540324132673063741492173837001141411252861816967132552721936822162158293706955227173115939944206614644875651805084577856276766009995883408902325704249494724564516021522674062104339318867951392606977818921586894602022637804942613695540966200174489474788986349222071114224966637827728492781535613203119663389624250106997988257749707854073794631641135132132325161949075901183853300469236957237825788805464726455844984555928081595890620992615133757307152857298537192244899637675450590833881035588844379532114300212288101860555927179366591178273324137910259782972786835969947490423510761210376182929549578838408774273567879837849967945075834506149921014559146960769777199934425878051076654483132568798817717961623328299387970653515420291316799871618797329577455599537095902861527612679046411429514224846247645210802610024443251946823595326353796533693606617275387475383894252377743175712900841840104014923313023227577535404285312148128311151652388332338389541682572259677212827695144298237465766166347211022759828673295313790706661593606490342882979330624962832461916251227968782898684894800917030560346993887548940184187608844018463419727090622733020850628781149756305374028377977599432796630438997659206520570764979663415717999243011781374705930867635069739298916356341974470029501110602848669135853583386143983525718184457388240886601812196881434715241813583700100198674554519024539853468827370267284829155908200388098956421458131822342068085315442605470149781771454000859491892274485835487878269079556794702644712079873207822149940388191607499681968643429714625581150960392881482288087359501330517759435418743111380128559035762190607427573752056558781614157140198035242978896836594010248893970184368202633359146697453561825655430452886230153167397237429813573370868220798273489640133542785614554739070768985938804076561213270810794250254675696930582548739084855852225353059427414439678319693247673501462487677018892495623488528079955501691978995280866230737369812612021399300188795617936887526747054279011335244520906637749209885161233225736107176863672189425092995579579568624211471807195299682997570047438819087126764437445796214762620531014699411802300651330205329253782614092618163348629435474788571340948834734292025108656208603022337920754807674713397125985276729831928925750813814634981816593395528581393020581900068107154516485664371707770379919741035165605924226142745414153414878735453966944816320953216019340697366568403016611337727233090257063415447174579274331273182484499332977289880506538149464128255904675069470278647813818318540750619799792509462847937782867853157333642365908390962123663072740268665025946356878989792583359072032782983297060325325730963023625162641288004682840412993928574245262253069757738452036769870897677504870186267593172826855706038606547439639983415986598414739161572605064435746611226137483058104558155490454592602421000850845161211734476918751328766048055071173017057449676503350119518545429590068940672237967214230381112518807998967159818405481886035240384622801776772044319213018292296934309779046863980074489421355041746031435964065468766868043075087860834221425206120177791646877257568314215145286125592160299195806814987367894448831918314818934930186623608801583648832454970304759725773444005566125528020497909560723540756519235789663977006440645471183088549189942153136562137845861097022429846089171672003913043039273770653907613003442087808522505602075844258971892872512649211576397554880574427102472742744795877303096558135057795739581700626880886717502493902722629671424944605681474031829323037867513795910759994481143738851773634121636552985208598378635376898528839047578973616329716483270816139992505275120475796029129244892656759611557663082685659827927045278056414302702636219325580465726846608172404246358454657227183159546298355578499272519209856382721842113328335108974507123952539589116749607534532583982334168902483069320731704584519464477159656283817211979686377182615577759500050803749471487852437548640195358041318503929653061357576975223007721368628299332859917072300493761201655774776690684618939394171872722124772746712328524933450190551221647262570381272203640819095803764363838937140644229962257680286613056036525834487191180998844459198557733987618707515846123866191843535259008628812075300268478507280863166572002589676472149044591472956620783110109269627645087571952500631561071916564550592008085104836430556266883284461399672990996120512540009673017495307838244675639200061347424832223673958059209969507981817589933662197374317470880004038269670447524893965756676417740811991838006498711759091321825231778343764146479844725120537202806232769786308956341198876683617836126056475187352631355439230261414385169023647611537498328875416049068795397622270402805954003622942481391294554149340932181719839877060114776012328105562104993172273445347633729936289046245449520011454700559771933719718228934710471458284173017139050963567618800748502567371276765996192543745630625306644281339621557098495202949818862708531913534382799608447847866173316515435096404824930798363082920817587967148388588605413638037822095428455498384111730444053018503419056011392375756305801066527540517962368323532387709863797717847971509879804451916605818939482773106703304148545789720396613789614671159111179109593759986373386187538823760880087703866841457933256275375237656427293467814140131663397234948421958054128445933660987153267606468500502089303269834995197352584204646769369639950573256984055488231644304590365799442814837949231143744988414146046683273092435565725692800390023141235060680915314940828767764444415889853283856932918208350688098538516839190552100360738571573243320431135025029336333269748405501905022602168977031362666775066825803382320869108938877605072468339800826415955666498913019994285290578568830899631435154197951307175720412569299439208448425403435065616956619447539986819784282866175850619443924515422516822140097511364630820191931942532219664654109332490459141396607566167715334584327111882188119928011319307290024493685314016790061659945611573671273882647211075740716078531526434233288871832234944943916932945826689758345895291328734892240560704960388724488056965941908653913573230641388051478926181658013202446053213844314508518181736491549918864835461440107645202274370193314054290912997354083091590870591668248534025232226322107964615247709296254455814232135123793755131849716023242046256727145841127335654133565382946316055005746485492814558002062331095062888088276037853480247446735821297709191366678164793765464339809416171375762527228051194552498126924690004699905583361643820729048260093814022139544568957363323708481014081881111573693876127255265918413881378976546297107555483785770122000352338768096282707605595722852232630335452263677508570534565873965520645423804640266526296150363474074431248606003105175985180767310266052788406349588080482698022421550314188537419802171787566283360626385089367044526100408012111802231921905877894217933748355800907150621675478920816517212725713535351199600739642517998078969132526112357367860022964483153012341486512055736816626530544877341669509304359438646392924092162415524624924943712976702870696597369609794659297518707356038113318729215829615856392587515754061722688797090662621385699715528886474102639859439747166290957567832798154367531831550476200124559354406339567384629567737801000140772642411154213324168380542281788826623116283921507651915877940258687009592247592346091221834655289327477108010661590192364567473684183134000295864578982400776907293195042803056085376655353777995015598332119470146217016947995355914527174967674786423688314975548712306594265485482873522466077788145076194918758609460448391678293543628990550216484278026897392078480547284888128692737759657018650936984527794714455294957339314444529079988550009493824132711485541649597504114635233748384756861119722551913683607641873253126214826797709514896626784219080252187172890380360510890983821990932424755467710614106761692319963383255234050984107896705063547870341003041000537029716920669627861748711283198529904571287567556461798098082232280605114373413266562777700588079164920902124071963197285279805667554178793025512292110127827703051540498719170813648654355686967513551338966531140789111416913208078709324379526708828840790143228862250598367191514489190047431909200023282752857356568610617944710052275241128232356717099887187190897034712580157494203988547422688215094329147650674628065960488191683940532903004401073890559682637630122287206936446176058612939967427606820298556230057628338950562072457433264419196410268503300676046938966761834479351741792822886921756877564600201738087152906413676491430010081869909149773935361119367171390278067253851961875227400300468568113714027927704225212314847659793493523071029975631399536127391400136882591975964853582762877158232084413446089240477471897575652470844578407902199986828138668523347785101297174809496615238145588205573633015494050087586424642756781631347580745468551157756449856996213767858796237092239637650583429443493434875840016492278056035512066054450427557342238433023743872531717538973028131737347694872956820541304792120706175782527228100918810587304159072874722123036171824623080470582192120785318955284449029327182438898802540362580829162006630650995479873150801718796837173031807774522038513937869633109821623972146309953867794357560795798197181112671722918509370727553517272849644970505097403126542733939144483261443658250061721706719015839817195943955989129376173089325454613241657031860332767081501997227714925095062281767100909997532309556962986400621883213181273501568758423099035418977717484334787833433209078604169036256112336519177731992758932414584047061660271520235350152687077050321070744530634546200772410817210681135481209621990010768436413527067628174215388229050704885698849302996514169505585005304005968139458363055256322576694960310786249133375677398092806707161033287518588951569591110898877730270540490515383056463962031549587509817646383641515666386392190023459030422938751420427665697717836134094979067159846133713421920928725315180167207126471502477333222589810408955305263827879029122013460003203042098729999491538445207458841940582576412816320868732194948907212455940278695655310458057370214887122850902337471629092507773781410476063809332851506534160916567126070840615165710487880136023000742997121921810430738164115226826605540443145065643759627350520038029394855292741544936558714442053431418393689799406458294546686626993671411119048552981400280237703382993281452318781680818196311466687606400280083954851441742553792355133188540505297716399666032702545895615565383108577974160172562169820343356344236216179136767102844989284159471062508895204579937188818762474081204855587437103154965621973397266910025920894659434862544431190626823436147251308690490559728369741824947447715138825033018169500481142567492501577046925052663360537124232008146909869707093853127579714292543812182139153626514390196198806489041036834648583132054394811661333235322375345329841808915612637090295498339951851491261976133622507811629882126245571121096086240972944051480257422836144990519617137782410246461214277974501810138567674010713310447808658603008497129439433766341752880503337230240427557139820962096910768057281596091157651867165590723274382554775845193883364203306121020903830591448709599445481108188898769973845255862953337039928899051650010460611371738132904196599631034637331488946619190517175174880399143172688904046437047737403390058301508138717842719976021241618035214018485162125937169692413372961841819899648485948578707063260510694778870263905592071514476431145665382082062550819305384481122515170061165396978754163634882757103530699038076452177915245031352770571063793552626451533308546998859202661411788299901066018172634694988544435850442828997183696351073828761090253106458484986472944948752836036692534128963452677899422666616620786125527225950755900545131212299976254391903084558249459733233129046651736202508466010145402044656626049004724231332750859896132004012402225449977463086579618690020502769346028017707490083959713135048428162914670151995851339490335148547306177375884638657793962671378732460668560279523283408442526580454140061251618306781785303624107213210139002013946254364608884629240152272113266721979915351224058738424709563414617911049917521092799775104753616116344582325846602467443107973884839322417355179090429053912453537710628383676186120400671532604900481280886846382715877795752093883206337735648907515438800456281088139746857477114091214478425368838257714494343754360756154861560374090619953908240510865708230761365734077514735063900502053956804032864237536790141394049667479889663724366754877028117096402617562099001227153860174376750809179312559058857179139556348853842690016926203552079916108730877622185565093922596600959155933047608221962317765016417511063975301875647713991986734750899720957981475495934040602857659656059129965662209336915593530897345201893721974958858193485720383557183615843473326449422518096799874731483527589094816685062493088760695503173901266767776143225612353609196231698864845094489418681420874429731487062819231359871687127827282778542538690948465604343806268587282485772887689393137042652618546443398080564867917834067811623717258264095778729782442705425474306479694809018273520689374874318339620867248470114179968096502801778080722973439900728112507002744646441963816185211588675946091346068453412025798382049649459389594455906781536584024361130554644557100087987514297497409404567550461179178756080455457779971181160941150512738357708732711776063239829422525495690207215051090112647092349479036493837196690773168256741290479082663588249195750549864494085978594932063237140779154231758203520649716115637808668103584156683197327487932907675252075578402876410930355563343009784771748327641954794341607902805917531889021350873948220044645542256300920910617389740937471987937353883405315938449041002448865576776178130652292170228630343111740316204073053993101080503748162832730851507708555898796940170055437576508661840590100143002899279932577834732847584953607571909586011784872830345711153045712788030971692964543534823689353246623334438535623347704748888188217700646163969408706277766122681354145865036989736782600745588060203230474541126885782782306582306029379573069059725979673412881267998138661514788861857922608640215409680883667586034428537090153319587597334770363402472243784335305619749459509894539929320321600811670564714744144478433813482177625875210545311648298539392965801892518063848333657625214317781724425483622525885596867641083472405091837717092629187289131930394591888360839617750254479833397195557294992035341627607164896318364537034480110140684543882166411555363232402524837935372099453622030479508414679951400503334066641619776759302788455103101038103552602790960187934961016172209700791482427791933275780975118774363107388086597454545940748676695865909874706407412026007530661134175702605266450906223940767842314651202573486017364333110359726127310575098695523370431622100348735396460469802504609050602355667494024202946321190492935046043035039655987346550803356461130649779364051944443918996660534812285824712638069807465827184544870626884061772250172923121540124915125492276308844399765446518712212554292631332231763327419450858282055522262993639204441086555843297196862672917076019210598033138138844026973440790860912881307707713904855901290452272362088304501031510660508374333769447179291925396897121485348143147306733769944350958727070188142874666305631488588270463481536822131727222583772595616320885588979319406120300667676117959159275245389183181370694083774138779831159009812818223419880011277930601212665150433165657847933140577602263821470700656564991825387179629221217185371934540864074074966163638980407126619071381514914577939137528164843332977555433834754813715275592132164495791696155853286219672750021674492094110830190755685099567879377929563045912728473136670077599340922318573441026305654616398289429535245117003683924041403027822167522376967339529655723734398217253081795533915497101432075669896544694760838332067066208436707141123249365893840464549154973040651765515037123859315128037107593749790213774946585473234167493926418563096663087336279111726171592598811858043829136064533897737874289447476389856424861165804788712836756167405663451271269973127631835951476752590143740883972509722591923089811117956237896576660732253247780098645580034569631481435136082151157394354383525147171624708913827430657045132711178626985850142331262508707213124181989018783516963900138757095980947057957810265110889895321948473299721759158136333167825401572118685528407013641610511027549539904559236211666989603941596974435819930992768839482517735849630994440962091831239111175176460933094425622482803521044067940900766557102483701183431282672159545898858592194097790943205275508719253871024820312472211622877676503282540304101856354917874704324019522071747822085062444601047478383516840024516112806065346276534253060842445352896208020422334469729299941883561002403663528868544743973476011740325671726350937851057224328440119119739415932094662992629714269493726419210937558750264045020974992270195840360665911792758274120788725364012966062720007712846133287001650938750363226182681669122386545717816185377442150491303686502987327565526036138205256515201837250950243867958690639405932637675710103819939396159250500079021476109996640008401167416185258045691614030824453972343655965858527601943061083415676503994214436345091952020986236093813332827779980461767024306792308577967310198048963993156313188027444569335709198336851136514861668283603212843300606262246039413437497769975840661235988982283906177658111120759495523141980889746299006468004052191216861175056399178782122842026005852437303640141044720116443589626995978711530380062803616196080529741933532600891345031559107278870681622731377157162082462505210281387290495596264846999732586646919785243579261643538450877065883730161357230465732088877493318083619770316991172201485927234304583127501227715991967528745109225657070323315903793251434113738012907721931234506926359224635439890593885229381962029882911599036624617732766343659387000080358618147995966118704884573159885813392867554334427524166097463143721139596750793265443934956988562453474309906852275290724277029307675403859382644176516984761879924909242307378446129324541026133941063445323121787269979649993522329178902952307000741010578761166476065809209977515992584839557276889174481684585626797801366274881796571831754448267361510639758937523784166283976768498270858526990517785595002884263950015401317340704581146316322490157998153346188482223343947254744778348968283779317237725292685657011786724402297226257124908368129159915272341728261650529506186166625834013328952036908265221168830579408381105557377042548906478217859736004043784820557818220393878342164897683626969404411949268154259582467418550500331479186122561286120047818806453256801883041761231313764348828758949129072899222900114374774073291175276697478184991810243762420628247953210722700511435815400119972661358309226083077109190953434525390158396522425917114229837159898042165957117417187684631459529978212164641154465186285461448539815463817601750995870367601182734788794573348213578504303359699932198155063155443835369035171715307279964768043258117379921960990276633414974277239362905629840174760338588703316691627305353499460143751674897527658398806719669537843099935911549287519699577914586060736346464217709124099639818795292361745851654369333471974501176548860478315054716107680562723574656700398836306507206259864889884947108867813003861144064578020295788829363164342872898602479741351801694846695355665016353506182527811826535639124700588598043283269383610973672144112008010470079765816234141135098028417379420664438250412220606647308930258172154306006388654442969825480089186383242987610459422550680787889269351430895360149833359372389449280251211889515898104764135769745921610408807676118147222485777558474988437874243590744454969626710201029616850404702177780494885545113081973689938763533401494118264189565336371207430882861427844478357845773185849065365409461766023026008955271745635184836967847374741303249564264105793023434702272834105643757292279389208476242602460316913449344877783995179190322481285878789787544658182354190200867443218954092381722949833002498004023645058311861880473433471705739953427022608742781722212075852783011357526579773118285737474216596833349391981575178758346267092600601407571077441574864921269483682983074053532624033798845553313597828340174111349807161310014020484268825542800480907592093791621075137222763328575004804424883828383292048656968442471418180564055565438682369375587333763822496253303143019742300223400303442983402928094397676761673168353883624475311334068546244613890302605058427757208783410126215192106476351723750811405477144109456722492726676668678722251454029312810993835437825357189222975226371601390018143012618608157474744220767403814653954018633595870817985481278435269637775788661233123649444225671489605934700557110657079157422912927813611828922985659016034607719018857602684918960335601415589767769824438424385971430985032298155479215580056025789194100811511916724365473359286899955433457257747172491156419676925859471741165038104199929579949591607759575932109715904112922831073137669379283480406343094673096449809761134235221660740205836466250660326981886179811685900898800191056001566504968288445157339394929573123021188536392830092838381525501756550689820669045258874176418847677037225996261999085474693381054878269754762124246534956319058512006216026684107309353544371190799662599687714205993553041002358295952056232127958300862994360084897262980967849208727560510474460716805446166391636674189107493765929062597400735707031700019336745605910735154951911410018793752964345336785925874716997940491806709977900893032244453600953085764700369531313065623199999661835225478881715040284441391241176900007132926469886837892956508379861497582653507260299997186051864370236563667011352193815484798455029369425578579522403048277156289620067146796900828092547022158449128547311158354684119086135747599239031574983224030363400625256171104701857054891746928121579239095220186657428421578129799806544847145207838480690958464860950749869489750698083726522173823985705959304312758117227181278766780380853599457116058815841196218206059424538953371049524938947597346592916913169115735947836690585501347484915791229176165360056404890689209289153404570825903905052902526970584594322061756223936631746468876462603220057717539716994602633140014126427015114677840423070038908963837933736872009560973319928477214870832367664187277772102235638702692987523564747287267955645946525957063121742919763488519554098921339172145775973702799030529177116975898907125875626043511297555077923947981265161997690493810345854587306785884491011868646955353088259195573627250408731923317217102748339993202708420293158848153570905480062309811960412805930177229426353363842151732469791634621075763003653617953749165300712235263826353672093688780470891305737552429912018545167020809657644066387816209214292051173497998365953760839083098032867411927235378336435496955281153322219298330001444710573038235395656916346573273368298381379078565994935282482046074333346032438931890407634512149296094432420658199065619314046462582244960278999277431504804603459402742808046743576751628797750513794623422541629894499128225699594207553505234578489564640676374353163950702469193061327936705672543524515122104814497297942350881397043789337965248552290314477802338463778187683630586023371963677673977679319671636787161601081224369188640280543568801101654552344097994308102411960104868117411354135048639378966968508912481582860326923533191691682096385079606361293440031545877514066182908408605655934212458982187584541078073091411551638424184282505754032252609204495779474461028309901095775403395836060713136524988593602465268593614448904069064950187585637923248833139404452031566702928402283750042612244183926704074453005644019647698770678982275579409825296534499081515153140565655034110210215229296382753973876476507718011043477964470501660543304884777621566214404873835145169341496830828032268651381383100738477980078695501607447787354161771116728477490793690307092648846432637066244783258413686197278548808304796452625333328262501225207522341545142920946686773133692297646634723613839160758544139340647542742518145383852593585806419359537075216820052269667043475565447182965845569216753323008672374032512419715509797448038071762096784332987904043848952602411858471881314319564255973015654398555978342804110224899809140885270530092781756304038408383923962133139970720097752570664993203517933365575309390061547458269638391420930980643601905677721551672246593898948362453232295188774900348769111890174890615312283208487846347002177964951700027250733727717476795377524088494369109186491998940667308742879646305395671174095012572413598904645054949790016745668543496834726619360202172475849894007176571209873129956928480671064513145406494700941106475212784109748638302506106720859140812204934347096446007681664538273486854493120841977128720513392804835690688229324580674503529249509270564097669179031736748085189211483527704519541033956458807730516767084376408563054600398173731238971585759605385201066477305748680380242449846319005097324219796083632229846295116658244396236041613746202490670239818253766795050381823392538055696697340550244514796940870836670300177607271373720291139624079428316167501220720870664681412792766179469691044728149556365000904116861952233201288640672464961970273744571526788242904481633312258934842778497957203954588678270758669425648530266421986375884446042856249596775269732166831123320053304128764151116034628979228271152368702295705890731997495172799875543982863773053999131603411336166784448748111092462001247976126233908719948622465588420852386876806081370267841758781302186976193107468104306444612584951958225148795164647167792625225320698442603521712342706715557833873523805402858407070791653909492099530648345881717364038138494860008546528131329610174307570197113679631627606047458943196399115861997666545614134629399451145155586522439058745229715400950792649158512196986668662579404173304391846269521862947583632800683580348062940151116951165446682653002847282502912881533812155011860373467131549653628412590794711026087495023160320550920930682196077481987598059607916014407049261824782319241607070155503120839077426009829632614960779686257616306725062466160002557118464336569765562992719787323804854708730256408405932611204338827059806397077004941461117029086562034937208052293921144033501639070760062541129009664257374903886568628838012137627200583292908191060171835834634311952684492549608664973804604000166551140459191586320928637028248377957769173927956854941103115590976899021537487919004869926659029170716660027209867339592057904983035357971978225480224378143461355154946601689825266348007160626851985435503471350241512691691452912348491723076370683336493666272570501721347017590078011415368104850375553250560238802570623817330244559835688034517745995853745371561569466231087882156699920702143165566816240575506106687616986425683630568907153499299986508228146294364958616080281681374760985092216774846322585873476513412719214451570352685378967435885203401909594672381850679001483938030309713458306572297597786564656353213921364187620793344870072174903750176477546183781868813099113908599806663010075921404531060381568014018442614633298254969129191342821767721331047622501883682414943332098733984501532106509840662258536125160266448398325830548963006068420295141771204548488518199012920539658570944272699790458295869808621833214474918742096163445401860341692628391244286785855592196416136169427964016143123687871920606379513904636894175668496080926118322454224269649186034835841706076379329749827387119305731475713521413101790013755444283087160129731911001274974999369584514261309631172724641262894229045135601146930448261068617376572683468884811523863999660794913772622330246876772775977279174664114270093945775779021682251351774795240635652252018727246981837805093490721659699000189016815945238592734671907223985774863470649141103624422126945909959233572458997370167004226620472198269309733001930111609144287643381037169997565261322645569203855535098141634735301450043712035387035369071396250706522960614249985941160068304959235500363515170386954437887383376350603735554293464087240925486321049585715645590328333135051554289295373920990809799840569882171516082868992252888705836731700920270037519345574855268381222838539479671938835257172742144291200763299068449849555187820034672065768039017122606282017581738579647969148175579442426933808377747720852028328200841920411421824747481191907486214495812337656861019856309493720231571211376789573792473096675496432734864444356765120249125485565920898238710455171627718936238707477321173527685274990259997143808772976444893885044808629274930047045357896971937083227807484795947768722029536822985806321283971524137773138505740677641583495043030702840223688106263885132377870886475554433026393138100533983846090791484715267343990352173374070291641129348654262824158641880185246501650734697952904701978265751958341940001333573597050354795307854928314775013164843800344148158602404706219802244284992939522872396938889137533168226114949121413117686179313576522468098937304186080385933081087811606656538599248064767448582317929872520013910092479651255453574262451473178537932707227209278363682433456221205519515973368848297862787953456833571400796631953826594785601688312017590945106312993249720616360846731712260438079830821057808560300067004980402292801180704919819682057440386450863057709981747763843937567739134607515429534443870877385922797985558619087325309620738651997795000255570990214869791591736921984752886359263790581500993896729400186931638706133478287918532757804981474270946357844491919239992468877862656006553520159620646009504373066111437036424653053215540711580290848290039767941529220158451045140280513334879219916869476276123564466970460469761098853043532612859284653864424718521374742057362727231352239905765616685878205815652382080086298551214064777672505227513147889034460791764217370696448608973899658662704267291498117139271845226636225883944577371611874578743661317330172474477174322984695444005989716073987269160351340995102441248631005635190643500003885358354058006262623300234197007941472264087340658761462455245242796883916741846630831144786690052251634333725959862950383036873355686417415501553615891623959632801749188839358945878478597766854190953508630030829399617130627523217608950660157885352677691881357458334107575839230203828268203972145611483427650304173147344694415650913075375767686152968003364709227910380536767565498211563862545916763106198453374903162262139356245256639913475234681522023586726666103426408753730888277187817821206852193631216853748730629272308724746635583246905933902949272852034361295553729319280114358357314583492673222064752132387248715781174567452814807817586353653635595542051466197478602450113085053014421923249863114813819273503031716062399989170088077767967259540631871627583610615103615155276273730768446869580579597863529337977129702497846839264183873465018978866152546885003063866678080450639354389008124700958069179393973738859939920744334007651973410566532243332295513460259123867662439303208099429643189814521410617035997832089379468219860196640484897982822292501315927243099193749249420774249630938136593528165915257484846400723287995798103371895860245793424753631092284383103005741919377807723153019656015927238960992369665613089883286771168786966456957730921836297992921226081540891269904850116687425767153009939260340092430887236263937914596985350951027910410870834310204151276115331427599044274702079265460474144247864880314174436413573101554437155016959269835003966617106662495518865435034055787411800422490466239341737695104954316711146031117597837192908014752882315352009303071176021518164815137629602409662879695516725838695305763541092455213318119787104932624280914676358814944273694445478505143315644693756442726793753986786086204794227493665334502680986954903273649934573729642980980389344905257529894749999495498186202822804428854543190150318019290302000235534104049890943245794726670627146712638935417628656503964676625471658568163317419062394077887424101450972137038291872268835913633852575585460443558421554995549958586166723768237509686290904115072886606415731829697290548353392375760072902038507158199343383638574723752147995152500851695606343626413085227154355019085084672259841828776366279587762856362395185917489515127124877154150234396578561354855667415798333627334556288096276962506325689721839475975944820019994690741471133648955937321624961451162981284319105719011273474578480282740928932204614156809918702748989647897078869041374396823386130285553221530845544531795049526251009968851686349200802892066343072359651541908689268186709750833241838884032805720587723325671664538128825950864127197517646971720717326557678525563675745728938083874788409860138168292584430148552453046605812074864795327083869251858746942870992749123020308967191591423950457952185848246549368105098535757610870242496691550892319129422603614468041322104846723590566531118032784595794786138003784405941714657323444943677101829679532572941736752886865371848062668729931138232862787014722771235558835192401352747838575875347111601658533369494255599011419624212991579420589762855158156660182835624679395920195062576700285077496663288835211177463191913510060572082984783406672500782520566675123566973037283071830690657296308890082652663343703121535786055357062174059763827648301578882622701113746773986512419895486420606138246401402946854556911748866729248398027842289696148895765741333990928885838037532477610487703534579089619237534144801425930122647007068653194624354929463284560678262445670433423568455544918253569689425325011516758921965927444319710047580743103853310588027242766048192296513614718565588571331599065664537959536111691926755784910794850898931669023298703507209851083910255576674516510067437796301616182653423511264874380989198751185154627436935357440998537076177065336592318066578303002128367392028081641374278606423962104424567275593431961319428489786778838825467149668276832392405805365730369746003443265392950731169876785515034259723233017391033257204023686694053168575503660543006552415938255974003645063611234917293171683335564851069610573926384822104789799445656955078448458119253992416729772424326769893652873013109212771134716130183106186110627338393844148208269373378367623896060169432388628468787567185280044727979502436124923676950137540009528660763845725178983825642513081666359818000851527996674968089620185053455139630797914752375282020499245646343069430521942621616721626852251295549832850729180425819135120262467970534485294614828411183342032804702143049883636740459940299812822180764284846694840460044941730699033705082352577069715442574693307023607984350787412311759345439168349960711249286008535625618050188528810486252603405153292836742431780188312420332960415124139611946904983862026505654017839239311826293617833054362859279270597264477592145948155702536943305424122632614748575281179055534747329728788204626700831726951757300480497214555758420585369994651351245251291452065702949234532324963123299661151592889110840825405240494221882251949984465819535390567603316618545216116439412949741756297931432969857203985995878363534080978715721496800227099807868794466572223007637402709090589705031293489950129305972046144746972084050322648655099805936144127768115747678411428705103204149994968925547192807677777660559333288328046165110880295273947245915383497671309489478849391563814990484342469443685730799731403350292147655172567207499509815037336572045425403067205549693427910530271726011417500683768859220140846820329641852110678908977051876684326874357544881739218477386662079007073103107390375007185766140403197292319148551673967971571487786671005803293653928294301365105525290135730483595698424169589516250743836711071961391796114741206669702977704598744054718004208512743652352354865147119789836782120550359547514878440729992881248681946033986024191681005502898099122336725776430884043416963290337323588376951456193724024509886934447432142712742863336263490649429944624688739286832203266411643073802763389594249349730548729658833451294587586590700479237407146388412244917121595050582706787264512402652109715517329783430510052800670037879815989156562246002941484615215962182518385362148105654543358758309428989403585028337376451382056583478257417937663167530196024527946006435839815357485078621956580747254039382625331448895841788386583413649150646212414862546123391302230407609630619412005167199307002268102273982870048854003242630305457488511870751384117771841539954535600522968977472134400216970969324664596045207016125395583755886463463641673541671937839945901152579586239357254663084980352567787591498868192795370485695497125216353438348670397325651423483941497305787190767136027339391659154818016240152860552914606196183993285709562487995904156790991913687226933330445219745657543295839216834700697113755641371779015197411091794313104646474094427674079167365257512885212534077414694418890987423235021446003179509938927729308726961206918529931562177459633145275227262477799327074923100390847475787485738439062732445661289581708354428833415552733929094408101209650230922357525291901892903842625922613541377954706792081446822484269086648302204185071427933357281288149471034940095998470331657630913987509337354498980534146952341574728809287665464338990297097439219357660860140336920856719969915501210326620087023320317008637518718307367276353120225063819286532201771586856334765461797566404728613924641803132328337313217465556900752012482076918325173640642287830321660130092379384361541442694156123495420323150546405926193317269116000750398147369572609778854763211995911543886819365358120496036798935669317688043834861481704373377982218627340031686483964366406148616238966547837072469048850183407302731856265634336787975906809110231285322196525474418461855838181658936062695532514423562861067921241550010284691401854987805201076308397869643250501615374848168344202697429983852981226063335083960752178335577366086620642522226282985657134095420876607244054978994614166506283993956980217595466017413867740449322278625027544089945816093274326304919704120323720075651464302092322336487925123348033153867009642008774444984639245753173666816550493735829242280776950366579535444919996226144621758914862385006018150937824193958108515358381229704651492109677641460792948770596353050842281515037014918275847254337696687795779735671313692958514903049588838670440741369502633228867858223196032885345417481787186240189369118504625048757363867854455761907286781986548437092642379310137762984502400475803827053409492929902533015673353004361373991173451977234859121043652728161025045529215614188315708822321076515775505938172626056442901447642589183143352112688216833320677443781110846758107375043307032428101532673828116050685247103993309194556554890276550202836297958600523320610046690596051837753168475061668650747104530704838792186905037889504324672634070953456991350626190944673559509234823433545772874019884497410395592099378575975314804057619829875706479554529987076148614505932923444613088147654865312157315264487477783432798259358067981397045290305434365132687506918493499982568515407750926575629264708909848215463897592832140681974189293338012634310267903644122802548397659052992923785779384558051381727309915524506387412972338861050096615164866998866890485926926166553171418375801934217041051098223090183907794252668683136913118394432910133376354160524960715843485212562061103936920715710543650086108059911647479128234217920148412580887945851302868802486436053171738833483036715985124396720016689708186340250930663074706434482323379913442604436435799738153785066529351497523308099763025082047016576846461897521919102960452921673574357090092111682402576398862702736134965816125728964673827952024719818978884290468437166360975036416876279463978072447757883399769295054549395488741156544791106110377389586527705342059743892031695007906950049969097784601564514025119862370976055913701849877169685166524480473947968342132447923121095260042086182111268521058122384945105114599505343010562494067644571799373951663767666654114488768926234944904919156911997876533799334178146086896660245473805024487033167497785039305079157470314869844293798116016790117725046531797538046752719490416633215853123911893396508685868016509731107410791917465160876379290403724071215172060427944260773198508329871756859436578831062638666431498608561103558415727147093886843402857543606521253386010456512920960561767301385764311708154041051960009032829625134493258249247179617309959243337304697265956416930786579655672165112430524986601735290283729009510296067253681633250231319270263773255893085812776434549217340893451486930846422846480203803521541731944796349467980315501505182726840832330952836320807076656948849755970643210324895778589006876045689070786267694659360355631256466297997651325387973954537079525982090043168883658957225117547282211075984821097367442780952888962643166882611652255267065828704521355334376746318856089427892769950745137258852490673160318954669730531367380817610888854684654672019532753880401668466271888459502221089772203005334088443040416287002639537296290834073519418211122439048354771866900139446793306580997856999999277803546765136928631143951378463961703067056156445135098524460849360657209167520920586853843521255307649614652154230742290329757592610565078521080342425781743686794113563730066416968950269607566762138220372880836881605183767362036878793946678083144025751038629649677402783736301184428265503703634263584112885297199944378280465003226808602388693772673184977552165809520454393526072787166258593776674303320656942350812434608554585746309542688225312064175129409009519898555834074603553883518155470515373230032816429821978350515175153137754911029995908800167986014729108158950286259144346258041430413091166237819456223652073403485528484939761784337825397300864711229211921603292772533907935176941887535280094769294012305907532719088358739628000332322957960341798503320375775349635317423795081181547465145734495467250862069651057453186783732233527869816841519144890889325597544528750214337374452391061086802805820137324871518771501550879074339996473450167570229684909648935176434846587017826115553135005240767006567265158505285930199371707642476695711505730131582154005310813096060183807536036225095512503415066788197705541900843184665313871353490945693394948191385913686464710188701481057366791280757740071676530024933183456975303201378285302245521861970859863270903251939245048857661873727688407794454287517530777351179332880725893347364419344074182668042540538390731480338118670350602277210159844177128811897702599032240804698697452009722422550391530455123615840432845278188625103219386849489776749908080128113004333625236237325588627337609074859249378386228294704544850213259804296790034421532496219301421471062417635610770957451899639423944716173232979136727112264426775648310045380731062352369622176831658278103259544775882011752202916605391262977394765055895331998668519466572507397170757232255452903590260405225341679456273326552467940895824109994343915500579224428627515527548990302037788980989339950065600060233290415326910025138372754036307591292317191139919314834922587188683433536899665606657857452249677956461389415053786729918565769724273957995984937457920243318129998402320781896756843420020420761347808567237374433503335648890883805122813657067002857259751259010697131594911830296177910366554318888693774681468985130442926884255216489036894398082699075892003350340689822373417488422870693066540995925827732556077050583123998399105552647466606099039636154012532853559268954617743727112317134206846786082093956715862362139405993126945477390992080607862583164734839089724423503098561579447540618016320799197387756406946363519857402192719962740605018866765560285345564905421581558227554366958048028772598144959816884250612002746257822972044900008986507671035736226803032445767630000385179218474890831872418778492405612956511853590371414252591600438344303660802506490138399886482487204507032026394738854092863866597053614256726446999372458721522801524016113387606699866806040334624111033342408727226837665933052243374848640519029713683299317821528435009906869037996260735097322666960450183308580644985958011941535279526914851151101334166317262631065834148512627794905377801498574058927675497605521594706394927413214885966621587199637837796146728111574859222111664424787424537647083356357333685975400969435342018691665245810591441447533115282304197390862524756834383230679119010778666541792035479042538067099173311815288372874005696774745972475956029070143363649581347374675572168036600311508666301964056446459909911112700150273618020673867256691898059533687331257353366643771557291904114374867601913273137049009615479759772899318450243086835874185800911964387992692209171889022256602022571043969100506707345604444128935854692303798978790456212595056120475564896396585021750319558402964313933675176024265681506443860516755329782206473631067127040862729616344729238164742666486892238775863564928336692306727466633363722589823098770012020873679399146281357958556160699864056737934695617732552221632129710749614952202988717211475237180687310854694295572801090410503498374785435212319831535679684493175014520874383454894539357823991243495695206066587136022582282859950757566046653843808684045063763422363076452692217290922378588096825718803845922346851489980036974913091372527231528534456494038774478449118865028295016560590061331401802102411984727113332517977277828872940122650970484012211427756742460828369453412762259791386212262358162526478220101459691400810563959814698901295028324425507360626769373570817109630081951586683592730037118793559883825920915710363352933937436865156288201635232277923217722669684210299813473676304744978304869138583018051344022909525917534546328635540418102597863010104844611241542027051745378663786291512308247870980771954515993710336464010258728979220040070088561249983757220854006427048971113777779640969024338601785555841475675371078698727358330080077774019642087988713020210709473603283622958620367112123035582236486073097568273784714911355895101145418732548619826911899650694782732347506910292101887549395519544988472524499660606690788511602429093484905327095348715125952889801643516362512036681276091418395888982051375851662235293637501569822076018156008796958434677049469829423883036577058061716783833529861584656101118778920937127509968727373565002253215547136478771987636414111777957804762350988863190232967852705817339971436513546586203514312656964739297021677169398732518055375630287558527856165861582294358000449599043295543452269675525744691095743324196982639676945992097730141232846762796166915957456534977302453352718717824280952148844080106634890047830084610898853050121582757933118736939687042150275250209530477054574448228634045061317231787108036366330562680903268954870170837178785599088214168593837537497213048016020289118714267764976853187420075265304167267223939050962144735762661325657362590700070009032597036093901775195965675947227019904638356850100978630771632768168772281275661975060900542760017886830512556961189435216559903345296812393179190521918330541295535182039217432360034462771306912979755815770040879390861706246573425091046910525499628264379465851416144159607037071596627192265905058083454150439065892452557425402334726439839876508189510498830242953729842763132134931187271644295382967857460701315104936829235430531526710996531343133207552576935875546927094967366216582279456379326541914133661156975321022074708680739085755156697346634438530974475526688727852247952919479857546351291567036036470716252964106567999326218534518423895250735202699992538767982833967162009540964012663277142700795713471772077580938144146502019963704940137443157190066161121044879018081317640280150102371725206367063732408417258318011411910480959413813778657734256259122557580829794242512699611264362346427543449809073741986738246463410032538731864390319393477149439001794309677764684860786503736087054661495284892584096024604177065727275956531580498559562724075618639078408400400161155984780677022840260742240327535454295936924500718181096467839648101291309906356607409141622628062447137042891187337295518726836357538875459572427132413093940695815220504850002654091781823624592172126963555829710611157494075350783917038444657529904333478710488607133564628957086871044761163809107626684551601708334183780362630395028392949354748101010782469585361947325191875414517673362958357753023155678791177069322046195989042151915318062930494083329959942485726932996150507220606212313266273785354693976052313242586196757583359031529494004507671747622550786953046506311452161540086319245914503573452329771739646457836231364055516898290314221288807326187480074552679443050122143712433343960405704818477977247509177340745780879638024268631516019838771715919527941985653446944448541424176618417717844446568859565624242955021654935285688045853747140252879821329651805828001476968475277438221945911684252622190135291986055003657500422716657650280712306547026279053162170761931769745292524601842918986332824352451754250882728824361711633972899659909142129060293205484975258038241517609778581384417371758368976094513591964898501745572458089583363556570931237192417949141403642612715489655599225080167857237573069075637102244115980843063659969147394202900039208967335235130699443215180711340759396700279512982644430646650266686876769338981680471308503359925949228408390048289885091567808139288338470397638824947217363120592571843315574503529550289229779421568828673617891342146775189632289015687928910366197444025396441135089831990388159754363811427572201736851920923247718076126303792962423369748097618502706703103985850980459588930399130955666155174698655718357740126513157854339729308066320651606868964688583115864380852241140835171358603039404590675472992615595384810185461893174496300338408043923123633748635733199570871393774109825280017724326308324136238939366129429448575082101926011731103222367831132678564085627366905000584854820620609402640099478263984601562360111203344002660124590495713561155928493001071390400846918045931093019019760844341671090977434569984398502928858110065369709995122160324443254556750988934464959381096164317815701517916227288664119996986680638589289403795849107816480694185962489448935395388053142915976346144360540526731473770567225409734130515635682020620221648922577820021363259139972196941908781949171534836717822723496937064796581221672615377618633530218099083280783578664846460586490035268851377093928550352640946786719576246837738804638949393443396068557535673530029533304987743642145250796601777639353073802766185306560293151819358401496440238236575999090388048960992991936103147976202952704144335283015051412362428092942226255767570213235915966535630142421557736823987851162725484811455463325757784000216095456263875012527812455921701396247856874042695841136465939785453931846142487359024111180258312681365759824871079361003457759654065929925148955895604123122195489727622182914937801271812523479611097685513985288825148077032527667391335006589765615745840973453623361968858054371522173981182958316511694439944673604459391169197259151726552449456473805134790629607890842236811373789370391326048435419269175628358119093312894898151268268386962492980832351923128141314861909383312712040619257326374583465388516728571493022420289881545474175596479088092598515793122508775091753665361980936280381602294767888007715837820943432564214742936195454714394297118373127263945821108551173181166029860141562993905709819105733110278846626327838666150787149594292041944206517806896391395280638804106990766508382263011376910479650785546107526262182364745236162189124159863171687579067874102166766942951479867874510264566513373221815570060240620007085053580189635442283502950654189939873070108854320040905061798219835795892161354701468348409558157445833723638340713730696012784371496928417892532456050242229776476104424910732832685113373102577425242077738637394065283865572299873503999943688440523713826964297783169034050785057275453676387405369685158795442197584553525815363964382613076960851236017045282487040069665469252270663553535188573319146214977093723527747953987154322748521786031976828812909996932908213014997746601332716356795413170880196060762678339637786702976935029426929788754318093555285477941767170424942339224510996764891988311282997624854099289449230427342736131540349872623491034198948457985090010434033725884104992407491487099614138643972822051533995308756578679992652132886465334135914046579077802971619178086614762818016886693895791259132554265641138656731410807144772362086119759697783732355118625078188171158121522715595087175428479874818906085494783994556177244525830364294022421304201889775418805790510884918312492562269896146010552765296341871628631999555018015739184901074739227505238756496670118071449149908167148179000355056387971739546210660248193705914362096671765678432187637867380974915093686877617850302901101874888797127662091699983847421927061618206089563236157707276095306812143620879082967862687430196360691883778765319799518805754616870844660291085950284033957496007308765058769224143505510516419026427254733033200854655515507655756692830082926331003288980928172719307705962809078886507904395382836906359638755365069533770332177374773318970070393222436007177864547441482075925509797021676330005892693431042008805740463491754752549894595213442343985352812738301746046253746287791778622662504364795876261993253513524586266686557274765092270770545767216101665604871402922495132191614986774408485634644256752822934160029205995514397075710820188662627965983902461750948582178235274696772682964858190940146405420190911634825450901259817452281508635199300044232433948650725187687952686377673665684448469159517559483265002556946921778279698585939821076041906480962653672269426384285900319968599722311680232390193713862817017237259982369185975879224407931236468382031636909184938711124106690184799271672852660949910346534377023332718753180983518235746748703025449821692809226768934470665566841959101975848621589608150341209234167970356738714345267813222486888482548137285004496630122784236910176798877141233201576901023548533975784966792009179447244069001305206738627850638920663074177428812857426868039634791350989448827254310771263981492600824898929525594034066530832055031860534042510367664802785705232527710169166104598797529057678047088954448161187699237454855502806178515094868655529235893302902566409638074726514905719412594996715759339754933260386510638120826326560491361842519520797451707169065758465063220088646608811766700171701978926055529708108112982151767655553252388191919240002425375341113987298258282308797509970812971556791257701907777476691394955542607500037435395825783691881559042719910161636446545752481797816512687570045271478086871443850845270190742602662308837385058901354691484601771706007134693571074734278291019680408669089241996366639222755531606999717301928953022747985813962896143398506394259719515002607039659849536932402041213116504153613395519052591317833224074345598906054313995620482050435135582623294196690014876066267791628221508938321632342604811014739907797670163649808285098202657511785699203239930612934785905201856302216033807490490862146024312181527451078695166637726209749298650715205291841029515618330305557415755162477917948889693915975366128060291599124777946124904250819750911110500574597908579959129530781413524162447259221556237816244167264460803109355182312670080088436078384301312366633964384634215930320309633855005645817871325630619319963145340172659453141471581894992311272707743522909909851112864521217046974600171791379379848942500092600768666781507884594262660849565628474693135902831000305300187274240121656275686684092322883646962464051858821682857231895391789841822083435967021132999160676176701409085344317069494238753017117793020745637641487469895829445604999711757570834022637008600007361183055189927120148237729385028779761735083600624203740278470672397215830879380494471227367186036252648093698902214946919119738556721059886054681964194480558250003465672192019916041846286400446049792198031471920913217294348792988239849688070264999475581479166437068845352470834303005700434193616734986294091187275865281994199073656967801311706040217225444359528073055576089878249819926565997704384836620835382113430017508228524035425358632333848041485034155837114632318436133076311323681272077802731396500731212355375420546705513551274361025136844470315838026329399344994291143612666213120740341409560026097081899046132493532877022467918899459447959837247995941212893054169936086046337916206571658941737571023914574453329583247658550819983753166202607524874706676656250366038494009657390771308599059410875762590797476045611756638149161615498443651377474123007224680689353879846246720275528322326209728987727630767154658811181752969397753365902262846783398316430719793833759581408126204270962600256735573937948954604291332888287588700680430047568684067806180631212544905314366543070930004705076123893812623060054147847967441098353842271055583647811396746279455397685990620214690697096732326411411382523824410994751921564875608157703633148608239845736674283141259873534717600058296084662157343335341015992057046145407345633516245277538806485894344673000321323634293396812580524590392366302617097499192760732852437613954845173346346632211750599891553367062382782819224195950147976236147997441768620352306754633468251152244707798917141034638970067008262312876421399560053608782899920948044544323041502019719588697845294536510552126127419994926857674672062199535403606509324381061684866965166786167260281670915399679031320802277059056592460246415924475671862484888896412184467542472721429977402890418771635375982856473285336163089668940464895938119120993585286520762889963544577064586165915510915445921151382088171507782900013068611943971541664950577936342927754478483422526188010448440475233665670414223058329235425130759166242304478031565731746250684991110936942475164016810993488677262137781711984519892702525432391702490032643731728667394618107417846267802233172811322651458037593807720744436937308889026985232962658085903122635807753640870790259748234384422637629603842611835939929633354866202598232391726389941902845345244906276967054489815955520800248409447003521576954521623287783151222486734781101257191771019042002713353767843410172824353380768237330844255616839895719039900219861635882150010887481234113943335509392894854247865332359264018535091768465075928315275956680278257592193632199386346786118681955131154972327849619106098737949086434986249642570343428538776968626759144429874258093058241614298208390560607374140495652144670863323860285669618420151005788115191374401816104117998072749916572076714384917491796107175523962676754787676238104656056485079140888486773285701752412683309853483518540188811987481613920399612694951831111479433544051791393502327119005959149071791356767362271619064703333816575104741491125093108400088175111933498926168903144014815060865659933073180699461327311874393742819001003462980881075367684245928163147292139980075573060844737710692843520413946119857429828135975377631120433996287233068224435651311351589096953458945855376461302523523585320953165726632283801208455457113279238773253446381259300688800645770913192911688486566611132003205150407104797005175276372440119183152555537960222123167383017276101134542317665731092504004052423308493658903140485951850613682669625878860146356212827386114750113416546056776272609835036954228453545922347714582819959255899570791850559534838051740484745965913646501971925441580844708890817404742151298678054024968568705563061801666894998924491827179070435864682066086375644097941942525612555351601107043570035369500614848476228378095704560794366749795362338849982643496426205382355053992281167988341899185522951029495180785901355676078809746527885136235200073134288349471961327735812103841700055866761657752906427366506160816982040733881866151018956330648762480598140763894706560355977289308823985487340091967159073651310114758480528540099456613698165951152410094720642729996925190153772576418671611926138214509578973781487872020360245032123558775885036183893156449646484273734788942161375796423457530473978414711253048122247946110183418142871199799351152516618566226915041267506737132737541733843259146082427549166193541554760350785861997274341196799158852854400794030801275012967447798222499053915334499817520327754248577433703730546143404060685785740036815997091726856885090557632109530337038585426646850611371589328684561460521561659844775465220710407366454411044985312266192094678575434731541036274049556302997630370097997502332462402374682184587699599870055756807384967809591167713477354527216189807339434963042838076136959745904655202447060571090068302011023766151050309671977837381778171905254680675365678461321379677991552557769691156002725428742283243073490654206308866966577049580686367294100754871643506901201790177418793368017909683858732389799938184037904986728065934079617955225289456773225946922071643109101684617414529989904796531440920594446530884369585932741292055047214619947831434603954265952036333222816664074868385788729697747678846832434093347652382173891028133265251938592375165106818469452514170341936304724222446150544642061422438363895706374836984630025952155997070863958609497589774131348692768497235784981743336192708952558851028831270737230454428216025742027916791815416629064994864723089133652720686400694028149210514543108711022413157991996487778686660643485066746457999804466988435502774321278546038561481660592878578031577307568847997203594398248350377950240597743689693563535989850788409070464967783273753443209512891661832248663862223603550678028688082706571187349604922245452641763027478106908667483117169708225739723944173611324538148968975359409532566114168275071805892032842309295501560591061023533411740307459604606683821912933098849842763735397031576806334344131682849370031316093658762588948396937252807207314323622247759772649715043464937165731109945608803575706951423029518430788310766165029305013575494042144885164259560417119131110821746791289889399323913878038070945855203410891766408941997712247152526128487023250950598809304941062825955817751314466293510401182555032256962037324945347179198844840299858671665716598533366462568162962515194838101122707190480104077074888170604545264773146775795326665814134274248233027866665841548711124164514123382930430212013633693066927347692505578097182963765076171820888427815227618472074349558571383444070341861231041630897513982732227226512321371751125391626273722996208620486078390036040720661104356752657471011448283329324772039815053987594350613866204689693558141741621634770481566448448138614605295273884142277247617152445279456985441960205830429669727367589492103349176627124361798292108887269811126645623465254545743444743200976613181384895484537991811708600182540613648176836153849667397059543132361663078764457450062864673710062928067304208341546419099925616483128556550200206367268481422035863724214059689760075022456313560249636099056350882922761786349150853880879117369467421549074967136459589581896735728716547527333949940924939417857170119569471900688273196967253815773117790799433145259649998049982545801997569522340445022329995433791981979702792419317208803123428866145793821362025450946280627920285708184015943742171194306891181509264126629353196568786386048483186925766046828592832813993134436358828679802949810895630682714381585732209958980860870823356282872974532292969855604278140218022043362902757894281398874507894534683235953775470149418986050578335083305452636020251186449247409548677267873680670611142315737957464569320024420821344087810867123667862385800572854768710832927621770847392164696726692725000606248126933568462709115576307694541809339413648846844335134990655598964092928184041426153421314565929304815135119344474154351301011551415572789416494132072792720823951172916256895156174817196859030883839459594938262131283112319617700398040749933811768413151560088529802263646856057307345356647651325838507588579198633498983261539618950752328574082990546803367521992876086692494491288137151120713335446606065027261807180015356792145881034662448102685484104918139406356063946330901006712215374299922856566290307989932235281819688692792225900665645022174270234161416442960410583241869816868557600293454219206867135394820245629502115592896131077243611213630597964488229826748323894671954041860002660124180783797396452593100819349498501624029207855628093435345648020424466130226812751639345687335718975693844578867094039921075478898379828359140039352786476849311160321829921938424436522268055418865978745970605854801750168816505262198918345231863919580835193087342193506888382364734871345254178464443571215809438379968515573416364957887494638815321736080949668850216682902418653593127625728760378281307962125408141283060924407007415305329359858700961184373634504721270615055296711606142344235480116395882956728980275529094240239084703999362977390008968137144277939998230571148638076763485895936965598918142438313870237295083813308118881949492256272013138905103346986809181998483653607328368349643380589895210312333685541693725411561309607140471823492601517119816124929809021932150363488188194549285393762736274245373617549783082383646732456596150916535774847084430072903885119923692997525506215009848820663944844697422433863054682175582636687562580308711746632791778481474954317987216553456325739780371145107468797773915802434769586359906511512525081590179050642991427570427070779676551388598513427768260775276438998605061823955030729496525852128036570197940649256222127516354634885978453757732121496364836958957848960045177965978796578773668377992822276772691466518350564413906726262254337751912927894746897161987406641195548309811368486234939607234537971189696411660977687255507162193351369800669825255253861837308874956589445318453708955207678418419048675161478372597550159587484459055840329061416076612329118961234599669154894655307163269812613758761221226094003370544079817683216689478688599584718112749092761512408977190508201684470199224023051761332851014901259687278686176501726002152150769811269911583520379466346423078780420806716761857788005909319886535882969646931901327010338228796434567168866405282911641060709116564411081228447070704709172533135777453785444379339450629907369653835742441493326380104370830178230873325841348385737571816094772697599164574389586336352443595471478516039979302429872705299593747597536922093257666903667394400603502190997215295380586731532405444214886696582955583488150558195106522902793905911758033296303807904086358983121074657110768763092299956902357818400464382105473126958458190427670014885151387961624636188064441892075751276257413234687089782782391657502460702400676435817599323946113298454287891857598986517107491856919644150195632160742354735907079085169472672845409805155219485715609827280970040030243911863435473191556723967049633472523394093066272550069002393277891320547082556060213969684091937252305547337716769640423298790073283952838488585331248131640158526895619055010012120002805045297797608536708988124963104644097936812965870063016262425414380321793385966133872948849781055559330916746626972984268106779080150570165707021911015201746706289830381669216453903373083234215089625558481284223888452117955099025612614455681938864156840347070662788222833404739345982489192826119364080231961786420921677672214387997417730389997293527019338238512978873124149484366038260033057441336222497410397386150325396773164110341238174894669837238606279719671484027221854384541057195545725364109337003468628187830617964153054727172648084720148494251468507788027246410001240506794148298362821395442709073602111601986290386622187107917762096463488875104645047327930416112534087551514748157445653032615199758419759572439660618355870231291134909458058637478615469806619063979855149256014953922646697851112469825009435637874089489351599083863575957513897624827341664662835681007032386517741875910044465564707574528270551491527309965118895550065894433958848933501626227219658724998824709501440059350996669093380825096068293047244689972484998732091690870463313789513340107751346738352091884027971290083175288504905591984666491980932089356345627838077275756479620708535317726093223221301761368390788478514300687090378639667749667183699182609544650408983975433827870539403540057505216781789765264077102559188913869297060625114579031513537230999805923661857792794499637737955702614435770164622131620560270733731610267573091007069742394585779313718227421139760235767572591806243604272972784042169336531372123809920027905544665231336111682280981355473997282000742683482589631329774221384943393699708095978559304341106376742508325703071906089319478822829952441782780403540890755366722948057701805856927275456072559607698052135193274906659542963351705663054690777429356505583349992196788002199832603552027430059886725322079305498878727684543370647332211137397926503676073184324299814328408272795830204619641521686649472777985326194528577185496760765469499147337123323805555366819389775542057397118010071751838078402540501811556270498182942323637785648087501456692266365478786541250201971016177186570712107616516642371818114864551576255333459324192610842455257770747807334064939332775146749395084494189273593563699847521963658803423079806448545026425969786078046177056304645188491532462368307733384953087883865364275290358475787763350780634905894434383084562539201603968726942996271544870262648019745586275236731176122339999234133135540135702908571961378248122550230629955027710338030650591379100363395176025937068047944251555697512918535187313129868335707068782527470947753915295836724368158194919229248137015809618909271982707108899840230383703977598894663663748157721447055337932757259472399900120411984628372967408130923686449250151334263416520155301845064870107914108135792337626914102832512187736280777670608370484443406044514331917395911060512224589730936601753272546524862596355912819163319742849597821084430234464009579929957031337588842978169263088322980305021062374780667786468443024046638386494290976583056409702639663480979945450766697804060522393762556776612679161977293025302057535500415244602091273716871584254008901560869195041616277543755572865232945955631358692855069279292485148276897221421677848294764864168288387879425243724567038164104446249019938346427539419231676184410476926428054789514081782600755087869254432578359221779791818383487838438819333319442738825636391947031530202081728549031047981960945638736530752317155825896075540674313318177115528576645456492792418058292693841029474605803048854257087716668657593816149674540540206448242470093034265511905831737591228806263590591934091212291177593561941200340795319848933923646581990099061113682715340623246967191393582762645622937240748506669222305603847038504767819626901375206729867757965639235701679829528987836837169715012908602376168160658970414661209701712373863309475508591690111645324735276686561422966461534820903694150838678681884213423798883212687552219595762878267534159778292787531872464918944749305637515548063950822308918596619676576483687277357144701426704017452037014773749291743440330028491357355996377829378999599047772510967844729267978430440388640369244152896194049645503157233571186168678775865114151462090241393920577007843631151284331429605499510330556425124392482733804693598541986433021571739782508578929697144867324675303192358941745803270486410638156700047430412665449985641617934774336972643897898780004434982330575609054333929995566517761901817808140647682866247865945712049192220754645178119778349864597789523994497057237769154678337263442339252001425636399990032213481882743740499322901713268267318618418686302337626505557864041190181346859688414185013323533875935407495700031401070958349178191860961435866862287879105987477651540536071046922952347333595743707680511474291055816930798843388117831896473800128930904682210967608512663620481507505228446481576293659591034348112756074018786635409024127308256930682826745217231769992180445881047636215070360953694024857254143166301938533423084122085741768979521011357295499153059108237432678784330001327449241246118862621421498238789500626553734774149738886196304033661144504967252169160144908435585803830997659152006419262270590110947449002315866673721552524625457594879307107263216121842988815771137414827338879439380462723913897882355495604722880235769794555252876276202067297770927415277726133632312903204710366962327236808736045264443970463576627734978116202816882729171483457304664612947415498690267674479246585162555357281034506577587106276799987452731536817825478543552799655297618929131939419560865876779212591323809296940354107720439057973408560446310274843125973626696802083208887340968070139696415460875943670279052117153580007379830386923771843198112980545560093066949560573372155115162781563474864148577850600629257556415285585055887016047132913962638038200482052620961479761172566980457365144726948116218745208948562946993825406927447975909189713141893146155811593994388752892183340684785933975453304918093029888283835295389265571487711432568725409881662823677255826010003662805262722307593495269579090105112376708559459857963628306199660506359893272720607042258636721619237232038512897185557147733319644053629781898318267669928754235110337152722413238645722280554039350782814429925842537833289881617213973417023057719667501009592990281241097248103649600549378140402519219549843141545540056268084440991763461122250225542682991725463881982507769818297890893759054344419107997975182703005414760751440812707378880613350460738787509785028889359595763116987650211311165205559401347651435131143004043079365511411898642301457165753599197521729908197216791605318386629623274444907786535435317005409766132545733831510419731284775947353128083080022224333094141891704247634424049036551150866281301651071275073247399980202853326545832077311387815972553338939669899561598068096065777507600794911302939320828851399330539401767894692023708773922957178074876571553142949852606241848725316628696150157691675204229697181393301467938030506193894354118653652670188361535302482328103069452292713290971826353532104320791609920378963891339316479574653252420996076494809016093132710627117819926914456887549045996823653341493107700572993140903821273069700832765050875652995834308385994289358314091778841342085426994855170359348087550134272313525446034747375880642705290405035241074400425000161634050400639728925750813183580365578227483384790026092531045626325080968341419969719186796750471088046500314146343696046349449546112160883395034888263390630748835965293587589426938502520105233500004318336247991854831854943101775656575517768089298616351554204824839338033351887034651301997423606859091600913271573873146766372217248287148911310940272188725133264892071590170663079795725427356792707674603200175311662433578746148321354351956356768022928804312852760766444449387711153225040740897866870207331219054729594865570256513103576412268726309091146826848509601568108727710908395866145145312841018590108372598951722824608620111827231403339870599567197735466772236848448382652026824100487772581878287303423747816355465083172077974514829448723879258814914829899476252097611915917775001980272855339005574900942567489507051082002658044067179284487154174618514822823695342927960676179763267030707890709781199116423563543693019120377770240978507127980522779760162520666621065566773540743729707161883850957236506474718881285046539489477486648770517195946641412427632326523295441656756019946594450517257019216296317910317741091652574240606579854086611415566098326593608801144621777704517426027594349065450033049498847952059724066453669409811349113897720005231065966539466678590520513433490668185950245525779235581407747328100198361475285156095772023830970125788086071769410130910509022127553477666979119936688786712289572740279726199082911312338798013943856741790207645598068696391103305356465560540923989224597651052930919465540107179931148818497192100472756188993012306392437129057642077381046654079656759020367588158638177697321478695613062257996735102479421888847819457276945780089168810523171246096636651709978147570970001072418355768298945163706038375676315720285252080418771646965933202947990348956569182277196446143137799277346262401355835785714992498707769796578085807794837318802555869168373276463456131377246109761946226575032420949987682932914478070108715435128014756043210720014103369909466856107307540009792706752156211848759479641006269740964530163749286779494493761885381525033802736122416699088657350577970142992758650574688417586488006009489224798976818044767493277739275539142842923532191419518078053578960452685797101716838210412920699351658291031319918882889684512820792001249383454802985734035583795093362980011228933013017774711605090012485116478861604316290028015467083314665279883360243553672048669830900630682192538207202747465911848971014825089507254515520228752488695963677594860976937882235426318248022886578063313656220086280758731977658805311748071170235040998229111235248202232091515236107368119622611865481261542134339983854741297807514753515084776968049163466762727444067828456478910352030960701237039544737886620867417319948938151502991497453265255279289377521321784975831522163138080050424889537853640213926753440524913894025894737986789225578243212119713207760108074197349643692766920934861061312129958825195805500153313036597141172045994200818864043491559379516379526501254382062661139954648898028362456452412960114685663470212212180349734774882121381492185464036743399196130539349504241551944597304731085281158947708923059331433496818363734958935595951471454998017159933744076454549641081624391774071358961965604434098269377113786716396446553954331684432606050509476752266297610445679502317992751404899409684601357878579416848774079130088694804814527415789641023333938170507113358091494740768459594201394577185009413899694130751734684683330452586771874306691182738306015983131613349363792237620901376377408204186138849814929687278850922477704336690465167212664880798172971372569589800854832817860101580250262784264436044438904173676508288127388690042720042543049082385742298963782932292527963433509719668276208883277815642152715509464458295141160504373171893896259551777806671271699611692673086188535257361060161030699233593158022671945523913240456916953614994275564834548067054448307151095060382005293706229780131124790290939640418598812722238939411081829504858799994717619283389970975942830400418430796156207081092789747775413277674874597127949618772605918777128766392093993870381494603536948463464635539637180596889428930497507121555217964876588580976034388461286718987873276192756206242009350169623473698254052382222693838555507826286141336189074412605769173940186409005827912212804217434690096189301656497416058338946342884820879523138830684082171620103114699085327878680294527969140006409970104433938713289396031428627579787123101895977463994888486255140138974148041528113846086398017884123684042585426473981353261822858130283731652548998873868470115639405484453585141524317542977059148232164667132409953489712925640656916364687791289783136129409343712064638512790170566343130595655304022993494903647885976775581104327073327499693378365628767130432126534473876741929896916557311398284336085020678197288807463634603153062285185942002995155780506172559296146276249066580703699730946953574544616289442767933886470608621760903752496083123662708651435601951763165897432933468286353363818704812665335170101894060829027875809779311024277941469678873524955786680871856141161998989603646878376730501382976613440259827133177451796394244191918711291500629454897730025174162624686131071622221657518437267043538879275773936367156648954241306776948304993363329199997145398577917318377088162775030987931491066445294677677867702775829796514138169471494242877180367398257379126179593775340873224735661253716741472896630305133866508320686693182782973503634467950178998685906748040970612106768630678692522883145729100096682292083608532074702567210909285017161773689331467229135780858016387749621716451726209670523204478473214498859544464097154731199203163513075726994414650763608981445250298501253853301539811522398422050312644238697224597766712186063466020855975011834593024635533348518225634347193776919429856969921420894416032612971509375124483679396429631018300623372055921303694787876105470234045230220341287246560882038191970055161542363688671380158350767922659289721145171627430705101628431624151329307339069743041580398261927183014092296669183877601406493790158106592410419753898898027366885078838113665362050713169253411629436009055911312373149458381612322110579815059214005464090515231461487906786300607050801494922641945408624444127935191573488876327674396081881210658223338968361888621563658510428935467225192587261535676906767467677737352805725465801066614282355103290240556580800726459946961425837209632306812432098349690073969038548654473044720380024321945308910432363779522797472016648868239070117323710391582196020189729901863014285814798427775689852051135397361035747000312439339890914162362034517957390258460225596654574115539278809660970232577789127509500580541578679143178111111077615036160000730691362710148358656914387278625641620309823403990150395401229493897640715913160112355978103218938031048694978446273900612480726422738024906145326248081950136583129755200602834264039702522153920907127398162109489875011713031476476540443038527672016434830212339619865831663858300679464883323531385378126447828324056092734160337198638194152416753041192395718257699331115967184791367596341150134729602492014320221765928312724511621507235918086379043532956237764265002948759662002062616197252907805494170283726525316969751945307356337054729796273455756549742237923060367732197762946853573733982396858883165542681149034702879633699522293764176376319650351125492088610833819861431020036409306353114569486437779924104493799070650496757192857646866479389542804718871043215584647607608098971648476148109404536192425249980939842892994550725953677777580897399701172279226430464789802991679145984590207197578684731830278541050566178005460648951447437836265509906834164414754461252850939414789690279992375461101531695063859557458103576324235729339450940715626599008557293419442030104944344887807996865920056102553431455396246627423924304315120869345741810136139500455825115779495813522348824548379518357126963222306206610887568642764431830178120000819592749868190302019205659891683153525478212793901911539815489293938837219621445057847760933100079708908408226302387386444695329072922774931423573230064389016538130416963041052545572589736814538297755712438824948324070755877972700960462715447243984368517465746305918137398076599391841416400874441509723430462783346984121763027895815479185414136475841374190720862925477878215896755079541280334001261486977364455805476661553949980457758607062710187531911992962883703326120988192993552636608681095462639151264344572383583984891352782429747646364699479390620896060014017644039140757159990240589033159816643469824529150504212138991887517371272541722437419640841340075368227832341748440812418974266089904056968008070803300424388100453493750170421832128065360517529197321339230004516129689500249949969683733597152755745902834528715858450968952298449522942109131375163813184912870259073719209663187614662296740349709688161374418501869910823255623749011121265408762461283922640552641710218844165041874703907728802376530985145560268965990268622488116434101052037679295596837351584830583021588398620134383822487187850670815555768240755690189002034983532292371085884445071904192724972992565215455267931128442933575410779809327263756635461775909701009471516079784029770704164516377009406653272716677587382739844072044461939934693237503576061909841107290750949989865279866209002560995661663551230300220100765520364892485631327371283908460695184190528241318758298688387361116738295919914892374662664485175409619825536796628544379716910553287435580707685922576184375608545258980395521344098915030766293108926342182766163721439957765657947574992550342638538052283247470997639746282575038054547170096853913912034257263290729444010951260933475128257664775691365832591784672118267196979234245938287146026181355539448206405498060468236843313449298262406246670340281526515396108110125253084475802877198010488998742612074396392321272329966644875446161211839151329631793215027665112775424432722090019862661443817864655249427012270721335149919353063785998647244751386607837398533017320934059705851376445519646284784792393517409332778630850039273149744499742975698019181220832379729577021267365876927823028166685842983348701345343373966934967349841414596534670052682375156070968544496452293427523064026338735078404112942673901986898789126512316259735275734835166839805135512228699463471349090017793021139627306575341876101240072940062778857506804112362437682581385864044032939816559324755029806067375047994911139459297404752000006612005236990871420435596829151665211470911989122834516556927491138960368247430488286345639396914631760638531045898046717713062488076326831872046969137372844300931856781710813901685186408060394273544223671536487710873014197760029932139821652445130881538020879816455983751049392832990567660746451390239529486257562055054767085179303041122978826712239200552049856723491427581050988932137988061518801316032928484959041965847359116877224655525904775037911868283178179874400397261724036402153669109913017116837288328577106382556744920602680289935278192135106587546497104134843894510124023216044750543398380330296574576815849980651252788946900691381868776039598514265223552589310021951964781729975707922137839187498576669996327446164601750585323732864882224314626019542153542620104443167531327271819543725088448398280161917447702469793457700467148404047350754512403815064593176100302558477953587873061058139832777479114622636683995564099763365117091729905926108438729405705940744507266772109029056012066228262148375943948733205620143203254744975865399835857886456406925739594140838862834317166837208547202639565628702736975841420237071065811430541111073219580779402676312300272573268159966396261838280139172313321128864159503832835422401040632097564678880581260186739761830207247939046639162422545093016123193286624911844078151277410710891405614222165289032879973645853477792867016734718871278392729307246989540061609420964550233588503293312261977343923847056371189065172399615097564162340284007912178889483082843355449219418859310748121599146188480855489783800920432897528962763472085446600452453364268633921705618847616230604234516780561114448489545397222508528535834248336692997853638480821557410759949298023061996019284110142966127107678601404756139439398368509047421632739560319035067211992306782104137649779789532562208642985087101507103675734025405514567027971461094804826444719455501688553473787114434902079763297069553216828547502791356466967359892797205883810257868267387331286936286725781473792164614911706234592123285797661618369563696481594242882628369628332061445266247870002479980783992429792859489053759293762432872649917722750322396659850615133386246496796399709699227737327560364700911338905158806150004157172583719155417008108709202348124595977395952252293448143998352894818463612025327092708510912125236814395522970774344402803670856971489270932951869064546197842238970148127267367390318998256319370894220689758624228267519041705102381333420193337826015026618967845250004754254186442759271677856481519545922682285248583088667261780363722425424148469558263435058403641429179622193855870270330717128440249169319664152765879636737027493275557188883136674969431021336612347558141190661379180271779382480194791421188848613678835231213666949336848765779708305214148374789490221072991247754087806339282083466316935380645035787397416044257279249190870737421284078374912657557531019572997420731711528415689146289798079351945506372661790092280614868894333340121133818938548234423556578998961195562942031021461164203605225660413722767109832107960612637721095396094985671211162660675091560171965621002890901012011653464107544039955168944944552195540906990956694757249788186015118827560066812303887404674618749657188584898435624988832903193870150891382180067244998471993873314648701017390758298007633178333571072401318296408576810267148470910294242367628079844810552934729707839231446792227740492381127265590371169194085129786222839610618053930792676856586650963346721564353031108345495393669068016916824445066222719135069219425279749794712993279598574305886419420551736395837095938032065627891693959322257613961957784981311704442020305625262563759420768589570728822743630711621983842037128496291413960468985036860898340941476109911166283853455717850870069233448267651872706159790749375523154626726718966137859038633331237062652245618864263509437497664554201287828651343095565346915538655944277292401165830760158176066209424260545440821410613449059934974826351397040760910466072898674114591019709173213059192937465003015433815029607808759100497586838568034280107410487501139974612507804244530528069224200802125537923782842940040266160867064015115871509935080852608643357283871347620818177343751090453926643220364956222421357872787834103693033071651929570608661642520630616994850038259267081047645640753045794152068958723493269597499328188931093340555454890317771996096045563862006568148247752833384322501819206612932917519803603598102801962171720753788543606632620867357966926254600262310990495981496526289885420314755315671348130376147199531590421386254176556731327451439557701673462909728492650559618082649835099282834594689370527825701195934211143220656846149732060553013892881696866141313163819120271420085573313016937789772260534762504185322767073844281385120205436435980083888434737177442962729845337442471006796282963836044063699136390784987954653797123775320410978822459447257347256729987769095445905382733057102009304892249408367905130210397586821348060468224251882336776477094930322345781723730696383358257966200519039243414161799130320794638579523265110934587747231578428471118861631143799664390314271721193616107929399858610189909752546986248830865973390406282053043963467850698424871595519618357540696085887515725762458566532640446495862386364348831482358344089791192824623443665442809242017447622937840278859790007671971896867653444052646774184790323404700361809649304016085778148559067553946411205929608469385677630094584225842749238054072627237800080300231484268830588434850322650832249991116696641489224931631271602436167742314409086811208589781060145264954300249468285867424187438355247157906522576085710398743135656017225493832713217239689871331542812020090615184393878184067802325125199515468057815570809655019339624522763480470302348429995185126119012699236293707439600029577603585372624819375878383093470039869120693607119213937483191957785761654114923592610935656519421560478829235636565791251060274840938486715232622228345281214533206389414644107395235627062846761321348196093126246854852284109549069233855723650124481424683061760702255809709909265736343034896223027173453065885606595786007416820338124874575170099271725049217210209122097491719835095272807029852014380882367182434621233140852444409213570583101338450140786996621954503002286202894912415120585441631260860951519194244282652070615883679203878218151809733578231244867513813796124438762756947714887801211106782880274468047250157984912356074024311158184864275167522629624417033105407029938558583165491812984437202814572057058149401765854261322967710216865510555766447609733239384116461568939856875568764647170292590879828760511799366244722139038957539913779544291722082159922329223801801550923550191380753002467605247787232905070377848245451442698823969616850801513245539821174742395150444739355282191989380142391427666762630097818920814644270474099061149691058350783826050607527997289354760811992142562966501679432694720213636432004583369017014101822077168217937047807613563867586052137114073930631028566050048420694319465036671542289864980471599935213269472269196807540405224005721873685364500521922674863264450641456027172388858826376027550535814624745582860859454067141293019224601063743243372342632472735298426988527960424476703832815657176730643096690495646349570748873686005169670320668991661709619657741991034637944105819873855753577545163429519972372299058331659589144434926124441669142123888888413976439497594113474516186987677889802259573758645962440988410632472255765934297703677887050847243306746835762240336067431076976547253793829074444728894613996856627919072990582273070924466827166905986586957228524208149951516673453537022262984533128267710051757206446304486334918751328303197686806869540477384322146844279143732091908699429088903735346504912454869429943740978972608773841334260155074462353871965529677116401355091298764651377911621631996083698926945357258139247907832976604368426527884338733830170942414710433531619186408989789831873100498799596650654469581555894911181552021188099925688729957520040065148664437160212718397126538171934953689735707897030217140833570778566074742255024487471641435962906703783052568170932661873218940853608703678841968784586167859778233037300038064877465112691802499926898464050413058570914878986920593404399039076400066342993976343846137658275699122023299615731696010076961798588588633029320091046146646240604629466918623925118256512917591159754098186961963008543360444661207819356754116547547157703627761050763989391278341055529373725618257210033784489288999661775290028591906528932446200778791788232193861196661803272098236410952218202880691954140604741012509975647296991340920663241760255933793465207967543207619526749132895246254739335783617188369933532193794748887679861654147084241513398324979705100344407116397240549418903755174166297465775504647231327866173583882997230402213522685489018839727024100815951863246321152606587087860139091669002920566190266960675189865566993924124044742619540487870226342093074920278612471628449832311104321864386698295263825836364501934099088688333960358399811275293250820081865247509118008913204354576512249811626360160962258746088741310268755873443890947722967693283366462509088086076676197182841339073008859427928787268620535337434647816113331586504162428680897276081467233691875952683092107276413741790046240378897084424929159113346272319972745689569447600108951061352803922058484680695619254011979910660765053645553086938580247223275872276731992787218831860159851061335471279606049236033699185115882703002408933877986800704664108712398822320341256327706009737221765341497603453829798811311187614068787373979359629265987713822679968767475015480451599759622601432658279774614143485508319345017956143248272584341496858520090204288952179031787151007593424761993512136188331741901396395214583244387383343902933582268243406514345211401663905954868826050887584577912947232965766975111176851283905817059908527117274507156722626010724854214283527846268862867290984864072696697180386417528245100102774223370049531845084430131409329146781457191050589375984160157708636007178807405378122176639278062316501374958934654180978652256680873492097811826074193401201545855928400262752591976674896236955712124822686201766599437616396164673678469737376112766854882591590799380572218384698241755368473168854367414504567456440392254285788239748916331768149713315679262847771729579726534340607836185003748304263109143952959713303827033919126295150702262341067385771479740406291905431752201068343912681042416843866897395531695337866245348796926450519045422324241703543709983866902899247990406916509705520528827556973802296658643930020407574932274918896504366424165181374518096826438677947633886039516571904828473745762844013992635341422607847703797222506259971503216459262851396026210053016060289604965170888649269432089092620541958983409862857822924398364537563779923971216186829034827338010572368721475239264569395244625080793863225303769829610104319516501021339339592072340830350858226227826858174634390102269147797279177114403801142809316428718987369470138758230962091104515678401992385947658867498044041463026106024986960935972662612664102952674999848131271163443014860848034182149286978571026491822563379548961471810136600734297704497726944453477086747325976674695534325939669387333603607660375598488556425223616048040082359671095513698941603709146228854161534000908417066926627340753809044434576475896704863928844021519853589946194881057222341399665009463950285797220012399114738841075174380776601938040679650461356439062224234862764232390162836606392610375678674705625205085836718193727947670257092007928095115366258230620317527556612179260249406128190025282602855425441117656166357633644133189796068449220458324185398321208862389538263315046068810960895866354482909858497934956490860650936388425302187636263975319964123333396509257307650661006541692234191098726701963508357063849474432363713402202998796829938628249489570495341537642633858326102108020161713887250177703541898833575407860703161899956405089379701114972244893013458346899382823198524206967402768751533711632877699166747331944501165195623411064274470513069495050661937265374116115720190792774401676267444950583843740405905076307911783774445729056347390959515908489455221308258577023418600025476564305902973751826963254054979334490374012979333034532540575679405393951242404290909655502411944801792372663816728328785097858843700806285403194533477277645058696629278582608305361055739721885291829671360464504547629676009296078507997819376420133729821058472447900822266139276813691604925975433811338549462896123387041380354227234490523851915097477205631217122513535637502175405274459190028456244604061408698149243777433505703267774078245541150301559724152775741654613819430675736547754828039067138204671843047962498541362712718205469330108752678069098873533343203274578201828545936569651185303487341051149309638992812608236026413159321479920818299996530492491122470075269405679408883153187081883712081949074108115993267700269287700609862932023660946246622749709582828052770676316360689776936516045777934247637653043566342599541523933159649465806717143848132666074192412810445254660533327798387877605188770817521961230007105301722061402297488692363762354387391015268218361477597130470421971733586337340821453740807675568063218541616024369683599975229479182684250330461708433537695898202046763112403857465607432117819497518542782968207933974722618217692228086161801573991247050354202676885513002888773778378872948573404259531189308074964848641626571266098145115399078973009898057841804875908112380155952813452601913703751645830496380910718387125264871708906264120418270643514826144290827322242281943546639839515479235840937290019551702098087858937756177407764246225990758696647027983704501789802980935517782292213620178290889577560945677815078936060279794746508279358755532277184635202759444177214716705571508539880584688469988654863769242673575539766970051281698612056079605657183460807808708759831674749867479470058716774188694800087811634410527240624404649454858684880743985944396323961319419276286265162158471505395399936766591030378999204234031392836143173814153836664120414571225452745622198451887448561069517834208948668922273098993720535414230412560851050135942890154167279986210735018175225368581945503143448179791880091219327745487862371551490610315936232074135348626604969479820571348320422089578824268274587761612330968122237988108458086084142395422662925446759961787802547869903867895732067680038012798209465030830123717515201632974700779531355064430585964304405045239788202171761938019370955312514772163959333568812397082913284922248793041129237864271854146212390728481159325558743722443899653832386763647238130025285980187691389770142960093639882253048744293481008167702447866437171278965363422971217939986623461654387365614247103182387967327498315054505160284219982316380608902971394082309597769443114386196163397484098519447672644404962623361960173885839950279439160539133608814550188094362809112100583359348551576208790390432057135781610779190728808779438191568477539990567626656630462531094294203602953897514988779701071755099335382823553091123998608102520272792954299710212493814296874656046984910265763329936414840813348043082119946651732095830541011788860728846010733847770898118507526621407469037312808904901437067214636439709853101640611452335869861485146444743154295539420276108898485253483143999839581217444174557886708945204936848755480195947348685536249701344747303686997150311885010902375304533688428693627411259607536458301673364119051139127184240997077843367687501359917356322062427990600716513124753717948498663645954753786483796216540783602870690187247232358341149732250903581015246768883562228077924345136881037627506977644036301179230849261927409299029189262181472360318394215565588441392607919237003149009277882969702383722804687590334732908474990162087874307670487376823250315080485758807766205382901688514153046048030147518104094754438369976634175239572984469434968954125787003920871423592291924208683840209214812333847635599387654921678551457457561998578807900338294075791535209957997682163441134434800196090566832819796504090646294281211465949910703796936178380136073136860582602927626645104852410533556255169747101101997064752696545724187891968229023910450802241328196175607899155104135809367217407012385325920693521433353497799860715860189202610944905439429681899202951903566291204590065627060263980744464652412985729186435833223117304696904158902162894200672335898279657008739737192494460412876972320183433245860349201411508136195133676041944146552522900801805158801313513184292360086883160479748614619043391294312756188282127123495801862841234974437104730526939027120381284992362701361764890703468254526645969438716466169346457946094484012437938193602185183581017291685248906222287394346829592080747419096608680407886125449697915029555564177564419243652523511446397351762057923373670598357441089831964185423398247478202243462017749392716385364967017793102609974078452706706187050182992185666627808323392320509022842481488822691621810353934307650484030670887729558662005705505127669368003203078043467251004254693218061757283412657581477354169047914422822009781946765274074975501832846490013958022493759786974305833654864293388180281173763856883170917050480209015136366278056348911689593304446029748022162286772964588851387203594831475336079445898794204967413695367604965928089332648074301667741427764547082777014594656480562756295534165524138751756803594152950025728136367595146390126390646446101400483306641179906991281913241121579566477212337971102773860874211058916178741110152177761710519058572450351545269400725262896044880589036436223966396283906480424239766724908495632972999579939098760515011563211369053564484390864522359949600683266898844468816199878204256897996634373080571366916600016865338890506692291033117690447265261177404184780462875488239359418070419857150062405112201366003478635753010957666054744137026099412683203810205770038405935833839988618714488521092725412798737625682727216228013904802999918286428532038585818043453371396552035749439570807617316429441733813176379218985147267788416141133112127144576983933491835475947275682130924402686148318172330459859104557927924513305805584258370606123117613584366477560947990080495693678164766309952924296866755226281398780069258598757280410396912158436258523520786178587718520196429987146311442245700448250394992638957549864829814318932138591525384101777442856421233164863455989163808618436721088321153441427001739613088064213889213466457290738779452344315583422688288068003574428678463302612244332923194662411735142569850890575068286735426551751517025394900670941101360941980040686037684120857822954147721078473269202217562343110872761691055439799007036955902997850519990841825779686314821807529776746205835802996266621924835682860452201527837170180177433869212345569905726075629712198303698302687800656526265219842164866654281871702153231149219724989532428865298414484274922795170728167541860347501944996252404546165253181025281537981700045338522352983324837292575605756358472788039143079008885913725994187427087233601980813043886329971445444660299881208613846133747736934688636276828106094404850065830166119288136515607583915355164168295851245709533354946026548002826066876771515910526739395458946913869363820900830093362090943453540279433122572177473133013921846544112646913351505099792850248217883035090946594906059717639963372992159841851336697593852866600656775927916833558373355553452932749334752586761840367484382514400270761322807022696579945056857415865205844857676048372483543032451304630612006152183061903724434395466301693884790602790897402923228804685045775610435843321150815367977630828214809676785750221480335747543621920781006476770832885444550884467942999853582887183433111261820135032778072788910128126612946980562531510630478210248801351024253225537411542254106880679806961852625765883462795497100658879426764470697573768154074562200398386383363220231729551468490420132413727125622963065375920946866503126135319347137626642401827722319471823048939630776832801772451068590513137477582003983391182550309030373024152697568559879466463781523838971018626273578009839447061888101632180949025292588563377417259664200158489467989593005888760694671388062294468318177912008439412232225469073650617330509311354805590630580042153453811032812624664100232204594665305927239982040452564680638310005400955083394901757638984524334944374898054188954176373240848582985034377771874939269696070227910667523240253284989654163371243885631997753794088553230644783509567867009982233203634135605426651803811514951109498100242516712464415833950537205679826738679846101251344295259039413665716701831933616591261513705391709302868326745935148882234258418560334411668616244294853954571295551302128166926257482917799353747727445801542820280843584488424542080777103690581848205279472502807305662127048902992661387040143681563620555907438380837554330585931275408105139733800411569538297499677956701041256665754852536693347134867069230480673208596158093044771030579231707945824649169486273338317185236089679766784641597491542023773237133973621376528581225360201896745943466593671393975663702912507538074790102365038624153079093645318934509777379703366979997368669435387619237456966575242418300203212524325349147527748870516265205871299949466435026107259482890596485774629138585957675095064995276695365430541963841951722843110965573474344780557064936751817987692228561843531474674278935181577631040612688902562061793390603753174530021244438686756832502472934606023275322245956598247038431655905100882858557472310828216368874627267054427845449051805419849249223785489557529808280082186442957173559231183765866631458908971905482373395891426363658432289190704774956786972700086262607460458648357986315591713658460558440479467147414350644721874277148070436462094292920364418776342202503093087879297908897817098667584264358109845618395107790819861192214350532606553633092695361237286061352236847037555223447368411869410244923884300561201733424960940530330028304762300435013181616729661318596395078106035548905239741397087500389845020882492598552688218530807036582894204858977178030780678045899795368973945026768859114904756721583967927685326246996167900830438191164047421444325421835208922847922340474085236001049784534858507919330403328061523227930765220404815191293545612089833471837912854744502035229409766734067340919525668505598207587945419220876727481441197201182351398279637753501863646595640952388469041680230257613234723303685629859526752481348816798766027431973307055784932420571138581138404868349775819102767713260637217669342838079522864868156011614369607249198210989704481146659888084693141501403787930307134585493660372091374047502098017279334019978638520267033424904828647052397308755520726410855539653645234111789571048043871600044056620587971597087815411618769621791064659082778333435728686566903927272450306149683166540312633083147674404555363355933872091248975718008481772577438210192999464420242736745445081151177413870798591151526166385815686669923810151567183801401450204354043979504818384333860107096978017803442576313433027213152017877542307509054677010914933233203783135682100257683534907096524426561435486970197756815372519278217752457627906964845930137354307478331631063554802088010161641641461434417243285721756082792372611882811168568978231414695575447983516762416624752476066654097172928655898383755592172922395857005996402747766719132182891666349191464231004192918703203093793489741538850321401982208653257868010899220007822440229872067686295051709612964396325690801423426293720227422034257380260989002575571737102975605752483067636685850503659842457868201921308148679478448632240693970225559375945361972765917424779578824013464802170438482396652520142950603384072099985753565394407650370712904438555838087060894611711373994358729695080077937553046003435438120203870596912864801193880569097901586216415620215632835592386961872754506548183774074490786053011599460774948993909132246157227361731030484196443441418966517008953262298209742006336339088023065012483341758030857391914065965062449665198984604737907286858882195668106746222431695525095777472887970149842224016507551418016504793855469130631364622135842779638249431581090510148900034793415399348528882819630782056001813662832036147390315060802090676999834687981388041826797779084706536192707162214670779798729644621749227405581598951703938297433393573862646846166241872134101306728483143752384605762834019153156503754665418923916279024975746170592677707499920940549658449557702593337055943367415695385073192786313422880831338037691196278524676302109761973289633579308139741838550671570961993472758979455815706937698261311972768283506509162803118584848324348889565979239969428573120348781172725991073155941030905090434879387650197128043209460830924701495512150834895247316629086797016544998407634964192180753314607706549267367518364040424257686338701541064968941785969454876568152496572490894535544874840680335479379800919707494690690659610150969598847474999158539466704251422528425974930542319154117647064827405849788483304336732544731292031548592089740530862279468572905127819891955224234275568269327983238205654268086686075024571333221853765115454929034031195941089052892212749258585825989780785091106618280910975136953308339988554192500943212044248044489739927495384572293603017425618745301581639322196361992646562702724055312232469914939048587153658173302591401720492206726979496624240312282470886089094667567184588511196313364838141703017534807615744067032858203437178447091450412796241426530386439105329254919402839000325322151874612794950937474726161434389324259657890690321673690951580776927689656034657563963871196724068621533509664008079393415869775620942169148263292255173319761392309941796972305139466447743047219168270655552598319012851223030828231017697078021358047747703497015783648017805354996456872036635877574758935485012246349610092024137929353966159510648559078062323800378581013113058140538697577252900502294781207963064627061968268009021722191758362853845661993779568349645867001870417677306858309950392700898183237592180564786765423330292924081279543079418501328927650870011772235722842435664669722683457133007173398931540668677102980978292558389917890244514442839598325797299537806274628740963378527757163145101569526495980784835254948457346434258722396262241295217022408264653925807354146843612816380961268487608464536483235167510398900446819294591934070614278379106707492693443306735692566765076754927397592061227461537933412270700460106825429241243446754362668098541293854609660157636391653046637144567588917315077483847654223518391297985585245049994693921201874066650153782623312723759567318540942075335430010822760474120694784772333557249008053927757781160948725029046635859390826999702721454806641040523035604423940906222358592659094945941822764695923974985676427923350990263457018524154626714564626126866752722206654416840066943774832127510798042252057814602538634481058811889851428079872199383369174008340853770062142500151565007681246884066169573530436522326320921014423449882765175355671315600642994315661291444432880332402425321178510280604566146114338184411998823912569636403131062776559048846194155340279652477365991491291104092355431271396837795874158601956299339986856385375836088399431162149655233901391262471039587659887247877820843502667507555402704543482016636980773441278617056724846178411015289776369521164847787858606332125939656973265509332777445601026378855103280887707897519957915671854912405780293736664425210653092843909272951658591970154977212397320986119191411739234785867334135321706085408226362602305807524448910717987631772729470161243101568645994797473326336293641888149411503590030975520527964009006038890770675841111835647107381678230436300520172754022918136413518606885477987314229746882991112498319933344612719407503018678059971485190566911074102608420422590935840000693008474199281720517924764801666730966902756722424837540558372432070016166132838535262994264616278600258204223173977702991670119945601137084222647172382050587151840836796044242695686487853500906107338035675455482134173569184829815717107104235665834406780891705138335071514793051504548156701584898780258315031321720468695380491093108381110925075395621234755933850936170701450162651275012958198851549718255390552530521762699447193587288362905423439782024249566927285492495590794718437771262211460060885021300986403593860757518980121459430557321287404927036746397543559340501132613501591229908067481475709063899193507734381546757057244397899831314434411094558994702683474498889687397600221043391796776321528713533752477919962463216604247582493240202029276342872083051301665899743336184826323468887776259812559370930200272235262787704588120410392052200176347511385657057930426404161167338559904309972048445971117596381511081473859084460174806621300264112466609008698124860543898425135732525411886738190809705405040582342053708858576219390663839424278261398123724530542298208140127196154593818473479382736842822401274192428609217819661855974565395731118700403698416047358644129425172072041955571863447216408758375813323045441101477510653797983901456471292652318459422799918458054594215808434495776060234211282851349427533260173593597829481977819180251823087377825404801413104433777124025643003600415861123392368953631969649360035969522559333460331607161125136585757073870251990941637710278627515536620579836955739760304191715241776570991795713657693539911775218694740593457522430142488661096589812980922099066140958289027638311394058341861983019662064030191551016208361120196730621135227876011328809338735473323688156423025039150731427354192651951932878735899002702798474528885286123558528865643340772063986177975362644591088087965756865933524395215342159506524658809142108383296474284282128621486303735415892303815436270374348601659640070993621200241741398252908975201145625800689345203628192156286338855102428759287282143444610957792824831487144697337445998198463776189309239388109775832427646547551204845168203376746425479366954492991771813869555482509091119516828278073259522136047276602500148173114206617410667754748499209601719648713143715385492436081896124773212763621755391958954537926548351375423917028728341612435223854135270796557551958209796149232346799628639239883236149127777678192184235826019028355497829295999574244992778619480607919771205037134968036509166945186756878405721978332366675201219500059041898124432631847175394551308996280573735865390810936362818622579311650124221020281918765779359377217939952186505439185295211193215117703049905136176046617882534679612562257313939941128236238426856676670648287318074019413890436410196607975014258280681033464935978068403465305475428415833687907618556700803605080924382819425823275737733739018944768711728069138175291425242575637142668983920067235114579278843392196527406507423105565441755051823983334137257429158273032792433129034378030986378835551135068594020944524246046580976245275279466737098854753335283350090802339663945503989773278232384216446115332401398055386175316537618166982823512198910546240361815339825578677090131373504994839610975286059202319557192715092587771542879700451998120615277654049534496260119253424868143508115403268538859632170070444062216878062387377817787473275886169624272611893867020531122490343972072004068111861349408706451991670790389753241633888152419427726505118083036051854950469052066970687437465161726804284621083583037265930220068286518913388075466743108975515830986452525025718025976308907708096356467247313801932493275682249045139048524935578802832491354988174417631100521157694530560536411590738212083150301846139355713018319301206074077385408091646480949360912251026223744917409011818590384568486569977040876533470316067209749281162650642082633499433983265910441401523160713778361223406389435267375944403737941559116412178854643537264815417746609023308168549498547582047123950760409760642183160535549357857109918132884593368934857043537085775768779699767830894439249466768175053753796389792599088209764628674867280717884679097331418642013363541119949194195462564191176463952169590515318806801549372578959337148700312317996842730854144979253985626651216096299826920424755143547104673975725535979846203386906192587016060915638189304862425740705135210059541490998714199750749316719135352388910788242215702003797382659679192981179442001640131922265195718438054067786385306353618683951480319697589542056668748471623407800338779040852114474482975030739832221443738060299420213570977065499091053658343712362038555038715393409888989051971514615178952843139845921908143351373439467909253373241410936826506877114854241710944067016257999532621467636783532241019525699806695434812242176572533200333992178485301158233262777180820967033234019049780178333629749428129510305160456856423308759431590698154375219348624886618249928694835171781504398624513509588945416957027574037414529267131373073145569778369224189949733346033560824045224586663667017496645947274111241083652218428463490106903262769189614105208969758364138208263291641848538380683194850873783154072729118505472295466223078847980492096100466748749591150018351235441328686627032512219487167752087002493734614423274334186202177909597592506356919193140010197795800441517542232275219092244554833222626800914689250371738492353589242279057258067227902135020484951610378578300403967155384393806767824649425945953400396169895834448221213448507813871013373500775552644536226244086840147207966075738362248103524790567702335164506804490005309482698031856159345868082295259951874991554343303806683155441390204072718106322465128412204160597450995999246252815863596862185261191449328367255980085445652222330595405054238547171191942643138357499245296278625054066074773403315863292974285969711786828372701413767443872493271777898004768263828532865684925058684915475876328867330553422012447094008900785419471647824525356857840737881332675111829655237313360207669793229073562489555455856876353549092919092794045362110660690967742550569641905420042574337858080494009363752141659338085960513423673686712796663440751086638878917159922998196798368486986844284260609035213132682851569489829149789113806104001198339655660153147806040867735592133537046271466954959567701670926130628466174725087205314863293735536699861227740886532233905411090175982157313099832529294518526130576155890953179460282298225157305926129934345374769820928260480383869471884528174693746778858328637109477545962673286839821531572927788343060714302382582101232153158373591299781005017843992591259433399552956818575128262482850135309265061886858438980054354864922428497242185807884462601997853785902737114001947293206853663297009777583162247321733002007391341537994615845257595104111759928388341908437547086261141108643750444913749743488984225937396693371717347326990944641704145446540977858802939898707196255293623279455204662459463320384768122004553215929403932310116582621917093718529208228791468444337998206049049344162098347253300560352202076022471295015221553339808855155441865920099440905395395788584797681277637368413199672703313757207803820120324058387609939799390848210868742815164207884876795134585919963811802714729843183596246804505462114419919510724098247748495769075339720110789271857252738792425566876340154810253791895628453076546403729727702626333902242377392078949336794629174537614994390050235797372743075409570072350438315242364148726746716628857107586709478006676708085918365683000350517752029242393206178011947760451427204427866259776052100187275733073347679267009216591564353632734024614168956072665713525177868128180760009908399788978184198098155828691682860561758696302108153725750659884707043688911198825922722006756619122632661414909087936922999091913744225595250924669609678288547853352649336558987703579838263137510739993082358813083165907516435208177052363183833610198670646513143518686321760890694620431084833577287499957167108429423505914135991064279039502214587706537809032893706627750950990609974252836802367418872755261847007948397371994320449288141852764238600602209172318324693485756802414434581967267762464844861511262093876804668042650589087509926343651779032554059426499223097171558104669361120159250657809008550407124980901490073694224625504938915549052109148047237792225612818039506554310815017079523734731597970353760480389359903797574793519457986091384540025635238658397184944501396036630853131119059337735719248198892266076930107527587142032321929127984256982577084321217284432320619572189823730793508250307808420573401193073624974753312770542042275072562664068221831988180214416001463499137406077945735675215401370938007869009092762805333384035931954875869313580895997619055319939182863573168128476464891838236331294915593284106420689365080014763630048744605381444938696647760187403783699850407249680904667273907100750403050628670039936016214009146957384970121736204813339976295235533561973522620539851075690854414811613004721355322355532876543934063732085342795891735626837842374280011845012582201829833150568382252233177356434264545853506169769227906095144038674604660606579175448294857151738487960489138881545811734990232319586159291703321143797725094323095546459927743955467571195023587054651571249722277022144781375557877787126359318252552784010364774885098531697401310351506660902405579031870819750458814867225218026822815474085414776164196987355225542053225118273108706524245346874923695425596890266705124920164842966763871480010739101507037701734135101505480840326970551866151878343703469061317938474937559905108354341687985843675361055422972121664084266980871938983347172279357311104532311848985087051994768970277744217484502545976663180088236479536359056690684473036093636971060973131608470952940000047360812081446997935478939190558569607103040518947806940987181683102942980178707014343046274337388285227916080443677799729074823587651592734989426093078520440301625619505853103353575743244233595620422559641948351261776970240255201806389937352505306120115393421199651518807118578911769631693977434855950691795931555873261650033230704979845268190468277244374612497781614006178292630444693734312051890875785230133303845657944028645216790374999921615389055623920042349982297267804873768162305764495192746112569368326895521449756714834829243419158737330427740002211804280885810837569406075437830274589497248740792442813527124358228896805805803243816508254357092465053964702770088373594412663352978437012415422858102112961674985615284014127754797474361730021035981917970557206218740594542046197220286401490777402504536351483445667402289452964176333793614571422240761549171685685644724024151326710415786504543373962082177713970878402479068620168571528712965371835646002235998621477745159883301093631306219778813286531000101470302149959121082787551681714923505600546239327832494405352978905510322104670738852687863062484046927326738808522622755473573575593260222004009630150907943279352046130549582924223135042254284130021314687755463907831930784669790633965345642264540466923603821326961747923632719817958556339096718831410486190596545570870156707212380307814673949343060102045068105761258745499214660490021469506094795076900560299818135199557908415501432553065116875874824115490747211945995648008681139766162045384477869056264270809058683782717093994641396396318994704197352128336945682993587263078697555323956035185830958870322694689647949141111111861375744143689266521678806404310440935704094733216911075678082871974273235170046323302575815283117683717094776422604352084335578316868507165308269748978539809055790216152988153814345613783175486625739269077669626759031432108446231786491994789770449094234205817240228585309461730067146336337006700973739756707181095857117041213778322477069897292285644188964179407514308420881348864682774914132017558082881098977012767428907705966438531934837453090253545610014897625511309079052326950222819298858878830565964673560442544500929838730702345985591113419235311294927951008143791746917732286261197634210609157162919578244858020951328265271982914086881777945200954482326543554891981344003568047432028628564098729796690841638699356177542266089898728986971078809607373785406060188280416931848253122481952373619620268380941943885552343058385628970512622014799811659356210083780180478821307577507830642950216729460297565789903581554113711713440884040783232102781574007899257836911861536269519842096857615357627384185770758098428707309878477801466861100091608780983433591178933563832965292861754251121119075654799199553472457427271203228971517680934913918127209372289931845346355591244757220557431918363319084376045939601346404785773587780627130901014356745703167340162393244506141351908564946703322865719669513745329921367756111591909660261403875001549153866162437361290534487835595042758131722664310937852882925475364476442921801493937753308300792690539350272823703954996788822692233660915014107563749980749806376756815108349869851525440542039800678169940619436927104548411863228226594323988606239042020369758589687017291233666773535725229221972098548762602611534960793711346304237654332876177655348996981060315325357615206338432877835241612566423346159638432857382365970139147618828452019295529285037142125752138319250509452472138968809261133493277793441765986967638240907504024672595834246981081543818689372223895447400574542290005095681757252323693253358112622845722571048599475618525726834130295853972481736570706456018289083549614825553095723849133435137006190033866378110218010498407275097035774097213900687126559101809120167843782605363501659078667531051081470771092894281894850493798245135093252930021827772870871732224994125294173675525790278540105454361177608165984144462120091510157449402393709486028555828876590049651193005744252176121535225179632085301309714921295525694680361287338161636421138702362006432575519999535799723914078884256619954614966758978659920326534273007511812040553490352453271815619615608205183314839348863838883635720292846505914930744859798648986157494051199858616196243415332223185733669650890213127597201395421751166213390127047322128185737627948707844832098890921421762841826613302159493903559552255759030307552599184269050781005263739199821613603255315452059647483240904476471456431028365951679897557398069191985496002316075980796100878337881215471351006767940851036519384717583495569741927634575897158172658440071490463702769812669430018103464542764700948613376912222796796622941313396433436638203815531386402738963316182978315116633296020332189512282168598442926231208754792403206406686246632923375253016435578592557125540024348874734697266188045731872339063614809964179475372022305191760880089002305207764126018611735355415212718567516096342017617285622013274213950118733921850912411810288581771311401348206035834139999408020959587388727705739260619661638990843519507721105642970714537686525524222134519642041356437107894950091274088909443064424693282745191375020556177362000085732915458730051505860756165349821163544051522293598558402446343888438035120784085127498554415895156248538324002865926258833335926492527852787142105114571855083493396291753266138622357993628217842253601125873867569319373938014482056685444226725349755333430285075577459123987994344574306077929888389765628662111994429251712436296444512437775016267027178294121243723503480820110374355598734749347126373105734467877163206703360572494081710161813339624599500508226614136775703313153740667502722765381651373385561064128128704838680623800302898573883432343797360620695339109894087061106572635165217193880034022297414715636121507481858814988931436638631314211441513272565710650866169748308460770778135904437029330659983834697220609228639988345200548646441045761226270649349507535127676540110005201795212596980406120978810071743236819601186775448003589991342748103598258304445833730497755827575773092114550629671459942298041713186416927587237832846281901921734394138408814973472567969551765130067041784904855629242195665985081044613166385348030787161488328421695154899298416054860592079559786601196741442663222809341073638475157141955568570684298854627610281346019109799467616278773067619931097566623504638621514401576656105392672173292590587051537201890646058162984773146493770371876466767551523815482277571638440564319345565924776652065841739491605721757748671376059410273244151309831528211653843406038388574201791386647397020629583551796834778213662511266224395081674337287684187283859136396142181829533005029892177519942148317508484697608559545590629738044000909115336636647377403215340615742952014137804502158677545709266318865971864404302191216990275972672363515626678570844240554117801699703179666047101172032253505464043431288384254465860451757388418393453561640022354675382047676521595209056844153322447188101102027709906446238670325694076582999392335073416418664619042222090543678135844302498259318661729882066050555144517197827834781146644428502264201195028650011196854288247955111765971351694327059571183636782879511519667117216048709180614505779899253772136047731935712591789056501745545248859562590290203219720805499855025045957209938698262375354579219833335845990936240844263761413172060766165011070802740314455326943282918007612925511512463423227827806488317309342963871563470189038183520568522591887579359387933835217841534376647977543454642072238540037095599024442284361783290694727654495795555835601391880434771106508237303490407501089343142711448666816550206579876972198315342241072908603958660155073704494128798546543634105207523924372126511164942034840078125207317898336408506780495837980841805855619658587459237703329073189301439088026941863065633312757677002967705202617612850407530288224914990315000573959558534265685538496046507849386019126085246957895189184313981808509084684199784645558009955329883346248356337066385084797221020368194799896781603514693023039540803039465985347690817638831960475422400277639305698629694138845607667826300374287862335100882101868938183629837679320954354260267358644062509508434707679806145071682591112286794884818908088401300586778041340600265034956582764897212609206230057718917646949166013125303062788901866506469895106237258377130547177325293825600843036858274378221443293185182248754169033314911593603105603823147370377375051584514690418398911985258814931772535092740798055850314529662432843139656008787515288467308638873204590798981621638175805111663564970751254954471923140302083916639210383488863941914939674060184562272358793212707758474904186631982785655941715802743494960197255579016622459814037519069996586004266679943443130867554989731378412936307140982789234132460487200026934254644609710046976691171980943458427169383545175192321605885306420796344340742726993952337670905193563382355991578671992269995568134698976546834090239744049065355765708897223724374425072284195948120245645136924378380013998461879509265656067391076651599364136106366249832216307877294079225828927381852279684456315373553118080536386964527147221045717114548322236831389810492566008963558429400774642843847011084051226477690111364522518440675641906128195754097621861981482392841537481414603057953473473378473996858769246741568436568013886717436903990123339942031338857780403882253689171818272800541644833818227845815492762830325189387650395885708142497609319658407753056474631345978100110790458662768000265856279945599142818378699699802443652744867162076662535189094167147740290715556319507547890913387380806066532710094505550259961399916762774731424518091967674256034305335006304287760734883916927173999823635499160806780959738163682786026788564057971708732536485095028336237458442371568990734148069157999071783719635789645598950623166134945498284034486580289527655573546727816529983544982615240816638225500448702019164803463946503890211481028438456757189290022309874335477657531090933561757108679765497478466480056547457759451205254473934616713769042234870578322608702112720757444125697619841326436187096003289784507960598845167300432048819759244133753859882126961791384405264871260019132491944073761510372370663249745544180145072301481467929228477693128676659415131718912005144878382115209488766786951882072447327586482265305889032804981385601297756659922235916910441159299666426364017385977461670648265011982400130608694927560962873344510771456092756958843123140595093455213560812285349537246782760419515175506631582944597612690867815625145371944401392346108377417355805410157418042310835306247865569764749278818942191600096458718585425472580007194721742956907855611879419576882727451240917337634195023177378065593483193593181838565428157947224659528829673254221570526142873353526350614400568216796142364987799404368936842769466187346501028968234612218841069266933713089349117696160134951716919072759759303780880818444311291748645640423069639512768391115485313001155962459679991107056489442615021953901764794383828897033488946986572074470254666011390324614691549401913363340877063037377621911316864858619164323087396181706103731271186619904953773487317035533593657113703408062798063985209275187552252336877781657250946643606244474800840147499234247244870914953801288017173639338764508287672504208012536969681304248566364504068337404850004730099281243403514841787941194814678280483610729775338928082777169178382484048179915277225347196520384144044058849683772315766105516417293137346967142078063950716693189490364826946936725681109319900125472044038545166109394292296026344996767096931353476463822150531442430784978449432190144111444230294607655624284837660877543558107879785636920076971253433966291635239704046233531308184583674397164322535782399203728748994039007673043015187677826730734482293853802919811878032680214253382736209926212229702439048084187262962244928508167881418679917323329291594519297669826066432779568383584616620513185957765949854850555543977670093505943905752388380497364360318965466131851806815939757357633429659472743763292685796061773017548053366913940897633141903275544609265642744456147958988683952663058423599544563932584482274798833616981074645040599381903376549903904875281995778343343616544724275139607126463943422591781502985342150235229653444604417896787865486700674646185618106183508522219951220922038985237234699663263141965765929792492463964976660398994600207154885715680868672798765341304823411879730964554625130942772327638227820624306819393173059192752732859995892537236722879849960923827282542204022643590381995365983842166199274628891407065402873345022218225498737115035414010065296324402748201366382270498282870300715449067818526693787694785342890173941142956681569907383421382318664030958044438596338812446419681038833706710483693382217539617728586299582801448557855367259301927012502374836010706404527838094635138851422465467802809112324421174541142601524659798242989901708343325118368376321046306193865986807154558797745823921883773645046215877457803484848572411728201799819805693094575006936498110479230672030598372059520432685463915371371658017473070751045259462911156490854106574252389681261351793575412950907684542543411216156055545636134426010653723813190870472309808230872835255001233146322164929825497272275652153434082718654819480663537085431601796913549522430153002339619475679021558889429317870297336159155369611571672032056071941024572095197361087276238451919434310974365179819661324169336549260839109991742007897011095520282264388991260628354989631547606238056332476713038843216781773872117722446978479732706051252691456222210650603703511912124899777861551418818179186238245157810202954876064821912354939997842319306871714816587503071622283844420955575487705737363032325140000878587883276538150953258906954015741511048285942406903471082104999626623869632930312598816622852172604206914585722078794515164564373385380296979412583769751430609308556650816735492717451309982348114478259633227903151109083473769026939822403594190739536568133707467592899073673009277695921656932884829610972800383380726472005257903670812373108587497971139824546523875758865171946390404470917486174728499318542667429500680558223106115623920887189846027443091428042854481777574008259604482999447637635030582398693243249187258598454107746408058606182037841898588261752519336467425996723921046711442801202078513148413688291640773540574776713996086222175591661509916619200809664606896464009089540611812584005128952887141337576833527069875745243948343628266145741032203671786625709726956889030205759861651300938130291792087098314159367492722865895479132262315052872503674337596690301869167425449505233005959809679236715002875198555332200270891017413934752729407738614150996108730856179299369482074277752689625704401686317747036439566955293163326219565208260761640150224965438127468243029843192444071369376446321506464695482279660150227110825875383023563844065759620828498738304261208787064160281892335908527318302326993062157027890777214555743548569321336673006459262885290396438689444300602736528014200073454765719185930941902320816895248942333797881660868720160310111312705520105637629958399484597252285375724197913613748019913781789877776503880065550862216310661878115478595340082305834117507366179399364843304684703421107957330661152975247285911418101347086260190783775070035275338035348886133072219822904149856605423115780802498895459568971093454915125112818825743450440285337172749534019393729993749197248435000318012548052137133240512991323468021821304040053248269516225278778851373042687350840397769534367818337092250564500199095666843585154878619138072553409054230061047614968259013316880101639945600607169192073981803378889040165945742532884931132570641836372900633890538191809996870904515831733880786513970474301974644851047130436626325405053180889165951022427505887755561033292134895860906887592946930167711675237131839466864661055128803745107862905931608400621487780422392409904399620358417993783372179719948512598165005991431810437554688819324457915782080893724704906499544705232390082684704731631477811737103890962368540544866789514677032520148842731750167220953110190489712459226635732728385563222124033643150830831659846611478792531729951409844904864299060991744573661855330541155893405752591913045594529311699551812183453303906949613124370559700620619697206591573489049017427361879671874024538778478156953125129211123701129370110238962355704375650953870197854454107560723316257820019751552878518270062871464056083733861338960671032626469190271050020797320863788347695656166785813049755104439857794302529203740177499923851272363251412372349089374475359328813695229211220212446945901272871751299912326228939166354408244407346348210684836045207764178902354825133832325153378249414751064213535828493175851888873398711411395333711193926291122173882710564851883776753508152087779617679670575935202061923023418260774521927502321077542015369024621181299185200881420553969339170544062921614855299497707137512558331823158742172174695762345794019569034105136868411478318504718458706520979141578212715696197920747490059840383083617919228928008155651033252650138856681791591788104258308711017516680030968885256158871250718886286106537800853432285917156262920464617471262537775901561874974719926343796116896411275064544549088678119916058210525721438984145216725944192235381734922448376917500368115401260980444286294175524140684051332756032617782703414571792048753010306587734994982644523928796669116974604376054195732438349157377658280928191914225508393597038505142018240656595814677607833983092260269002308323519313253726947867356824404950285152153108779092375956454568498262932909039025145496728549861024159366768131677082337694513699276815308006842220178747706211573280818624238081374889350596590063409683034695883597241747765619238964028430900077013188732659980260043493299939774228922517847701481494198124874839098908249119764007337306375892652852899645275053542392859673934437246519720879315010603331242252919811295691267422028287545015860678942994049590703835051369786727689630637912542391303935420238223401546491058785620519028442487885172008438696020213118939890251506762108735815553992923358528912004767829424622489866423226745048635830410509628394860014698320273456336773859595060243557555351966626529312956396695779868433481809573999752159550799009404249573649102673970137434539806763897491175095659900708628455034212907913121082422638639312352400028160321000448603654226719326469229390070963172664212069095315763072608005307219327233026560923917536706609056066456023228564386177210545501172615522261749065523833460109084784206350943882690884194747990762897356590203051809519588329890413575254457740768629779836468001594357456761595717809800579017808440255617642922727385203320391462155375372302806423607819291246643727137387226056345720359861300443910844410159875439623661339072020941740196585767909657908332285216584300495433520757461916766008401992070391848671325331211826279680375798998552031080821058033892846937513368051765941700715894152261963403420692703743099875407249189645994391274371797546551470816374177439573498506556599830233655905529564972252449601868491201198203549917239570545188353785872111545900897663296072461266903240212863214881305079227819355987886728781135985301612358656579666075019938325508208178278080398305436195965362081564926932849073088057510841356360741394195355866625394042648237279102703560526681296978899833081993371654192002078521932581030538221925706731325073708350163747072967797017276651637110198107516539219971712017667170852415837155783304777129694855536177161992731053926613276314812534527469268095083068740978289770450992763746633600523640197597414982154272787193832858618870095162488007603111997755569016918036129442130467105820971486491545471995627285029987267819159322411138938500465117459185302220313279002055684511505899245217722753092221618619586318668169353664153669839819356226598344826714425595705444809474318685434725629958072990882067859832298169919186002688336908930486648291367411317894435930954690990302363267834506022152338557892398713750414744210567485653604811931282493399598040228797168452351759903555064857381679256284729387679113085169566586522658382345507496835864211991674002923138416765912873749491236493599626179420620871336417186632452494342652794532983474921663531782832583775390180123380388464403351303751227930568632391172684152203708867547824628244205810601875665641029197732325576624730135773484431487121424992020898386694468057275488788686771548001790238825726322187531490925434187302483313348792909451283083019613481577064248425277372152349986777890823612611059448815903351568012733839753727915476380723938073805208330840479064576583357353158459460079087190337402855124223864981556304079618358222163142488545606479781168912202693987856356866707371466902919812509834239171806368754047541386655298415952176486390002219263057117501503790021790479564873745830817111321746934537181276339726655075415958385099638960218822306593878651117304130871901018804505067653326340222980785661388577628334309366124966435999938574694306724449123518633018434845087819505585302770827068555789428621392232897228534187828979375950770079092450782226525433853430949481688883140952443828327197853534159969496606740318865433697697260966841899099832748908892983808953849613670619860790713332108818635016160770871772472599468189867519711007677129256921354891415908066211243291215215483307968871525267608693459383613629939487123198287428571015628040340489541994466942414952240778148726737638662003266619749033414425553969831683446121374123980663196990422367572041982823254522196216694736594068422962261988347120391134802086427084093462651874103205001553106325801985249505305906341432140436654880766858901495342449215628154961434932548202406057048388682824610500780748401854102717061861490526742094269546417512696791216457714270525119918019341288598384707021444119835581778269103452668983761196408187178255124989971795210355932132332463265831661632707391958032051961175915315636160157417606420753827092925525645707694441744448126501791179403807102172937429625064265013850972777552939421922142717158442134674759897164818824234590941942819254310605673176002534259969481347979850376532264005828387131733870425936788296452488006361284203705708076686508140957445925945409926820534817555140168296059581942821819092619262490985369814608932782368935832613027180930472905352847445218391543413040722072757437197147494858344874591639789978938887397849510593241335010216755121970676106896319295073653120338521859731037592887240567929072308990758433997357089179739797516781382132652386405725035867777186584677637624246895605441175294891279565658501212912896562422799535425428153847657329715022618175963380855343671471860205139272614236772242173967952081572718314532019883916644221653177925378798015956055376869951679045060980743325338720551414854381590430552288873232414717907975880685838752704472082845583027587484550660023278740316158753606304359338795552872909566483718834224277650658668987211737537067925151660317520537568161084003849862171112427904754279769804228007080208316928205023376716037045209198517453948088216775460097502428116104719786043390723475384975377312328064677564194397325499388266838249277830812851105097295653484535220827493800189256925266447669384256746779208573494434686064128543218469496724871405052212934558944407512922966243524043242605783806232964569475059182582232048032253712707796740143856202265050693180110628305943943429331944009857701462303821412788567860100126954866114456038758415634572889326868565731157207604824779951291486125527828367911092079604274357622515227775363646141399706192343773641390686609576423694790555151570966172629758405630456175479259092846991288240799839378865063793138132128845966883616121851920980691247957557093937263810181995823329137017143554414956867694372573040536972144311493157475001573990833438236566283228689065500418455488278290178523655452595879692087202817936285569992900512333990385748769853850756561458600722096868796823590717741384535230428533480039909532951158021426110206413624493485244252760639521223534051438651628324614192627954212263365361317778673447866789994248588492247667141591659062986036205704587861438468283990549852204507024083640163256384476007140135829054408847540584800193865500055160975792469082850791999570010220239211278901122065124549830309683082163980775059714162440746287578114388234600978222465108877376037552160070324536992424802540583896239707962944657329801590540454206263941840706633539215928484308271898474598858930724264475976011584826591488010345739895226180843313386011459322568506591225247923925438992166078902804908324917379091087121508157476893201475026413737826075379237746642741455166155036367965357901061365843450165739620416569160191331001558260696265593437506574254555846310795076371408441291624036983148143854445196501970865256326018811264627018439648458048775700541628023266868028461779925296187454547180106910132611561163736966800949193863378824401534337624892394403498440268615594411687925044839356971162534982753294133578751184964126482693010360522364062045587410251622513943999753824443025204858961883002623451445567709161717563869404926664250296813918146440366482690369551581915051638050469442467276557387813015521552379085141857228651085677955112638953907944824896323619672782808894291412982343641743440683082615013564022534155883407289207345672452115981245559242457456883191857602697441960144560029730663196729456788581759854551954039465260538132651450954312579009127038889292618801310551571141332692222984538277274727384094685924677103785984720475352989977949415488249107619368943104629562871616512863951162346261584933691277994132199203490124189279585015045778646431269130341999279689279115182135653731543723873900524623212452277496035043083653835909633772308103696096947347975244980922394885636163848242010329456302498283702171391468792827923685023292715647464277836892833793971657378012371343202353036357666432360842239365022794219277890186441165031648228977276651433630388458919332354057166850771060874101056654606258677442160842117996372284873769610296039159680507055945680226583055872412951037356791048003970951061885740491073283878479402690279658059015521352120314936470511301364474982817812179271818233132767645826970511663905512322568755407514749317348487779194183101357867050311091135772649385418825492721999472936893521494881133796448104734379847285141521704931837321244331393328558522336850016806153810383671374134865245484630468943305522993514524397045287051968101157297667334249668103918285761048592276907035038622137524480847204557645146350418433482332481388528285739801682607422049371762586846667530544550824321921811166003560994182458398991999552035459562817594674099320333863302953887673449951697949305142649988724165714727366015877372174831048834894229730409278322087929014241815926218342137568584301487715133774431060664273716207679678516965015314955821330108883215330246317292238755729952278271222600136988187607794191516728901458732101376255438852421986242363762643724758761149283254307096309910781160844927454191999559831622154697887622891036028698809835411229419671676127976531475117687491389299843847301864583572975119347870301117165255191808202259649913994571357544814484435954477666597693595587381677256503624072760187385493569157164724527818400525187272951682586191038899070878599127361715214555358447871963002938064726156307680122248269220551176439984887835447515724631463474376682222333366910880871462243531669287638221728248490227226971518318996212375784532348732671652886210086217287072781209211259203381901146593454729850751506739993363490885128456705123765353924710619527239749781863207737577303167180985937445188015229216076113010731302446265678234258842135158043198126363419741066939048470702862322758609635004853336514895770486996417257589751446427029194130671342199550810116226752394876454769096162718924396983202519056207674025049264492199980148361398749456810431118452359442230320096387732851540201234349035804473899978522337498016399667498998774135886585525034823037423922674915990986435772415801777917658666608938640471542018992103629963723660250669053387143440899056056786742146229153707533702615879627428336088013491133754677286242963394538409416453292866268843541661929256043554520720225363761896202120916323014518126427984415226772841546576381519962228942604951559164793123223007231791167139368357634294960354024706535972792100050205247399602315802943835587819621912810077005256680653388726477355641982520173054058385190006641154264941277997766239043923230304384953984093991419898693346765276362014360478356748163072403049420663017752312255345365299491501370285494200342428690474483184090856791042844899661732622299269051507400105302503480151362144762190528017630635639829639734162171667743611827981651557858643358635709523057177796741960828670748537731916073833735307384501663759951316139790081506319214907652267165974502737023130349674290006136932559749318395989406055739594820665957355885502087643578583345723273336916985024915247666002491103023502158755925201594813595932759296861169776561036660178896071546405935535223408688107524047889906310545293110111173824445227560921955407802376407244080529629943235867893010166691252479860379956478412851436712093510081827095232809172250243260652772133451784758039375716062675111157123551389786374038168097173952006775554739469188155018231328286636056983141779528595585528074384120182592548006622351594023464446186932698131267384977288615218471583624872365426008252669923094683074091779458542395646873288292087951579560682918966294866859963229312746066205096591237022010309871017872835087917803566263966538704612682912860397855464056847910778873051853212478047491261505800979936906816252484838428727272392838441029884257637253842497046581267250616490818720187747846061922202593160553625675977026941167294258307014139876633319666064611081950757738589768061057477910281154050386674510668551494091918386658023164066067669425799849768473108754639583327236129206680484044407554283648244689470100221864758643851313778240966263242256017082573099359659501804999285458954041417866090271647760647166407619472545648842492761225245367447563818763519561625718847120970721667665076707941886619292032048093877288569131663262676138692091211420636965271505674291640791450000435935668199776449443362012066075189999240739355353746261579474649900122901773121492314243799605386973754680788514916642694265863862206819347869371333999548469998595861499743734913044610356259992888735480676927775986737381015470186302449926752538196882440415371544484326581194754601308251410701095090551996258433697866063904477884725276663270497838225700557453889711381623240061719563004092369243023370289130790263861216120238599305517896036647991694448014087200980574298012778330870645715381917293270318264287679334162063938057854754538595413571951175157060931417482329997852311813277560010354882655996082645352687782766848455585380721530792854564252906994981735702602206664709972647885374229296053680365787488770384650953536697672219766085963455168996491287930766020426250438826544164328105919153235461178756021843103029361408585714419669385904470337581995157537401456202214914850166206591727129514662054303121807126203951313257510240578445746013289951777734962948727081737145835833873805887713371366301939487915238029961687365639481086746052731936928060552609227989246648986875100495874281889789250249219443696635296736023704674490881416549582142933679139636276990005783883336986212311226850687903162833452788133767842497607676426948040000927673557769784626900107568751396540930305080128163020150405304317294808314832091386449885602539918753037162955079184675523234420754107528480593749730622119725672617180657138899254566037945886411880217343806425988159381341292844160177040799936058815893341170096074503516567274158527628986992955584809669291783581885847840177313751798981553278311674177032333833254535464045052434855268719260245563312144090480352300015261534443798725328466219855787751162296071401035992368934807247115768698543310931771995262142284975270116109317944408478861783067892240873988787585682546852243301703433085398116303221944422652206837412582886848190728459062885973461635494877948824981402853780920529698912712623322939089542370935091886776090107561541371595246428120940321534331553446327355508264093893795777051605757247422919981542899318514900879433866239291954002054351010544455861154875644339092331891402917186707399294298049489608295738817829566615588060058151877331322024469222334792038278835155667811942959553440794571624133898072062306560051840379153751651475597888056085901579112138980923512765067837064864863386888190628138697696430312854306709628490168863906890333835617933093124416306571941248772618090223204843507423797459760787264575076099797503200982598679228191584744269601457583262471157360294206482678335778047148404983323706498344644154610976954139319114398819860415439918762766724289863762586464399735614841234898336293446416843574642290533644516910450797700877916525192899347664527800558717962743624809654977140970952064178215169992985557454042293763240911065877870336315446559843384095834457584796903105807044555495515248859897841538808364606182106873610174177689909631314503052869675599923794728560740746916728587479963376343251836118917909469144193227238082367555936400798686178983309501967651066031733645645605498453706792297598634284654724973630380983611892419064332611011465526725957326834559220573207480954222368582937976271400758501789537974185491364667251458491600653461820166104706697592963965534192219345132902143948715698970436859809944777284657533727173563204037259939366380587733736964777982520222136814750808059238170921517782705143051815049551206133475314871471269714318629410116448937031548320617305008014830697823133205343677161499743125818910442636636767651815182631090759649516244510056996479602335184262360838991616630395608844490904451334164431973783388852680527111918728335871265523737306587975353851337154867250830326551868167575233847075593667955148145487845457790771776839921540760261813110530331720691801265837018997028433226780707417617545772772564269712917661863268513356706495172731058243358497767510061305821770351608659976285758773069935350047654455118952445986128604667008663970549316974889641907350734472218025529405286089096413923127040687669983192782946951035971952647283632835382763961758335710973691477593514197861990913016755630429176587494560843696170680764543819083995444419068470601803767193937980240401747353487946294402401688548687717168528301085109665685038646035910827395208916351556992694503632416990843927720865383212138968751652736280553510274587949578608014312779085275372374498652119155916373207545766701141883704131647905051472695710048066722499839598497385639407282393325955025789553508664468121744918141636805932822905157800414879568264324574910094112200942153440325004251690118786063024063230631184313480126572557950966074266087471384219093413464553898002747919655749635542551159844295031135392957019128788678787439801280496938651426251678014773366740146593698079609387455212010950048615162803883878498279180164022547495948889278473376264647919827087078089287670466148841739501086663516736480683792844643041250522052723623767064628168752900805304080209737958502412612701614674023296546966293563701931361281742591197473464608733465209627225850820329094555112043895806688628202091763825180798715628508916635141977502696724122521595894259729496068604436240930817928700774541430287827639273344634447140859058703775615754679254340122830207857424568976088511706731890922590314375002300964010272923384538735557599414384178712349081114875972519228798722219652880277593288906443215667005520191140724794122655311909260575524633220691909062229905255652664607335498425048180941300164350777506557414314658907305924856038169923578098230694679718844381470179665866230045440178196019902288977504540291287569426627493964839013609936791296886600480677751691820540068324164700490771282302516628888519622351785313752593203856062888345194410788660965152103284160070609423658285897019529898150331567865722214033302239151770236900374071959292100391258521688875528176653248745807772170657645025798699168954107481089583871405283419764090238725823262614865337438644445674986537979233485519640820242561322677156614317703894883514776289351756329667141338443191068564162908953586812936956376370155071960614730146646672393968206302114890106410999957885852937925931556632914620642007265993387472043159763810623585507051302958174285337240096055096629518343313520759201729669920562337101676122247584558641059343357494238063740398779918776693756002257141880472852889529783004382269289200520933283881258916795387142007278494723372371451899809195022301052020331675236046424458611833991899417077518497629570188945866736793820636172500509749008073234842584763126210111700879205184612675248437966359023071735507515965268553483186018241990492144044908963206258860444798215583615487432270655888023270467170205276496766759168805660069023524922777734431471858515635685196277702504417444861875045257323834783640035202307519894099016378744699828493414165257184430065867769925900410808429257535793495229105315922882957901951352584095832520940682886179858581319751479194757367742313722371881833915816371613253176650221144653413499194740744691800340835119158925116602101525435940906616122453842960423888024876350007678907671186639625341584219981628208340184574355322183673941191309853526090201047575946497229718315731817449734640800776461237110949048405064535491717480246753524071195093594236336986206674292375828661152365145562963353654110635388098345441280228223790466917601881935724523964155400533246562344311474882499624275784646868268151519231758736062514533256884461354139589472033387729606592982650284250629997810667233119009642612658825520119983929786818346486273271406671545587697538108180490452165088517067546787511579033979982148877522734079834897546228709067459016601941620461350194762809164346814970378705224255998114455266023244247123825795971627397953251403675998223739760434994106092006476528843203192059924850393702598577409578750418538659542939100152184277856959915794624253781395165498179321605726000306963927927255922775852626672693786562761979071470087471071625946445076736293202384087959970930165233979464964879611425259543312084358961494039223288734226132886064643656577821090164658926717806081637397401028196937473982286781022928121822897286111342506976393580460321411463017811201624633746776057475227975840462924057756480530960520704844687067162266905797165643524965853197198413085036453194112521794400547601885399086102891137891672434809967270111688003423110040392407536367234159109832707856397054639676578830015607378187229952441104553023668588310199423193881682269489156072104713162105864092230980253756807929672158678570466367914520244266790333174886222368127181002374743414535388561466299770347086227932838386236610478750822202883888823087064255576610591267135661200362820425003964135771165873128054801920885515069211069587348637295105864002833995050876136726966299178410311345358553106655886480934052742711018543499334201110616297574881762963511142809000345479769077112228296758807885362496460302910787957744765354383963901674582681766254450620336774900908167772252611545834576247028433441072695034695665916843004204937495569824243375758323953763712988942141022280875878697905726117887674573982694049507590255398401952877205713885804844835166871463740022785862456249136636762820046716977378791261218456808331042252866951452906381729198116305422156304864468769792277359335627235099350859510989304277358591008915272304150539827517899796882951060307776908540001914887021668947475062253129073526469285591210627483510835294609808820584867834653729694620541138603362650971701678731284910458822861030633114658456689766356501758758698247989676127601252694173723469060310055059823505792389595729449950014004001459641662584999552017529037848751164011644334281203207231026833217519671416770506923510311624890493587512373229376547394987823112940965195301106472328212893655307470521916291929585471419743660355665864309655231712464366598580335980632689138301319727239107098651720834378211642621096090836758291926575573982413018646080863767518461809251685603492802778637917506329284988982143594130353168950126574688267797826252882498430919664110224531744844589619535632217185663157321882879212144499031785105206679271227983303653214337939965172071856250850983651735391479046569746074025786840893250785776306071778751379806417008880221192099386005441393658969709797630355091443002101362038498982354025667887884545136513513121322653049298992387997719617418694438393939426820951414510609691014231084318253979605711178069906195232741100331724223240725279268793898820522210645373731564812045639333877138023730101210722672335852875364747210237118175691335020712664977863921833712082848234930889272524064048649539518651719005722301719502331975492262407998303503107030090577459361118590547613605547925458372950442553147203218072743385377726890186384252423159855381567495364548376631729875279132292924092975778645219257871032802865263143443953085361624160282872201973573740694783543694817621494146897616336975838748811203526418679539060879190900725298883133708752164608643341337227580341693518715103557103583829083832824562363096574078975405496008100918739886914795945872800967580080969800356138983201650184994552142384027119096174201611356959066479676714313247613232682218773168561416464879527053223420078138852321516771336224302741006051527848886875294484377309171475725254701729999086592314763574008855568002027176133059128019717020043179330969885768591550427315534701460718220959257910271942560924849908614206666111415361230163061089652662041740585377539301860556977470997458012687247854427213941379253388367583470695304432344228305987620603493599338618933490843757181576669378503993523226371895849565369559972051256707081242960179447645897988822731228775423722627653291547100038993990614295122416716528565879681353894897168468654807617948955511967554274438060831180356085057267664845725793789737450415195423177354395418830097722173770454224688146867382794859601725178993590157096227186595605192913403953192192364994793976193153925997012720380772208118587844042844224636020333369485699424954696810021188248855335715737113006966138910012719318772044311149716804647548581493423495833732439678407350204798541119546032360640690371073604869026859298437533633533412145878059212847586330217881087824150198877674013114841569549999793986151757216229358631039857689998514042609891424217105060278547108370498878237935420158624701607026109937261103694623119428673778871250593666621969023502730492721891681395265191081717296243892289300777371616507918808652394563030213774872417983006881300226799450550269834678120300363739408089544204294616052758012298201464705145014229778271417252351687670490258416748459589794672036133112863616289635422533014361082762562999078798158655876285468309637961628126718949593834397272578306929856003817428740994538721869460204128729682030299586432947384051043973151108014961831600195172678578174616254741334267650790327232632322445009429855585788145880197192398325273485504280947724861131035424036057352914224517872408789712075216837681427812169854882015801093217055119899942097585338516515614115170084517290733167745117311661099366364636522731831927072260479142915628649537739279547762562726758296526492793735503345936731303417047810348707169508095543215292218217161017303548720438639604012046527044783504398332252408030750365768509391852957166056176230204276826391927986190803569923437796233154146510692963338154489661850787175659163310893978477612558500347679909315795143943471659641820874162808487233160410314360199116095149272468681388246486553397579521908832870005528412619352821269048747845670335209855393177900373666731569720322389264544886320246657794112835087015581104729329178291195164758489088533236988149239480974565500844809199375460918172277822688604616050672826542307449275991234901495076570229162042375043755731308475243511481141217763933298898116540861344246324047013799455480554536355235791521247825985895368297068681218944405379320890859955365764879994921417743473467715513612383785233616404111673723338200072735937046060432442857212422037075517920702714999580784208905206814022334019506533335598961371977535580758901127186163129689546437577838736307679519508519576069881618117860060927514656005107044884346183198945624638013597327328774190490571609762467946889963436716036672897656665206934120716200975290796140791177034058725086724507063553545701655707870093365386820287576728438551633575172698175001996341413478655422592218845565581044299739855770026681137620565186741740905004892239539121697113641622651096565313985997968017664002564485732638407223361180102924943310722318944029206271689677682969523292437875705406032455332330530312034253240644013904939572944056976177518203290269911825440274056888675129807896657702585266699107679018080336546752281640999218472794675332037413345664971183212071381791441234087739518039767874611043423509959408172415518193886787549006442479979058268980484435195932207072262470938073183840145681978144175789994205605838096364098706448559907806424322241438592228914315102474744223299818017012681278724821560656450845987113441193042749410697875990377878410068183296212087233032483024481909795370766278951655970388424024084543603565259183045804887946994350987464586572660596877341343135501040144772339309039597658303055470794133916677692488757964084473033120513765302505141948807321956716190133194622643945665994531651480700738202905910608721018528059572078830204854488530025830572338168565596666146247098277749144606593783585215372735965128417847990590304388180054714052610007309392753368296999772149727453331251609242326185690216676813113097454440949863837545652000586435152447940234767418195064751974492838698767565296295202190897815122997313443622330505789681781128871403593708434854918042686708778076742714363947992068173088703665400230596067686972280379449488933551389195825293850433436364577348020722311366519903125781810138951228208695447517307531837404676628980064111141495703794264883617844910304224542258357187986906267009959211531993421103536686823163636644392537047010154710937864213337290997039903624238573745036714662929479731008335079391425199991181045800856072467478700067259305470028625170471661459146780104276254767139272527280677239554863830173347883389432859267977506312768714371813020844060826427968786260694920953649145371096241584226204612959868850860380222616549391990838945865190207830523960122099239454027338320058835546039666379994329162247594078743531963524190127050656963234622214084692978982519556530584437261754498532500790672065409376305068468176249278038208389530806452834614451157730918140412697148472720892860121182403822877818115173793091061095195413675564563850362646900871171093208257215877762958999799237185916110552778031960256378016715664407304666892584228693517408827209068934087716183644806711146755080789670278667596375166998055128997243709737066175270015511626093780200827058048172927733442885336226124972700500515717242519788538493766643944988061023565336660799856857554694440563043775247066741636867692609892260334687845612095061364082636115164256390723197690044157090985285446677383959671741622170424578508286676772540252007932835981136209627307265487624063388270763841429123866244360680851979969547692605152468271654309376626170992102003687054893781956702860573592303453308160891617480628533465847372529871501011484418466683979451711113918355440664226743391392949350600373004945097524556329066472702472616886373102432564975329189353776722465385738840941715024806429382281761270934007461166743382932443240960208956493212745799452402454521324241927690017111009445571854971947620454425611256099575333423124783106738632516743721934317438997796300506469706386450194449762813798594053660260022726652393614993256843825560173674315179941994046659752042638338783039944162975683955638463469391592823062383108873507149588886766474572955833781587111733384358170900824814836230823261899816088147312149053032086969137686291497481802043072011870634928587305536229997465146293211299363546924614335265293551961064974492496370780838767387868394114992516730846203216016752396827648018991999940921532946343838682096416677871959696268667635682861401220484978423767929493475956920696123397248828399418809371390001775967689898669862582090191303947707552326685934924610964102304475802572302397226854667622479992836390292439583006152959274786155491824668012557396820435393184452241027075400601959766245880115521192271151521551582070563981171539183590985034485855735818837907032893938502163709990745865151482171254093823433925320628223037190397429147812813172845736062246341982903850227527971525036933495638342575101176942134437256513638107914858546841839552478238195499097985977865323982988724068755904396410662257044940635922673437297969943582280665252505999289989099164882436887160017504593108396722565607460960667352280977996292416343937845135955854444172009994184089769512287459842520699492383847994573268519489997012322206939188284454881208621156934344214060385142046711888851954079009010325634763139479397137678580770726994153143028159476708833847520614637006559439965795501028184169984923614460730925867147432009396785125240056051264809391060045500731942880120856397137875844287920917143307391075050132682745208546929510857533771407777015366659358340369757616477927814107361651854023903667473728022572148021031880803492859328118669549762514699925444641283872845554886424093115827249623051934566067059161137457513942174292485853816369117355098318068096236023753776204109832064285048974306958539740940749780228822198229504214248131192931431292021263304446307854663294359492448725403800914198921745045910253004771722237297012030078402334484174776908083027750754218361704033033940578178937499646632683275664633702664434433255869668237647040145067375143451781588695702170512672110995882537933903599726693093678330203259936945151590999536291786487795149284255274984594174798545536374601066796085112199994678852134222096754856989739429320133378198415281598653761558715890744130210626488968242511287972664077533494426589164940635915622256074081614154339748872588731579398295945741351465709221933574683287443964335586642545211247867676894789691516943532012935430692775224350694751426944484094294350695387508434876877953254818870157207012896299877803523777288337479516789988091155115833820671069920871855306390070906830853039163745108752255951924374936266960111981450310372780493404006212713180059761596570053962563781474022583725910811060430345225705998063710252592482087184101087932258207115076652333163848978472615561618309161055248996410953897499752757070483656696999594902739965461349048948611368596040250916868470353045299395313150751596664846268948789119610448175087561062969984688583002619208657914275040994814786134917937860546377408029123903959440987176682667885913172413228307243609856449599369618032440507888754888436057786962529380975746414079815664128806244403536788031037767222701111762444337565119267564746103193356604311956169172145710866067759614571699517578221571555322458079372365252237647515354152002110153808368530108452913390899416969126184250137099516995451801467460790592127575931505379550950624953640840554812780300319372214485595981438405857697081952050053104788166359372342950865887928215067604209684591156404060528933679410771400123531322575388402085585494683309163996617879996276335645160887333258533958155722460018763300786735672133639306548329802630864396121386154823525379357278360833338704733228385398921124942183751687854266580240112909237709717894852653378782723941323185240898695257253395482712144105002321164673512934847304423050219925010907707909680573205963480265765583625052643820132629842995713769204076337280522054496122561056508644903697191480961094242767569703720294037112385102633505129116654975080298534130186195237324032766981203972461470375874750471263108514598687254882386643338312629360209842635452144755632975934608576647375224019597841451143321133066919210623245581182906934386415866650775275388412588786366485541843268348857190795858884168665497536658691319267660233623470110597147431667825876217463223750106406097331429104194033281648042784398951358652168862620995538013341310595466303068238502261028888148690511367210896272131851311234180187589001833141904747203278221424965516108009909955746894055562539867940609686551334066098806380725775099253055121884136436708568397627824444049275528513939348601022665306840250001696094690365276816132569860176079394973558101914798027413896000582611075941918086038555152491591989044590494149011675880367954353209071841718721631261561646988473002199471216958030977769823312264940163582121548395645469981926672685769617570323165060702175335542322931270379959998582953167306560924914068956508208815304663596187594490018436710242557620132646932440948327032110880529646510169751596016391139216889341104342163140571205881358523019926966825573831609114882843837717733820703826790996421810306932112952957889710490519753235122758460881917953202468998219676691549120668013174371345336108435685703112377152443598847415346594600097530355592494674142436601678145430968953638946656046768329880269936187555123152368677815846083905196831484152170676680102474794282351317631400822871821071885797964698902635213499101191249773157987536891001051471635736902044867457372308952000065926858088415072358215918058829862548900261310199996783363441116557943442473436076860427669390600834165663478354713346388310920018592528011337774507107006231435522224200706464145936337222951679786189328265861248418264077663311050105749412600551596343183861739102353019548272908387440506411825356755003525672217625784633753236006400168924451632758603629364779054988950616715260897725741460703555297786150264540274592715995298465819673994648100713807916556688775784291121428086852016339010392389807982205535060247594004586822095878678012268019322390101682715796021550384674652378005856225740800390890864282183642532527969804692666153647190737736582274517672207582384354048864239596045669812314000436496143416824474077014120088012696670480713425312776054383371208119896264470475720616916927892095351410072043351108850129489263055173896658788418410278632449377761376702767430927879737448009038974768089922443959420179840067667723976909918816970948701777649129937495781399661760186528044470933473190546452767555887352457796069856076058187152144529407117359791697906792775693686224415315580903200167986105158568502487581473824609957161555894161336537871109987959750857712301311850105852562130822696927459487682627537038105092557133705497913549115605747978991937716007057190474266638544326742508014040214833772219070112475012418740418476292895049850122502108418009234771484848744676295617762262940497820973011700162862424501606288250324340010110725289156234644429216623517185306642471474934624214995679110207385033774547304359734590886212061136671985478974575369378389813386721609931051924795708706430305506014682966393187397155732219449376432867100621262436432961874550507918441554465774441979936036042495156497206979894900567361828656484958360880979964888727522975189266299713450380385037685267234891175094647032713857787318731519672297623163895799902257510646000676532650153433257353134522749321239834407259256444845892122471054369160619179834506902318040507353311854715146868740788118452639692822106565007047101320873250816682436285453759531792558787170953542742384044300044869389535543798602282020675040433832069943008294216687756940949663149730185154034825825706458661746096914147562432900465845194816609401302564343453754529028299096799180044327196093402756347945001706247694469547195459222877363651679262110808307018708758639702258119485999577331581604308607929800727315173515072157950013587198312387003235186343633465095031988404868036287916434151694140205586012151903166965837750081349618623242470852074432544914216371891118991328362496135893262243885869396654339687093495986391177955335794159318161245189910952795388117185117048977715036292396077824249748104919456298105067841708949774889576563224531440754467566819633129983138416512016077609661265560943139523486133458197346983499979193719747847076177033650210700800590221740149027020426276102933139569862301450043586394000755714543199894548171654584327828679625537035098873692188011104620229498128038664155363953217547899216466119313262140079760433856302404362720805529608669976602247439913310520180127607038470095391237176670429332762287967387137580356713077864626617466541867461079138228468876012888472440007972256054402056670446160981360076301737866497860629844005342412187345166043026497407067347450734547951085751579544181224335993908471094411910222349165827728861981911658485964862164763403171838508498826659851704626606198957086892320895340211923852957440556227736978156908056541075904781475567182125229380090787391868407781209837364565908531191718066425499953921753599911167993313915426747380230844378191892602748031863138048827111007109890708284526826297187565194716361546043542807673048866158006291509554290973431956508424174354503299048000426675642448442639578706912447406881280741625720501309874738823067562806682701120997431151863419235890223030436151710397402304099881024091973020320331817239544764359432016765769634863322483157144328137366844699261451333724114009018988086002922391987676784481853095658648199507132592201336056948788036329818006127754324104418517945427506798647327096491086934361797698468209705309066292752713042033559187490538742396821955803238664761980104499350410764639158539845894777438275238446758913100122298503904259343201033159648845807029641228586301357006731044556196182260956344048148926181578570392965255012725470107159791910883341009964233071983365849742612696264857890961441152954354502521842091967378674767173349965061841551193866740230103073370137314488963630149895364628872254883281692932351900388020462780930512721754738281209025566460260623879231912379099774209068579598092662869591049442438032765788473928401378856265697655123596159537460868468453496418629005146367260973339462546990152351803709705300330864729836504221055495404316166960655140846311476622765693610365891407124344191521798574695252213825568946942756867398766155029233373642550723182246230242447241296457709123446369558228786076529059332061283846851620925524114321175227821555469957608342811481538406199916906114447895435511971478019432350533537987438792553163096425331148007590722520205849730628229599290311192472155267180535648488070099399758029786164805988934376707564487601222074015566034840311057756997096233407294297741643798929301933645215252762863206250991135854725190841932181503043934063715370915164621202217563865581622472659927902590505697089978694606237552256959186742653231605160347274021495218101174495632738568768135837858552101002947620499330099482894516567401492692938048647729736446660272453933095830728045399744047268678314734346121401892048203201221113701865302545597620369264457425386489028326420107360507064198847521747287401386258618401294840052331508469131856928367000168965820177836544472319270130368317173640432270676992472200022421623562984282913041178365584697816227752203281207803216946245549058426663419300788569296188693779145474611720516797036848208957408925416809247667145463424216476079565980640389538292462652976678075459430485407890632288612711132038843671655815522714571594527010235937540270848857723465509653935132183906848668320170229135706108483907354620191639426674896157900532749353661833486928919201934821569144003161115262930468091907089528147649061608689014770016633486355867973826579245564596156189774095208510031691470267633574223593455172200581810132439226000287119909487830561817259633484600905409931893174442872011402856927063074235668743619205710677483543998180478203251927784756992559045049583634426151794882480509968153735295355108933052449951383189215521331021601777804824139402702901512407245390043059863528146531483657661404185771336249303801292709635551112040248984089231137349109061693891841711568076159080727211145797989485989228643497483986657258475142487804517976981663811321751563891618837526077815260115867763715869911217125825141499681548844912434416542491304482329758365590946178990421504259599675519349315786862618310979352594583939103859078260409616509048282978390402225716117823527316270460859794686935723152134194898678182019165301051407771194591662291187742452900329428273216970974097557112175941180095881228992428178903485161399950379626721717416838274403917004859271247796378845080676853999675508194173897058320902910511128492829119722093342389227057921010042706925765338791597407268805905678371532166798160847989536596054089004220962949510858496811290448894412618806448796457621692466522695853050005298033361881105088341096722025326300381528562904663004567585061434114323098191161068846268556191256083623149542792124154884302325406136854355604741271090799485776427407867915911497447866265221567570753011092626492863852547512039745304232586935872996583534212218616903622260967649936431447636079295674029871908852784751371471002977858422744186084512374511404905655474260049543726881714055235566450418132967070300057631845613422564796114451368194465247357149529229306868254899962373816258571604802043261587163134073267605739733460854401844607978776858240229138963179112057546303394156905668542972015092014210372408820148758783658557049138715196089609323438509044615605333802158634456775166218084233559174557083350727254754782878302129709171081426421250875051989060420297564183959451314016618635351147314126751310825489430714290176205989121073129132665883807758945414882917023622432267444349220758911360918153566958324403209355803160857473322827532618106667558786016919699763397149632409058398101739392223770327665433777469285708352522879704426760446193515831750200615719149747589780837879623747485469731893304003687529364099732259770353825987352661917824988255691713848738113519908758774507221954846008476250620007625103430220633628232530674314690839232674801888536896878063637843452975722991250243547479712923741948615796310907747556154162002757333778300576415747994249882079756096000876662566166280439462756187841786954986150479117283016085010192441457975019856879330174545824386545162152390480742620998388783437396909057513593807339601967293694140850010139082387495828622740876872163749624626951540027263083133723081144843841660608131257561796566759165396190917077036467062625529560500005653137304831975471944965793794371355906229536355528355196651696010961435352143301003670154725072405468804156433887429516975043821315451079559314553336515844081079012848031778562239242412377439684747953072663874656583125287973649160951188721163033031677062925661283888191123555249679889746605852428301821710687067661240037798555175130423248279350112859048992982596810721986351682295990641864075243800210642869808593832731507272447417670313024745675108958424587971871555965820097675147081307024426108436925724940084955146067979402529136793870519361069697436349751615808765189011670610688833153266629474289383808759274167848561722445670656098109502941722121854003268042748637159460613712510055028646643671608829517789820602469916245099271877638946515681059085962147228288658693171563628905257031657941461863511743037725535401498577331315977350692106558559965139137939827151632133177267964839995180434719961286868490220355161301775160914925268577187433100830477959840051445160303994619962397380494088684942573028519818777600321842536859913195806501223749115703256960139007957417988559440161713709460730337087626952545882214147559592445716711692937862658729770529618118385646535407643881428471413863677269397193082621175751569168750504589353455614342561854391622330117975498906836573540688444611175590579855568424180403519687130120131892526503134281553790018960843191065796231429700642918857132815990099644318672372612212432040570848263236831858656222001230213388278548586233662841966615327596937313691119116446420223589627045623448936299341843582981995718660628435108775648224762407242930378955107172729115816923894091291297630754325673808261042430209905987674809216978217714703207020646203994185137885443840495075454770356037251749843696705300969388283972643483452831612266023130371678216483158579549105733689382764642704501278759148513490952830358406830463512083549278724825779517015656067087839939560362360310968342439011006625433400029866330196072528909217194521348074982446348719179473656461420937266493683296100713513040819640477608135584018805190930204209027245484439682656082524206866373387584836147851443744644914102096253848497806278281889749520386535434200045960034013658522058200283400755507553954725983668266598239171617353659885760977096327890042767855941894444681409437852312831976387979112964717279698972482444712086573548881152965454088775528904108778336359870616793853750074292694309369465224192332746871107753730750217183661917107753707670062295134730142385982450193994584140054885008122502003901572841179764832275375658402125568700690087875791199299219284163766999216936024798927189798122430855204897160634884751561385167534534014603647350360630951260176679803130011178570435996713134404940215037652348296390368088762156138353911028043160955033836197864594118874416944726063749023660587972511107787512963542084439806867794719978330828366740932864426521812208276209331040404233306845887066105544771417914932682400475125875048222815269694886997707128114903069716000334267698207572036677718416951750355083190014920420279169125841843867444822428179656311567479308757923769858147884620548568836640482685476704421819656819597322895928824576843240441120912990201468154076991100248716894220797793971164595377984774127857927501194257946926868517839344859652763367889272089993136020109493560747524668007420540329898005723374011822954089913852855330600618725202457166230924643964442262630120921868087145658727471420543099146920610638582567288441991895791878645355466996682527964308501503237107761287640471746068951795700214104528640166956944848976641691468988629867596719912042806850069150798064411047337732054306324128781056569419686118249184557154216219729141317269194525756716819959076209435555277917978517732295231690267518593089850798890510374201567044313027212432953375963383480917601507769713386946380636881006044282764758795312541222130013263007595195716913848422543059780195130781975377120004002739694111052059086749048845096589423266400530913131392170835832076896020707510070302925483777989780664930108623203490974878572270684550984692856664574451222092945576334911184601720746948543973470941035524552950166247582045542111850678535874326412061393095864314815426618744323671445731773266877780782694032659720261969542636038075230655058739861124075552974417289858138770837433575648850511750420868896208530567903640306859138836621442744551183531416336881744688085121541490302707992223690510542745237188395704932030024424214903657790863042625869830744735941561463910919365593117333296437036692417241715949963623919933064932131679647431921063354340934165314975086990291029849105797910702700565544233680762174031934488042439349703786680091979634844406210566013109272105005813226509028304559927695117687430032612198926371324312429207388510410508481465343961163723673072608872306207297105737236234517680158135909980396122119194984304039530522389260843281898162476538527090956533426808325709283648338173450643040316391059227297104736969668607242597893656497560933434386916725648622389472638092444189608023536347752673949419053218661487628136036684543392933697615667786733534583961199125188245980632392698845428394283124570299653281027781285263674076171075238201100187344382940284501181739718943899112907586664297158398950230131591367660407258735043557136998648350666335262652039753468160076789437294508149072140784461794405538522280771924830485039182427501219027384381175648204112248315843389775939024009928012805549027711381493232663064677216333847821474686081599159557319698475703575800034538294150500329364984302122444659031592906351993055639893470826453251892099618615210582348852505503606442130176731835434735659565655295506207729916808569722525457033677787869235447867662304448851659949544032291155281954702092215332642413059729198974759890430769187778216850357448035624889406707063848169232038658691946204414760133848301614596778756676757375307560477497157887509721503154439682668603171823000554527887940922772338528872665998896948896565243196618985071516173659227918693772655366806838995824950016356727172712865433840767933687218726651558612850935092736560348444692169219161024102862274590516739008233231481223710178972933136452708858162646066353637115208425639349732249339894295410314986550619915924453993316754451977677170385590095007020581297682909846696908126657364994998514888553488890737562215808257483821858436118417786959704601591218295873298122802790153855285838324680624771238529852309970960617999156618685449881016906894786291938456758119520226408505652142047002358545543027278044086701769671590097993840931200594643269169134264411706884571536708395051764101276134331074479825980037788203076344808164933078079848508079805070976881375699849508200442718460962982583236039339555110103313261630595043429514935563349792508574430015002009194028685707798384583436595450589614056321492721851897603926693249309604962940161508462108964367259093994781767079284647257742452140087730136137977038065458642522457973780887318591572581259114955877174490609003317460987743292283120688491393051318859559466042396214771708870320874456059730967027588873752487802735938116845129380257469218107112024506561782379237117539074368067786671542399511513596283296089987134019195762147063469643235569811723278536026065940936149088008333226656333036308145779400012480374265903824626392331524527374102925666387991024291279262949039724568094289079383801974326719290373167146818772337092000467001132810694678474051105754909070228964616219942875615093536323351369699805589572019241079013111135402209845387431409190960181733701512851677655988624864191632630790913563466635893204057829646649790275500715908716899707649056003398687173153699358318028142274719443427003163033792315036083197101164984111094830536183380196750998800531265786514307194863333498316270302212704084432286986487733525538792128039602079720222979964275088616083160451710909202837702262324122176522302051854150426541305203549594161997607333534410321481761072532123895082116059601126641940203508694984407536928997867575539792408705198672065052637519852150025279830140123411637970619337647131296074334816557663458544225253445481756826571296246665710155848497673585250798722579573056487162926860417061868572863571858728209443400501398564479165933464587709628281623130466039641904615138075557887013589790469739427922721654126332413067845756381644378458944169157799468495363918694047817561086820951939229913009495183544629638633327176577196794270637613089591644880329554329340255706025586410524349575149278819748441453338981826381961052293521428542228681725315817241137346216772376300419710245773367057995914246522153042104873704324779423369246806690006290454007396135597631279368193488826134043763470483137049469527592197063048215451132691420161673342932111434807683338017698525336645518590398113463964927921667886402323256228500901423339754241989443864591169299203607865842991271362770655766081946342505735887425753700524119574093271426057618089677642118373223321039097515058170182127844858950243997412393414824406217291596173032656887700096248515850884226237143265000416602910326066469366318303074629690708072457619760349559566781684402577471153914590256793964528137547809755610246000033663387328599965584821198021948238346821925185505332471903098259460569036860540699837210021506313740137294456746928682239478711979305325546184974782457971952648565561409502528446825431429182741908576216540656898718887317627335110561386733672165375453180824425303565321543870473571163608221215833159486856197316082104112612335866674594466536188466484574645387539116793970265518266819771660730672915155285501918195368248760984005715405130940414124584455041605701030712331896017896346771873996248711050993027346045712842174939764052358690049757825127787825266354479014192868504831483259104848116975926019892898910819129893004968742653021856644539448808348079541982425438848184069627629883893233138536255493255004841714511207117891789449426457903322196370769146332031388611072118664921474360696545381689600781906738008938657444780859951268231671037053343528927621262146525430254191691253457394400491423982149840229093515346912658734247106218636675694291899924511656384718750945263425235842994521459698479403564657452080547587709988543321239463630585222718246750656637427015916049814819196883024277717311104254179020864462533661905797720951366214486492546625436430164865961362165633471572803858620451054663369095071424518112205483470681121472363141608505179847757614923524954453177811860193554076091901352206427437168456169833598402776138600323897794515916084708522525990546818547609435383292198179097913474958292419891022592774909692692869806558736494977070046899124937174651336150305330444735036139757710266492770235502053706124842435556675087268051360302942712236724986737174348664378986295820086981552577359444894717906090237930006267642305396881714938192760355408793497590690120362241703869067116670813844140230694305310650685007437553711492700257638740074327397137256753325942949815028232620278482931757088186451725714432785179851701502117268993488812508225742574502079772450887722513268448228532223787675281605221546540564502571251672265158342450315991762792460783537575015652767561501975652627239555629349296370149013308272256821394321040960840858406204855169001855281198473801781332922951786421082577803298097121490444145103978829359144289253125594978156844314090150532225135547528476794011034140859554380144732446248455724084113080204812258860735547376270036972738830385478671250418512308235120509627696303305863462619419569290151171920663304611083297546144114819818511947499666129226393779731603222500007229148885213392125854546754855795565782966181385157612433955924169266287056084387975343022332608089432300708034398810538701845204277776802703343128623039790241422975241377567743908957409245727433263138587966045648298305674294103034574929889187607636908333622256447894910588545359595839103148788184000659535282926632242850027020823531829537478995486558361572888352748003183126310107089121843536677176493324089881192839743285219217851436091366524782580297661417366135413193592506375703221782603949883607868979330228962013853651515576063898668379300920941468284076664310075522717501480066489060432523227608995865371670194428947179604465820980959708946289134560565467305314733155817018350849896068440728690299725646378542267114669409282435024196277192055895520816688568845318588788125673056143885089419590766766317848352671416272397042114531045544897604073614492403354976774864612313686548526216225051740179325123234327586895610075859026338782354570332861645557039048018274909896518149421688424071171503070047663217351095962135571051770261583196570014378344635494635299350682098714396496929950674045874606370766656838033910904862510246868152244333827285117549712553505282786487989961669287699571277384784877681111166987996006827038707306277159451197237419101900008962468763084628187620757493319993817081283527843625256049501631020277679059002281498180172547595643427135838229149770430460727988801386327655744346132458462648715047790128720681516895135896284117989004110278659759688770629790845380722112265904587939616863083692261418422747964039144803100312735331542659249603387764912021098760592977459213410965957259787567158259283629840787707095858925471338415327817815227505642419218953660114139425760077287139412786881237109913179266225391677601836975305686944496608028947858836670358925301645227479190765042113229273825164717447041958534262790884777527981974019451126888399809509922263544491629439869879818467526836547370597509787147005979305943254144660406531256873350236821202652681499169116402081623880639642930619870986954110549327740637206542539341725856353577419890759566837131710080191498040542018893422075256019039453565653461101071000281407826883819388208515250580685452271793803794270901036313625221590981790147790100540616567733149857539415150498843592615160084213034148924400186009751436958242394411323635976343189565296087241553069543700590700183707985618122132358491012910681005340947310139580992321113401892399247970229129529947930499956917393058045210488029112786476359663128716372025251654780222835285401601677862229777867236650992279991160744319675443078258760003353476007603771767555671685774475245642784532935653098281887236843464864649616216107821259619876715948798983275222025495405180197203094194098735940874901539857450938522822271742155016707172140505478521491118272379441343658911393513071460865877730031489263984377859714384630466457435100764555094782402378756265229595068786521693093279557567696458958429627619311935404275621404966552467886928645838087122547397035093763049839961438670823250411404871519078532195576347476551858549770462736144844348816879612202411936135998281394201720967785461241389456745422152503677609295330263279174653517091359880885484551608655899074882841452635353739903767083314487184898351797676489903908801487661032667583046849915215347399605049930859103151192768196401452933225362136031577838144890081551033766304425016219618090789543647103762789087262267070298968621891589665088939148744437646469095119595887552664638015608860754697695766081430030638737107500679168418786385650765746731244240401710285709821918672848280668007175662257994855844058104913141883056866603346416819914296165500805206782719050763165014454691865061672721267673863353767121148281554987721473903847967834273448827611917508544915022764758751014607606857388438481305692629694173765859181767249325100319436381174322377483855329133954734918055118760465816174198437025958196026035539347194415193019144702001575841574071002535630913241182288429137836662527747268179982919188049705033195511924273508860627311512743144175351417458190825137929810955037454326364625611763747570064551075779745087497301272319672897457931912867080646757390099064133132043221257131815655710187090701467022979287453534595017933790319252910079860535700897157851313085223861785500880231338487529894737523661209618834109401242108721406986931629477843227593839965202036927732768777604021038438061958872809884509401470127414381785908718920293007559234025976575342272244315642115945937300177218565781128308235359241756374381028776561970429790599918087106839178360346178184162314825430295403216995001372882818633603603311656872352312894664999580465227250858729546658434573570753751449599163979258579838809605830479200121419005510880604788336019416579929646151499542007946254345794520756564183674471687270213804720948369961289421710163182942020650999084794863042365283274227951318215696393113816119650789550625080460817641836257260140087306499762163557474284729222184307931325195557285530565038385006106809333556298005545433927722458709605345975847282936589682998782017491887206181863512441077085672768458370235926980259889342548790864270872177843174022195162614623414852416834008049715211998156077235809187843711366190512793422139468837447611138650330941846661842415896820135031424471555140625697268403793338812742707044628362924358062870163474894887552168586820806678932931692644042920661625651860021697924127609544622034835476389824687872665616706726442654959267034086399774408928889869239418266104848781244187037129847351783457724713179425529958918270056777764313008349805883985726649879996838146920809045028053069404181775006302653528658378982919055678053900150809541618048813098357303074775455919204275938258715275920147956815365560686009287891092694071404871365618689354727566880357411439093657546693355916958121121591177187231517295169134639595631489002685893610923055648262167540364560603926588208113966035831804616205727409437728946826993165223383471743825406735074100785126101762808791961785049726986270399976016652291944478556839923499001884336286564740466628199267148424378635295740476097836622695806692791659001978826209507066744550553112942530568080225966291588336582885041733202667543619133784648785147734518772858867770062525412759970494820391397716752141569133216707412015058433548170908685935438622723674985111917249780485864435621599333451286442691153225815508327024790778808029300418352587028405460752775318101348701580935412861710987225610820849392456143677061157475306449013535533177683634946390480588389039707245297633586244967616994698964759841703776779457864838729715139439937455265224583119186549780523916065072233372549768357192537441987154186219052302362476956816628357279299132220956650072865921234031650083280993972701799603457729813206429363705761709343935607750961707374076678234877463976222337041724056515426913059391040915523689232703308972226696536025432845361615982247734592533152765949480510734498979801157435343101926876374926428203204837180174159709718376455917072993833510398843762270703891642758760294684766962341040741086726078231646106695384624811524115013925401654296062742632390074613532933079268636198668346454555245588232708733248864792201575334237427764904316578283644406689245111807253252627620628810260691725011048785907945810743982085701982404568002991807236444467029662463815568664689534171378978499160826588682377638598410655721041701032139709361774941913723013335365034834836554600593814951801744610213876954820483697278978937671056307234976037285307268978261303825880341329741952968151420543402499466602104485607467313528670975068011705534662403637642077399630923181197433955471241185072705860133021846825905848539058903238483415508005188766831932638846409870049680881073086095409338434919080368343495808825395475537283531925981448152724958554672885940576539808623921709314053566442766662354472094831396347607947608280486975137748393807027024584470237795414413557424137826817906771855105488363745765575629794221621304688705727773558867642984593458391234694294368617201026551225123391149546217378082856820184689394151067091818477143892180153089149273846529082676081344861700277656276861250511094636881069830340991115057864566125469637716874089726655399816273088355708151270288085372393462483025932305995355016275438236326206922306397387580141513538603934474400476123263538764496308483462053663810612314185342070155720476230930259756973427395998987994252137037359552107094537984426328981734396327835089302192017302327258680548021045611912851472820153388518860396461916934346704793178619853004779913843773320360951171142957006305273242787413371522917594910421435231091835309757988104202833762431241851103486981518788088303472215512275779673495087967153785445965484395137861627176547051343966717848253285406136872440614990395664748987046421014858438666040580498352294472291245613889271428401112009743337035545479286412706488282464930607291826287455345546626512117873396578804962155002953177091852113929970911357164035012618949738562863602357578894799343294603767398452565254188541939288483561431066415705096565990884243443858158304536447287324651653359541384655181782753969579954645536237698858735025079811154395070148917681574232419146280767847802014271061739769467966051545816722658581739837181336045253248669860434009869170596501085697324941178697839145531702013249491880426852208775981450610641219164053927110578250687864913906880381894647932390047362281974797574006108451566545842601667599690692579366556734320465742256797795818708072719306689067968149984197314650587550125087013323040076451860357449245558239365744018615173664051933783296953249882621224398571585907884781993096313381226242603144497844913588342750077506858396315199962585733886708500234336772734740048182689088187907667122608250598980911536068729074777791075208745460873397036065877406209607708024372484539752463483983696799784255397330619650396923756946882147599615908001398464202747045534093871239666726271671736205060373562812525481980581024563499203322907287725569258981504280924750250207249116628106167960698629604693310653288713809688454994095620306863593211541785615191930999065548421185026110897357555342961811400828749661517975734526296796444729052222393373445520486881147170293284446509256371351838001016419147595715026030434434217169630772447094028385636943528864663770705686982030290415659426490727910373303519576036899629055648392016994572934952720173019319336965401251173327312990330745535471624512189565650219379506715455934150479649247057653874083583847791653629874555918736496514189125337004449402448618061629313323459220258123993620484213294815615198806993407232063291228454102671453847403474586390270839814598521121596579529977973465315614568313894425154756934966948139607991896616137130593431012121185282029629004020181098006881229145906555129659308462349722249318318798843309851826154511061054242478175359506793110143665266854400886101815869594101648207182215331697766632982212375357986973632400540629534074265192935755094568150706811137217181984012061678483731519569428310303124278311043684494124757371961428280999557513059519518786583382412057230243649906681090509566762655369578330074141535512304375245750455236426395815046179221528741544905009089224345402501813864048281549542841696078026586557667781036614416880761164171092320807564879355209154052865259310283831024219356996587758164137613058144854134828109163882383206731653650468227403981599739152316440940061526646059234006063715141639787983896368830840210982440288356774427434956091704599649394311873475360360534249884709404812204307571467273175515083391594816039702066665926418200955789718652156967131482805036397804270152060890184628843194959704172267030237141359164313900736622872691458318805900547451706483597558804600902452756895195921538634244242867491396761456790477726263227351839407775828658700937022513168218306496695748215390493601432460241608965214932468448065763006614734353601866625478368459016018194466261348725320717272679198729206799846591319916061563379746811959926736590214565336984888951622639361550007958295430887412965280013992892183153730559987533449109734611018748640076437244434448871313316546318813838652247048977391915077562864714258964085795133347690693810034278594156094967911266573132716195601463556434335525507973846098308325353428762066356688553439248167401259682822723341661550509111025032908910824673470536636526740103072663906081090011787667605670255206010749693188106895456714373752903139621778618195359698926513714378600163109702869811505991879278052361721433893917208470457918237276853270104451193662072821050651929218353939478235554223517378451848985894214793496932893248332592397280155559519642160862654820259027405815135203103375300539340460833874529658462036112406946656125075079592891196266735361880209771514522233400379780361262169106759725945059689363368913276815741916946949154015818403898048111060607872648966646434510176292035838877633283589308442210733918940008274840697503571192974602758087948884106082318600307800584604702892966561044245888028532934161251644801972397918719636344914307922411520999375692014415524350992813122300454228529979432220848806019348227652652196087716250277432209036781333806260823490699193410509081686346062764244007324205193036144459476885803424910294220810792938195842023454324783614730158151003005298754032896492770545143903693833666670910720378522247782435975274111575559699632234641259275617887728021797597091889403114540669498957904807624045424890544674739152207389289658896001928657803898015406651298897143812371014908320289206336600707722241307031080828214391834714964329588174972935016753160057928979424595354418477250719424206385554794753343133530126698301103409727333051182283951990343342427223272089304217688801402228440086540046126863606342111868213683576911286431794082048809063676593645780735031226589439908611240360567246838231942876726686291321955122907897374758459662795549719476475806275660033175478607074909217935663976665680946423259854183350766162724132623921006221760861836367303487703987828704058047837091885645189237297805207123137339020809781733119467640113929856334276555543686968329207516872459090577861702525716337123162310454408577732782340552631528607749637388810256541672562294713994913037087268022650391829607267863350875149778198596325702316943703940696140690029152964450440751194788216166186132896503876275495082535610809036467134313108712792601975872662925726366424360548351652156632918647470441443791931069560493021417804377697108985937351264143071511634100585802374436065268504406092387548268898783949390653482238366344865885346909782339093714419219815574075908530862262123031170414627654268931042672300809050986527602722635499498535506249702942816456278269118251614644133068801606445204476904778662571210658873520078805510663578406641211319850712709044678715404687118716667516182156666377912309955251273357335350322575722100132635939643849216568470707711273666502246775858538327087891058481813411415506229780401490688751115231282331595722981353656340739052722499051275770785349174540800500402468521930372274298000767502570426346065726441081333849463113407198305240896643788045025397593669838098423365160669213615436187731094351422533576340865984860227037297602804148951427641717995828123231816769791324748503792797892621788523241145151277554673130785473328818297961044975471945803338499558432398547949113933487627446185324537839104625534691164024962503050647032233659201725894846302114479586429413612603984616878070242725332231018238286279493567945179280461638850781939873713360075379371697046120063898223578569856494471582436502821494719904988071754338755926882019364438112287184989745248333110575487539036784587545700593022668817373852222093008905153390602045030241194822529568435084111983105966808882706516611748664371867650101394710737662236520605050916996939097231254659850199541849245576093659351168189538673160845808472055439056456471622967983766774744392308956777044515085265496698287311937893471144412633287624486928699635358696179263767200567825539123111165408132213344409036592568314631833273538839892522468582121821570176093625919991043484177647848102092480816131307642000984200864634814561955771416082856856509642949200637296837367805856993968554748204309863399305682586320102576398919634183783186757104208501336304512812660883584931636812594393338325455548756544753478070389304753419075227706834425833991580503431191447923284842763958329595052305798901083237027493991453396462773635618401487473098906966063431089190524992006880343000515246145485313895763054363154573408572190497395121937247519478359217981389305066275441107171641929825541958283173959899290950732351983071699173992460570924184062757422780493980303523018441755869958724311314171412605102021193439459402306012360652844022773349547216444250396635101996576216049700727416406647252433105512500461712542624090539429315665928013323788448803473903537672854762225282530609841542764669816689228319574648184007641022554340645242155941153219052911857255595038492711081664259718849957811301618989638206827111434656595217803967686393126060887274664249028527543703310852369492555736836761770854474136602643203871300175717851780195424746596718518145016659044263567877702139026092482534617328819886139937947192626361178153407891381489119754167734524656588738212329007886612687058222896483008270186064339980718776931762522747984064444428165041283000432955720134008076482454192673811225638856558250130735132444505268746730796444055378854736631518154719754450838196786361827915977858147487105980901467822922322427282169023290346150868321548868900569871101419871176683233927329322060958404524497057454538527696934776439169308130513058454208617809728191784468198885223696112341317019882387800593336273950434903104813860326607568741444317168486035274157390608222202241357882045799434435329824956144137851224287668345880764352175348018217028384660017034444550949973760867145894971412032599947867462589057103141079704523564035106621022226148654655055732631670528401169621209439934371451400566357126539919436751415226278356863698007015052015598227320499925144237131696796737936330387925619791978224172231943847215487209137093126493683434916119510431255864347906839397222565651975830060938834388253932834494279535265629504255513937037228986628963115541290732997918827793140193519129098429684540426448733284680227599072387980442645661752989047207912525067070021483732766026604419126040833710213796949769044599590992371058852867058342917771645138548833620556092448029027744243092847666112339720662729145434023653157301595576484347392373041426487034919503434911255439080336976969618823883132977937543015145650478438459683894704302842172523093107669657667154053736715441013453733945389373052848272077436148563587958269888720937450347884085236270947203866543410843017511967788218024909300649397226424737364026024605124049679906852457384758304291905188041689753437493903866604827463236997442419126442434532258953097636341761818928176406209871556613383369833370690495299706747257899088994142090511778226667747152050443471634771830030946742303561292208971640110443349530026561673747138649012349911725852473992068458726736244928225139617095212218172843212910603533198415385002302393556700132751201957009762049881519587477231454920838333436155713421353764961629784635542064593366984963262327873237503762647378284048216215645359818601721644556369244270677281404776032527406732732389894424095633365796523573841209737049935313530251730010257423034794908094939129046340474462674500028230053657197320491872236517950446051444427467488316564115278010360353413806493876180588937961454632235905221301909872123230010768205198710831747499914024499569250789905243790308511546556282734825447398370368908615767003173242006908668469215897605819396113734877896027558816975506868244595509792946866184571883108905332519162797640190020565847570731716884393613611410679410620601566215109147681390270400870885005918823536392423302850972432606080918843365079632579737681305009849579561380069822157501480377225605576315232493687156866145895365953914260692673931807929166140591320934479217055053178869587238310510191318165569982165603147828980096416870430742143582495847044478302629979833103673924805867697580503796333482769498502091858401829485086481728460488691603708788511486536151747434284444207158835775471088654837400886998491056235801485588569225461974784710917192557731987417791983036456155989789744478280105455370967561974532983049498572217538636601405573214815028869301301788913100210581011188363369996718989959438190581802365061805945093673867493070514094259681303852370350979381518919463862278550029846951198115499566769683309892439973394172286934839013245056909293554861007963868679879980218127184430335130500271289008242074314810706068543451153604449428374063075746571252161034369914647253427478114610801402066594418302073392973588443277620053579787136882138144481331603305342192860765183128012775855621979899924804365201232519647886066285090267412418107696132413824778270332373353672921073051165765399270219570068866957575731935949487963427830806879401978573661566717457141015116702958170109261790998205673554592414233619175575085433832150063252613166915790851684217459652447650407337718275428717667536164695028582279372438311471870429500031925526500653099570040082755418141832432877714573862884667961053496735067284360090798225305375226137265738026368457851633550645114992361299914815290101692169414974871571880951605221185442193366872260010371040366487434918106471991534731452612058047044807692623947244119580463520142679189521055754454848210707409135864796929202640302040695642095596785670402234395140813847487686313318073516621714986776452612036446818685136741847846037449749568650335509598933606857777996117184827360221869624772389688528340159236305824665793373264087393653860973246974336083167807327001710526710332003968510467786118902929317487849674467396320569035677320518289992445052670302368254099484320314240766150365028261522837161316139023837960517094711101147682215326880184326930931103942440675264172735340709864274615865426942400999740882884171606708812880979195255038800162020552533276154564357697435819981087436421454178467067371179160955394082187920127680734893986728607880232006398885006330366664477809238899476664062443300736234288906679718006765596045897828293948459672695848941959402562858479285842992730017483024200952983812617334272793332309235430338691678185934189570455173377298642171989165265282217286228076595912820020071556562336226183883714290789383937162913455053842315189503641365123813667390431403472766339190507369380700271315479923300447305591436058398227293720747783815058080453698774537350235627215828025311031854182513992557956185475189203419742703606822539992923805607993103913497751211957338695576927232902207825112917392251053786611458720972763669176917505798119416697433251489132257853524321289733824444339374218594102010006828123730534696428518811944101611720662092377222386725300054131538463865663272092311211219107680374462901327994981694493806157833327920087727237011147015875972761656675539671588945368634778860023792881996092312558644165735953985987306265576849009905392655523495507565815656244370834060713058393584248007891179440773538568486471311906753877893701296613519505543962798476416458852053172641663644670887532360996132645031048309988080020795774501633719675836173686182388144474369463783772845422093986240889454611199870979118798143957116009800516100000830120931115273940378796870941215974092356219620418399668587343653438300933393557485607388961073208167465940265956589189470492845903484201072589923479077791076131447070378241748153986986519977509208216023673495585449938512661968062567713813139936547789745826096169369494569319484707022987984594804207798088102729927143547686403697086027223710701620729408805457233434295316921984080310589691611936653183510859451590947348594804434032808201269194153222285589918371927616408683683310070113195115943519555878767962583684563090834037121386202604461976278658289311559924563035866097816130088569010030281096012818459848259066820594459080812054979536517894953911837320133396963128521248226229776248385197983611651560886894392951340032241915717548612738606723508359327963125415003521544981577968298560736499519259983632921364822543715251097952672595023509140165983002720947422232815037747154636543472265235596661423116672044350978405022496218030983150777777408392466236359392586967437207232820853874844546938208986007264495782000058946855856247864316148655687170961330234568628932844687448691942866435987309515017803197720243148110975176482216694843881727142863781787952443552968660607822534075860057729858078377062584456145893466758357159483877057247199771289333967543067909657172015250318313365848604295059245140526635578157859317715516854880096595377970114923922199511430848822710629185185755926234759851350818414036203010878473135627017399298227302378772093199917774244408978053891086530925977874892514589112292449618251236765486571082632037684450786414739732681194432108643534815631803083497840488401042041083635716081999519787411948652934771518477400652655165851274452881504987259369545030378565259917091734750229623511668047078134716375044626631952722943192236793682843582220307247292704810012864801652451469465142879209260152949245015888912153059335830855738487713668713909727100700918752136229652460673331536550802780208933805884396373889234879748260509052910451164750526101609630328848757490563504653755398425069895287811658487165564241598790277883030161202700407637836027062958316837814284362334188460778288024401560171602051704640690385178793283874191446413286675376152118264343902588259239786891620789873074460643955048227611890721944724162702357337436189241898806227535818500576271805258213462933455256364996293827563768984149017020472740585133115864202366915559282961732890662531100439766746627386381213309010618652703832001577113320235548708038281423353768775926103442969288193081431464969298573695524598435930949421221620602955941007814256271876243938585010190396857909671829295139395935938988422274258196938631841946469805170414166697169640207173126931116793969138954899549312056065188554563347022090537827002262182490749990662718169197682965395372713913551313521708179724502161480204179032768514600238624218258201429277313105057977333201352278678126449135424825886774609002858171777094027813567603229559936699401822200022980176880828363459562156290086010301920659031991103606108265995513549716459625757567064622637112525564814914296075656946328744271480068897226373255811470102148584453173713009236144453621773142328703463042118739788636015561972517233445377869398873324028944153289286361241335193278635936199380613872112303506956394428137175185686843026259464290376695472835060446652504111380651131102423931184586459377112591619197819654534129827294782366552887187914857329704752134200489957700343861028279451925779117498378880924507121467429254261049618210578568765736565823381242975543234570968107909089981540480513831970664088965898621675013680930644186537872282999376664823814767472992354905659207013749542077571026877625744599428067509325271402479151641757147834134196052267317832929140324684376340860619537843829821246802005561394630883557454179475825016072935821107788129002130419403081071121978436921484231671780475160316252934632942865827168628493749435789290610339882979776352852244666141132374322307011687099097672239587698553102517806976771537710173457537438276045720038071251311860573920647395933335414228254443917238070593865611060632457425863216466273507582114320922757306476255364698627420383520604668139492316486214958986080077069687997727554086628263096265586481726088736950721135390983062686703726238016080797748340749763872220371374026244838558233395772346275085752455468731221856688769216424246892709721178711857133176657350982498907943474142134267166762207867079630821395429805688081931980210865563860122638915436563272535194206244116423904672915700069894292417232982346774733331963040295600277678972651284600509276799068586017964804676712082602339803074247159520929035703375942014147747053206850705346666831548348721639227037372931362062737722740143951672564165077949538419454914998500276058706819846721456229990844466179742613498009810797725895604360076640888247201676637267005950380989264558929904730354596957056076530131236805397029924719423374861949397619023544156806630498901693400434806084359868232453852789914039008584106816298126818566400322909507877388435905958187295074490293745374085809796453477192973829080599518857901877436734556756578113296410993772395022107818043052097948059920308113711237867394424155662868913254228461227881326671496892873270099080000774829881332150804942704622589018066217138307423813733958979605605333830192795151250399603555264044841027152260196080151342481527317947700147181749341584369892093439031035873690157885576299513304509210641672132381279482619574928804490691886623285530216939659771025367102104126347725860786158652705847553427009566265566476141030878547395208885649611881728556800882247475333737045729863472103325573441047412591720363638182587899471014148564639986589896310101167069821998390336000699635048823457098849424397470871733822746607532307542631151531487869423663641512346707774954869134328054116685876832950479758479046628957996576102637824557851620967419546495740633054775325255901612882526482885383729735227149419139448934649926562595748629908102821838386799439720659559449092336719633232204903949989405814380950699670685508675457474897257732883940500212426494827871360245896287331736782192161272716365933196482496832024378565426073058957038861624772401216851025121635646493593456205979703676419508568699956078485248910549067823298078424407081633653344621491346029141530472894562526424687933076150664380384929289838318866683886746842825977708602841088394960147960442090074020135586911009022397409515041095562327098289681005087050101831297745412974890030027600882894578557056786775365467607390531724497585689778429436825284509718133674333044311750937853281124695170567891861721833708081125240067651507196204217232323559748370114328567017801071597937399411289812822220979553860568858044128830186182482138857503919277199727716291426016698364463898391183856630950336764439287443132484417396662474725919081043016678354638779649659193460525071888002902394539993357173077584306963241852237522692412666556857134127022610938874771163746572273358721186881050956326655907862046684053553232500236043681691248049367757269905793156839369051492674744026640098634035411944058675867446360771063798390339661458165203298223494631593147327570258457970563936271445462845772910735568149447749038546595164155357090197305490680421081087654767236299379757198142132000096414206534469700947671641631898569264886970025574426504562705012466443382258432534005734414826429307529312920033203658105013692964086917533643225028076952856710933010729343500620590378493644363546538151208656465484023801496346079146513114061532229862512387651143807276089181118306469029787903637985970702335599924524993062204368993411598771020178742179563480954727776659257614798924399623137635192328911248334594679857762220569909503621990103127034824769372184554474201009226273168010596696079914355439999007233071335627640622471779750092738245576185101498226100759614317866904872526191819749617659604397086203786713209348516237994647423035429713317020108631145252551265318752040276087669760709401599377310914814111938234747963380278980876993333485969989396541900627914204049043452691528780347046823709896710189965859423240810783620621079572142425819844064030356112367555731524658452240277486187566056314203714838604565452781914049448853189364492538158144679895388117739662172070641041537747097187588247100798831024157901717404123010209370824912533503953721649476878892932103455461808354800951025987958579358510262359501295869744948048534656496818214176454470455041216011441571252489861174184052852720537477573946448908091285735415389679204862908137433852387721007062242846972659414503667258856427050066246535259293844923328146543415127095668316659262207819169424164435784836067076742554278359509457727605588051899912503734125952370654910725392134212390121425199938559873050092848251183769198832109423867660652049071747746836774856118027136519662136926634683028938154663119171803387837429869694638236871293293811810599359896860634096705323109439038398656562252400970163000163655007233875523311005976262844710686126036360000109515064629604925047447332422948718155479581300145463467188870389646246559718594722522352402645385558502070695205237856130686148756834333931950712370580852209698182526861636609840621616158433198838217934054190568699944697234993415858680808053633338175460190518893471242273464267025356429950168368534834786167707052566361071125200845366831361955414759192857957617619385073992606086726920199656331723542980656861045767978691500139649661172508802324521180831581539091053576368407049672525585816008370682288664660472625987376909561565600402996079755874335247459970715315223681294215979604960982866137896376340337359184104767009648305932763331015376786485825584211678024783439327418237137074106984322521897431536291787718988359592611544435409293554870705465766914273056121788541538058842903976911905321608730525639820888865154755343604832684683832214264806784827352802596116374835857618099059334193954863590001330149261723895369200189996177931952269358293628831707629234911380304386902969786744541719951518723581096026910647354202924642139410096124146673919990978555255723928484408830327584584611920886413798804889102130046015256642572320989825834318804059051300125580738762556079966174231890185902076366998052384470059658997446369640219976163521229536321956526016362148550283043899267909745717338229368491233867642993327438530105491942834643666946842643786337020982204512546849395481826849957566791569248236220560682762069090607743820086159280546211553773888575043694222296143150253031012291736968775506713412937779761990641117580551148898555360982729420948753065799676226052740894581187253784582597925037439746677074505874252249813231807777733434443035586184353256783218244892848725664320598037096237713283539197304748856019301368050524081961442905304705352004890774128989409683056067742081729054602849753772799065824942621938114796415434086669418795803135152745532612932060517282603837246766826966473491386806770687492380778642412159279653158090727104237526424150263884537691799141649797503023074211084177479157509007091780445188637967144307039480557246454279514999761381384066916643598732244006560540048254429351277178409193217336375455202879848078174859274138250194329652165678515538538848139905926205612582845434973547643461319608697724488549826064375708956900926109491413507024090705464189053734602613431620599944291951887094254054067992180063056115774350469658975084183741359379663098341184973248404813772919463119843796776552263002866573523998588955162123661299386895611375326220241851066482568805300919064231313954620559959145435319447577165285913016516972695516769087461959908151635310560634743947410906840674684049916146126526316477863444461552884921716698312620703136328133733824419971903675073889796454010171233648217982861672151229026028830483040725099388563639773868056289717268447448086459083307526602204349058812387061944097275965244110486923974794117516616600941900031130391586423958350330447979721372832819331223562912984841706001393933677614277482693787001604304316535474752282355449564209029147619770436767233895110040629123251196019226364879854584897933517193087715649559406143968648413948699212527493661697261200934277027875438522727760905288267223188690783691353558026277551712396678300747034833453563873352518780924085361642813836035068094618307326670726864391671090143374467859105157238457033751505084834463644056915361694077078764487693332729348690177189271997173590183980654665807152376807185006868177215580111606435270351970153292786279086299692991553498178239508268023273240849594871951056744451544691526381249366459605105283725238978607121538944172652449562614375560046066207743538783977697228319261490981538121812877460996555032216935427246027395129361750934733883647754798010488240201328208840355181215367826791110080337332468712821023633151951388661636342134675030526418543457399723037931322830767436294968716684484694353027349145848993082239971825838089335829301171000567163486749386943064947408256309512487664245656895659166654987010761503346455968765943168531995344904343441593386186244113497396066721201087334260347332492513599985126889129722017110776663006276116715664161560825525373025159239201482817736885272431201900640335067015024870863275792828307812067442108702222753254668934203901892025598246260134031585726238575727658304113322439347425099013150960474456050413424802928320911117157246883996954919322286505602671879734336752775977144677591895442370222794062287761205582834324845483324562923265721507645597045006649314962283163565542926178281191838921558276605890111489507191932129595041065893069959016009719210318898866530953395849219275755936081651226794280463724981988866961776044439244514102580934202956119318465018391683728512997260240815321812136845484234187055964493254335412187979831760440440329245452842070159137090605077049636478488842549877187189665309877996290649334770531953381174342292598259973598467218997337315599747775226010100842623870635549940057179701983675199350399249736098643590694439146959103473200923449753053089075459560222677309994364644070463951210928861786473759940923608944555973032638409779034427377194860019882097018062626986847452790096388781453313305374564391134965425220773255620524152378724531780072870578648655482272622321413803719171936140138210126935701005672528324365818869412574735252094342776562408752884159429380378757809815308126802537515419993231752638242744885144426045289945957089191975695952281475286270078875314072439865117375140358091718223713493777120662856498000747720006548413059579812611019549494081433220428537266456227408043827390742376138343906219593171999647335479727916537605807940736667677322085525104819714752367715461740346217314638394062306706682027134203489409023052858242204806079279563330527043376463740952322323996607616679973066759765486943519660863504940056545526580925840635759532717551069953109593466804669124585716310801467277758044618392407923020962452727484630373003685872737154522980866846829714312784844053174492558869141324726295504100438119658192427001047468259881203826221694280068739209178552733014431208710877964235153222575568281543726536854764376734819157825051487707020265238475037593219050917940491931926159906673184513889134639996796687255006191070300315809079170719134245818988989677843006913835848760653367259189877696005000671076066943788069923807518105577491802034152787272139245269421494164431177162464646139215202964677677578802874985230957345101687034175172324501376064549141534914666298541043841095571803363244510387417800548389250282633783590106711990724684706167079710412126192506468422098863968248320507220587065443577239084145462728439888048346585444648398990814846408136284063245808440726332499089858346629494518010758994626326745446548698457137375900465557347659898386424249030370776879940003826426266197456671915144907839257832295857909605925925889720974950009726127467998906242423345087383289897960328141815375634766414608205201408385572885836606747755997612030418441977590585967164976313517543739833793558729162063252748988818196910085086922764653704749640903863937603543542539277681969642299870512314543232757463570164780059196301269109859034463856151352633993761538679705747427684193973017612576108166694000359721146408958727322459994350424148605360146730573494062419021812166712224458112216623441604263507780252791440688089520609421611223919618389039231474346245576895775719824036458029458954841549781048597224900321591452974647110701730022920270167662221242001582873263781424449707059081377728551271796186419933851069627326121057508435161938936564611325015645166991765153072579111907056279297913875973583347227576339349932120466500696553455278129255230198917026625422587169066675379820580853225140389219303843428034748208385502292847138401478722196794601095065730764476523419737769165571242809322844439332259638696879927478703156040161243279774201477321235901703268177723355059645677966155552978731816313947480675734950830125187423620952590322287168298834009163735772311201165626492246080480821566720243391825168797792366661514114990306915687427385894419947827995893115268866567985580124090287286886617111340169531744609512416143532215812612923657749559961047449782825325421170071806533783002633276725796834898291202047339637593703464575889093648743309006914632257490674207434825052955836106213794929414785166891397826532578472120070249762919254506651430781394648396920948950768269543891087002579950998826636938337124093766847052453304318204137159980597221142049433688688890449178769972371738938721708975161257505910077507805249156291866731931831954870881956163771183289744488339326281828778414687662676778052306131321499552413505695971726991388979627129134499859635606144759070456812768550010602646377911931008992921028383023484986492618677832130948974386021827168164946429520644278975670719690330759759199119932539614970058999437818652721438731945262832866506014311672816068159606274864511507122789907477615252926454432244558319451233805397170828213630669740648725198250090157430149640950064713579222563898719022469508145232167550010063230620107763979411062701632763593265078788003007882094942098449189289254973517951340586574229397650372020151792824034432936004577278206864645581751590144752713893246221926363011479319579639374921156307478959600500146176431864909280944984038568037826136858753639532743130142916285137751157272153644348029086343358070357485485038972131025125154451723436880356788733983500075524415044083696446803400436136292851405938828028700884467265221998947635212236649687389531177633295191931626792080249838206528838019875493728791420597883669209343544129497780523369671916434867692689204653954511605564796280105350042667541604882805528407122117678343257093258297070969628766980012967000516199802645495938777474997122438043871793131594243974805205107283713546901328162779772900841552304538740694837345839868957742138264812693936864816618888190837165144568403035626867556289362735062399139699121911705949361006988914719211857847328569135175760216413244648239623841486328989848658387459501009352503580010387771429439808523910563821767098972768551005143975593595806227317589883016755461124913957644184213031936186822785503820062617922985866923683034109318832112504435105694121655931777891921227284529891862158837274326515579765638215048749595064178680018703098714997412865187066549605598909277307896504739887669951691674299783107793381871950955250837170746172364241631154594292334478154754980856945407884225467053398107279472098364529366633155159336158966448511994901123210455391120772229015355864150863203591271401258241799802037882736373591044171715157369869388620433579781608705935145332573649360655276932389937238768324996043288623811191383997556488132743385802021423213166926198908319679265593153390304656139795241858936369034531486986790071543168888083446005066503156013237415379647936782518176441727308913926065202124740400119598913601952147675253254877186725735924158000365012265521300813876177493297749368022411531618363940760614993057069134290372044929583806902723809304439229408656366487891221005996497589151524472546974670568747563265062295432733868986817288257866290394623500774586556425121054491158601053888535652945202852577321441110379904978928135607116974836670871828072507763787815648227548225283967221741254365848072561980026143245385973092914209206825116924318488533088978722116720086869219288353760585165884365278164875600844491249105006598184477760931564620622160861382762317634836420998162734728115702649958968862659169898062676930184513634226226405067205757330081071839534431651770599004989006695447655847251109936336779007429295995241903105710558589788797876887966946304450199692177919617673959042755657429511248002608404839284716208967824831936336973013062451752015667944438232646073946639619171643477541101707021188453058064442741631463943170477797554848580220482065780845467928891519581095037662815581512368145347131097912822791882651478588378097323323137439507467028758646745592364209374764140966986866934123608686096913543325422374611578155835413362824449107005094143590187682984882397738534778621022324927457376480382025806149654741499329254499556490030699750039799667849947091299200090265188812237832915436521201751897282950314961939593819756580187678265247810394070741853338439540137404494356625535385451503313351716067547595118979936591117520726072512795099403409461724151344190936389320612246564018616428685352479795717402717445377417626535392642813684549463320665475290915184437267000782054650143630242862654503015399546993462940946118557660029301731572012191064386985494288756980214920517432992815214671685844129115949853245376326250711844528939396875008540622622013515594352112737424981101074380741485035643711955062133040681845712671543196258719784967813691732245302761441817917690732415530879011058845950645572825934255101389241737046189894474004108672671559150157860795910165616845131127073157250451385461454469736621113534475786768857833563752522709016802527797700693931200441888659884547892771251370213293741683136720785048662188553672969592661783242594126638207164801875708708568295329544098331054015226563937369435484705954142139774703337137877223047742406288119629418541813853347197853656176674897400086864335797042038483984242483782110104139688080954320729258636293476853739896126912011113506132775021548577712541940177020396245930746164682956691802342542474459394674240434186847426688274064551293317350112244334518120627007938146544436579980351358632930311917164764621542483409320536270556290471929756380808888714006674280716133281931590232302288121421132473411064978699287543329209337401507272654573371025776991720506032339687332382414089622740777204810906268847834247423875953628186755919058628447903701708362124562696027143171402739483438980050342734995103049107749323110635659274763648257171227493960706904139890623628322057441676815411879563061813267188623670383739113560178940878929674720828932150382275351341283669349105511771188802892698181857916085011450228311867898888365874406615500831953452541191116560191352379262606958691124815813572915792851077149378331459642488199410566640550362719891993281197528176082484223384036502754109939345624198201153482284118945856873162004635729795399757979057737662444973953643812362120777342057121454322025834346778442852451491566220111662240783241933619131547871980261927621143812077872796983884915317865142164032759836052728870162753720952158129245825670726987165005324567192267701476962554857579475733752309695836347146455502363807209615165928207263243506176995612792791555943878907047642149512004282279331138635762006065406800239211130677758581492367372372801402112409217232550053258983352106560047068840676312840941329242231324608176000504195506523035766539678033005802028937025576458330722437850446360077427922176218392878749090339861330319103681278197534999287730386035040278058634574196330427860062846120220150992853408877523616107216905626925362987307028419679495145454761289603687160229587606356446132546964125446265006502958554895919561838322447076697581964688599544304284637472788197846188932710538828051428726589135212930797194971642860932655731589628824651839550123498350862024644917184468363476144541047167254991136836034464053859176475990526514204033979508645055782633002948838913501155846231099210712899399798303267045433378816459202486859621676649705068522622256388728349895477615175203504643127168537919374376496818460936936519441739415886153815533791863974431244577176908449980923793253012116112643422912322626218390187788710968647013113774370052755519491010449198758919271851776106055645048119504693070280407174662063005977937650564748131208953244886918173048996845777873889265667858440297606311213072830766499046327501840226825949415682637943026767463914771114519009507446754884830638740433981546105756942217099980629698726552253168122347539176028473702957695385433165446540065669406619009497299697418124101837787155264974161221338415154167176985022301952133135990129665904571603991141652425518006893734568588873812566424373478166688448786124796382210593226159023083801473712700777780325770544035919767883631921007198313742334683905999427923635821260639067176579189919907149580498777545429502829264832109837248609468364754472357120576700143131994790489050063416524490250959901675873708967045585647585328190628214349075021342894949429556224167952087787577240794949291147787878532509405856022821310739306919984086791943194089997578853677714426328422108683786226797848755132587174364358931334599574811534885385749370253308918181658563827131693228601558178883674518672022410449150916486804624118692840600028394771572299928444547174817784452563701004207474009294016364763272365498837982512939942590647527980135014060244228767806917493181509222764156205255676586649461823423632148738912797107350322197986742725190509187240854417830111309866291386406730114093452399884351674872161622061670456560304392803712425957082213989157904882169314577359005678749044213351599396430381500148378272576802818022076960220395697772251898886088182146269024079573246003550669468527342396046137987667946672488596244631917949687150879234460150534775370032436858453846652919994923554236759643337538099962236772662457767889037944395067250011847855648385935634809398170956425238990785516374161884236935919852255457349456754184832430964891011108046267802765278178220609588024989171550490808229351934311076827517203228909560340119489359350259396227695973865275410836589003026925635576475502464219298350983977289243227028612027086520843952219245177144896669509442380383838641699480979314713769927021474579802892030873356493292472690126166007614795329263265451552870619680428083889400843741913482147582171268494432254430947213832722489837786807169065566773456643215010649310511063707811562723761231742423361915792715215913240418395110266466926451083841071552047124621643188991156809763876874682811744266323228384991300031797149007648930332818232260668161459581003988794453500766569188708189344640976741778728615235489571126411649426725671812835303462642037411009785739135050440425121787203362618289556284241897087320684738673831337668824394857814977876344830877848259731833892668210808009038760375537721841408624803347321919867150714209612137234645359999689006620058643213661253213979564390592652346600818546351970090837382518361431505098984476695095817711793319923056454409377289269801092896577717828650240534956551923815798091156433394853600450731803530099234403838339919230852418740234323101236472450464940047873663418479098271271159382181674271674651637577321423843874113555085810777132633102789769277692089896871772257880004766057978751424393723442306077300840870012600987649086841529216483626010292517812855283372631700602323907910253067654453195320373202121110954075454929425980597150011303015247767490293099838527847680196335091335601658014305302395181450574245319729615100672951464669197166733072774448240024491993063278052935884098519632381883840178714871551590833919124671009415167151010607135607989571236109690248153400684786841581360565581481560967742393365638971067081262617124662191384868424571626728418893633284132933551185781621125363747150948037596149931130646176446850167493961175549499958618641782178567993003685506449882174383143733768587720978076358867190438953219492246372057247938620286827453652930057396347064480682283541985137346370228535284836233223931045304391024528155237455219145669692726881523133673778169722171534656923286661432699870935879476090535143528060695008277320376240505813072043107372706164828855720043508573196629691572195598772732374440213039124194573919748374632758237322811118971188227041816202192551510368468679840893320455842675452407881318081580906261514177954807160634932198580869223372060371432555348369151912588865336739242388774870140941671102734141752821438878272221519495761126902979392132630187578674521157387487458797464396795159913651845247858990313086906028664489855157340254404274939198543083016043691386781860980845924575986216637917866677433219898959473175261945122994458881047029417080283086015514978078642756949315333170961597235088100304749250119592275780068845552117004583895099289827583545783289044891675133460644729407231398495971433810509952050566264667918361397501371791362240719720624921211790674640244472831639307911922267029449879015457894967753041444639815097138755681347544844519340072809896038503809374500529856539191928463892617743388579465772987218973734161449651657174924286655534258093572049000913633575479168221022613167523410306018852926270428946156196606497201092280028550439801314354468520454443500294643312495631281592320366701228257497962692882086804029679650806871660050706542591863279502201039371024291507650114679172323839634625777299611017922855342259870863981798258798120869834038707815406286570041676186109580059781352656529888796315008132269136260440249447778564521421177683879536917812590392340862633610393110805878988039633996128131672743463344223059398856755697148568195355433695209107584096736969350254409339770685577621394952637136729147559735885697826595797604697170292024114900770851106674136142691803932171705064193761283757246269564184608728133358606872452848659992133196378846080813858772523908690327901154605448474291109123965633139957419371522926271380633706041670345603733987814835616466934033638238204096377296736725035896987405480784450035242491847560665216394525810341470369141460449263855426373164666761216228271348757640163721665030492556860599918576803470033055510042939106637192305933662924815185155845583796555546174974814899767071266422895889845609744894546654895280771128630562686157975136467456229655279787741575368991229170164015412466865213436424919205831371245075735191220151195918016394389633986363732087593620396880344443012494422672315377972993777937155544781484633708222827832678361776903833781510105467796380425059996036556162436858724433047819597266680201335387890374868304091454275733138025581526921960816083983791846240246631526467266281663964131055751959720777514554262129729083882977165672817259517836291568720155654477934594326338535489833633952091737025696556755522552723281264020994096276694277137876405622595642531052572622641554040768569059865200329215757831551302482191964119244010637514581619338289303549821212508243277573199672787765977376326543770491298415355077989618326013610031545541168065325799126246884742500377901279634999044996961526257763279367722701958079251658841621502564545018058540161317215959643009531523946041258251526653185638002673225500738420893471699669603995907473356875794761699324004836651464644272764129600965111749427242375152688599890036509046192010539158296103534938397801485287089405119285273107665284229028544573000836363023104395427357726222279596493506030380690326706365142271731965924074640829453703117517576982631657605221817029261593969551252847298629974909275771530381510214991973145577343794979773873803112681660807089165551200436771858961173692147689111338907372695262631982646911413768885603721017446463262045890686693716401501224512515839783772357069031485306675913415590482928675323423388263085085313613945648140628934267303766205102713311344928254096539243632082888037807557597030018193583114532955566751887484295335514315739062124445208381640821779109221533810890618461878397400869509567458126769153894044822123629937734032496219614438255687861140591915508716730361020802011253774123197400445868540819227184862965975338012238094638936378039287435455642087578326979938793368738614008172794663330346821739691435244978544766020039689182592067761509184850947131166711983783892674333865916028641345348314940674604323899269501468967801072371473160209767802954382147141286136646719933882132709053168719150157441812771461130423841261920811419912243944314190755788405348855165480575095057691063716900539249436957940205819558468399703586434809728133450782730571988970250637058511078356372135500358733986003402011222256067514756402888524172468617633738796426713363446618392529548520386754013126584338681184662507433955819978858547009543439656661290060353004014556804472583784096790695888766223058260042391174562881131727915413568863779687685351770263510341848769968113512605633094621722209378600858442512477373082231726799241154689432909649605683090570531342534510628256836748677067224558539571608584240276199766718126729390846124178817318728927055921213044799779615814583680842141810147966743994005056301864840425744355158290704026482271316083212595544869106825603586180835041095267614938476560366294500545301817513143745351984437656828688468268786156720503625077108703078772724884178608471142302058118834059456825873354150243528176331636675900961567653925255193487368408629196825402017927257288961118488017874888827173864116879974946188104004926306976670380924669995142317104351750803288108114489949322036470225961131736974816553503395261706075771885170715305093300952592444116321453288478939186081593117486679427546465698417760481339291867712171180076311897261936654338736508483375256864793383294555395804584595342355236951066074922810409023748061234765166427757973463112703485057842078978053260968754762834205852261876009271165312650764743108043854553253652101369697517280618562010273423808006267369311867003879174985019251921240767180501522128099633330684844410316132172355857161059780136128605945636080831981357915621417581370563377465495038017340863371081755547083786372893090350758307080439896804388516277868984140118963997941331904826145612876848973562234821809823291260982641879654884656026849360976446968523603148832915591995043793357023454714422878760760503258075471626123377100191435727862571661112468415779343242891057966025786047938926517842269327801797907000632912101942972418175457834165403215663479575854504976653891828115845290704200035672860092405291095398836689597649101813495128070629071048906586227695366191255708561795922788660192212082348300099554587912405591936275404057234355155585637420243681866954555016522011311218852897322382959692392535091451216950909711159956453066180976028431260616551098085167379532744949326734379111036376493865015878718037462446263819600755942518382275626018828713186186868092590248277624989080861343671586979680980664015241053703665378438294307289439442659090538876955572770297890490923357749879915994022462731010649524303126988544745043928799557413127953063474122454509643811635069357436210866643098463886944022233192750086237411102258327834148891241774733986713780926960360984786372285234041472465765673122323123235912011563278886510412424865544973930240822758079731625131021524885315060426570283812391578006396380881121058639698804664826434043190919057942137220310347891532807180095999469820581586799041906683269287676333520516283461929010885845040906901724842452381797417248322501938016713981453077307722086632563133864684116843739220734312986323487034504658549376466584080394613340509729645777680130050102055537550919769965651450679504052069929966761882287035177611417710164790158596105576922332556181278861601803156748540309960894314773943252453250587433197771181667746629673322254477402770751607622481282446197034752873389269076207715681717288491156380524943227953411616245212051469265075121257559422711753039288044374817335964142038546924456542346346605143794904898778496390991149069663005234193864531084807159848746877618441831137528186685020785215848629506234793047633577957513211755609802124338190439950035703806459494334330560539762705468039863626850651005624764878347059156299893883620920814146666318716486083349604675601564654062104943859151395436619578799271225228834610503798847544591782396924364816060175190223308364524088266679217490637541768500754688070688415971209221324212025578687649030131992045277078821580323595422879337916861944062596188336869054624972043881948822506173537613475604363595284277022585408644605430901908943004596435290950395478246411050275008062035156955596515356780698674109197375268281196729858476122864407358115449642919694505908082944555520108980611046473917004141811641077206402189447047588635031653224349644161952269979521294123515961817502952892906395273220883170508308958931276733835427599588320468512969297800589455534908230337334385673478787166065617639723303953026244406753057757906521284359185541453259893941347744412200573831162278524651556661652021549727498785747789825510385081012182367072827213126817578377848131622691246789593751737159030088355902161625201805042524443918192329785898710516350022448282224460280874548215163710860436920675525582228297775884305760557696496381054726618526073493813772200692624030947619247359693826485989219195705128831377629726583455998549118348112595054950041314122493570209360938675230127126040038290402388933355892200173266098249496134453353680474534932806628936538434782518957605762510164042325455582286198364868090052207711286908460960873390441242649816076942857114633974754057714184676221328743856936407425629891293057962354453630989057380304046959757226688740277861441233020508514472523181415964308861957999868943393539587856821330377676082639765980560792947504201530956929773629890257710390140685269573269928669340395531076069462882863985383735136962705110004422836535218599073007674493042233045178508299904047171256952643714927981651442611310355630306981416939289933485441272857645364402722972825284152464878728007901548416924375317101252411583629593795013056474532363339075469239707315969070915698193276037381272929486283064916599508506179873061377889539231714433841294167056641227904146686748291782036357522078555280966645767725621102709351170613832792662656506361609450842943671704261126179787166940603712440301497116607648149736464593234304829108666810458308392794199508571028770174674597794458334753559787440379497607011334891039803833066888351035728893426533475230542181625778506763179869084214198787007332613585387637197553061977237819703387542440589758935721581299017358503675630161019249914098479988752157472186847507440371232660704829795502741237018823316235619472934051729547352658870899347667860663291274917825410187049732644236518033457572271623273124734521665786275075845106521018533205443595235589166569862070117495780480405386716026757426032486997101855424020367146057817025402358088169441848888107555048624508915024751083007753741588996394729192603539034160702163712543576135792446738380089370098278606251600980846312456715052029084098041660869565155349589648905518829246646899816322682319415988953100593706887018145375458703061531707198782901783915277173940709025852795215999929173043951683852533370711211572412088383652442830420443259536917617178395262240717596989379673300858758711089608042894563343687615267274514587451832287172518669044239705074762930087251154344897629326464738606886106545108388667336710349203329874747510975791354440171485685294807871331487993558322316094769209908863590160353374870558476654744376642929181319400358575575859648857897585236457084961158811515208823736578908317471714041724529047280881756218079903679042742065700764757078625925188060722230435980687858048774429723500285924900727825920103656007893994907655441181034563145672910005227676650855963913341210882776017558805563033778779667212212276307063064802193415179874571453203187086488549460698074776458699636667976457991296406192997002320155379294658838830670652331646487155183877836029570288032037527383460579458739789814671835706236237448852229145948881241335765428828955324060230925211845034894451224581888516033379844887124578063680261086136680470249768304601777286263673599786165151384563058887680723469981582368465880441793513187829057868336234137674138056213837100631884483818108382852402252131241722691442934691165323444240000988620192514806644995712410472779794226395917657997702949695229725503083530236073178207550546704830776306856320144235971018668231197088033998078808030509434325495677795308375531435541444035627534172592322297894468962861500257499456610019994381278360210696907501253962688366631174781984908636902067543290704546657504420928837629368003590100630123600013190897996603453842306379260768265525747551994043701233119104640111063097470247508032746601791305543285542514153621537484653370698000335860744108546128993937921895330003774069910538634818852952393838736302082739472787635498532317635913928106971752111453945493182823927484937673157216359524941434803391202251245121008706119974573304395492633344073639398147047317679708326295746757772399464862748669533400386039858849262321171933124757522343786242422682878548318361079249813771430911339957192822894380478749405995836390835658559113447414954303637871776246246592515629961487458496872375179739703309682324279195884327665790876106302229110887461049060708897102171182965463347845302518131733718921210385019055778225256970638116786636233204726426506675864783834298798254870445536613657752644479599035999198777259033409750334975620657381938468063407990593094390146725878561211965459946353876676487365137938278941744338203507362453087033119397093011165109728038961444403393548985627025896286283145880780735618269703220254124248315160214699656677195048010217713889867693788522493079408050920098294136037392014798585728629237618573017249998949336603369921168970118985206425611303509652566101778731787693890977499730559979843446757752528882323005549243539185634080046082388366748752643795557883319014309942386791015177274230881095053540641118129630291674511692445589470670842412369058554631455956089389724114955520791331626319201849013656426755471573490556267071278769929725035320706635499185987354755704892952807183508817051657170327546112538901890225473960334197755280884805358701096941696089164508385360538987619832973824854957964048501126624324304917762168722424715038711576213857537340158106649855937897108318178105108243631255432317058495250251281371849249729035329166117305172061208297220089712172877966440945840102527081465926046899098118937682145669736084746885146763458199104581056814141225319257348761081555162270623148546903414788895990858103491571260848185379445280482034575419417650419057598573738583236722368580993602502184649560552488937577360566907343797388592580531974602798383524079392814210181623137197253631234276979473897730243583845960078904581179024216249744550243953717672670697571482905717904145304311843141177621171067637004671354885256375371909324639016264280567599886622541694975924562509147341417347325232297497926553931023951097897634270720844460366970066538795081232895530788044656338088299565058338889281699746585616364716202616906225583177757885115318914564994427655570289859903072850067722916010417649942352005299795845475595969169503859325479003481903829210661414531444107888872732966967538592118397040874249769779163790086744894420931062508774599550239781907836260230332269397855626828214112146043968113921406162160914667253454136647514853802089247477620376647999513906404826536158403651894841272906679241264170143161863223732999171836063142745313675176669904403398965694516483453868455579671399218043680153229727757635636351982460962415088872362395702561596829168028942184169300744371152290743514354543342800241295144483945808105546843549858669599621879688217729538894361284900472015223177792712435411863468168259655238615486918454734706514349593630330358790658372923310847671750059323670454026580898163241853751234127344088395001424472219353874038998817133002131701891005367429128302450438627411463100621202056539807591540336281431817640041036791032483557470923353269248427619635062665445960434462017842840847022101919568370981646843811853709857665756770583464695714738201087286269168984744083471213800433244356632522141144164973261150439240657048598444754451298524858815901118852640762313997147558547120379283765945634001992792964407826387964111130914978702950811134434776473484799834738161100597413456000627929844448420783980286137955594982568971451200613531377175948853851019070500291855628489899457073796971286387680958600933590992291627744542899163706948048650039449131281028821752048409212375956040258778954002904209832475524611223194393630767729619870255972172386147396558633560630132873144010867103405558089715093315886616861572517958570294240420495804323352244074655563215666246963195290696299938182855232850890740971129906695394303967285403695084164153194129966070311557953295534474325944719318762137472689234128817129266656041838536221787042584309536065426766838909637047759596507617678346014050398418639927296778001684324940017682458950645744074820571407250734910651268090183472687685490987180889036172021633001966863458994758622375226442976885179866283115808633144737480791291153215869544719764702079319808517346837791589204467944900683288530172484986856074183184510819396922885966500779121325374073523446705187813200861099669758327157338121221535945022908659254399111797805599243237831825044170837967169498906425880495156209562786142909175060776933017733201407062255800513292483148648601446582834556459219265691131849987054827807521566436727061765206693660961927989486820769501112671143929998440035100768152066805738515947776917922229009067984173793872685564005623372798379563623961609814409961733398149286689715040654587934709393410735327799419833942262211515086170428232467692263139436976084390332158478220200569571016795776867296336438408373630388275100674461281972629433514093246869444417595043035353482180457821790430363354799506457880974510351364596814279937658156246703045011674728126499960017747588373785566698225080493802662926425372763235358109596380462424133359401571873281506257631892994797840091881265279587167702161020869369718693350847879150386545892566590120603402931430049737757419598942771882420090527435794364753579105845254515805698339621560357350987065576666714263663026014699958252028205792803233280070908232645541672916656177919547166084840611994481794825565547312991276686875808080935609542383835642495860778037041713958000075705309125172829851330163511238782355164006225257233276011316520267403925138488866405000381489322059314816107951149292224033872312991863253107218460488611580278879983189652404512308369911558128506109555839575158597423948918738541326572255048262051106918467593359366658565286697740529705279350993659660932021827990920591525146514413935354736813373605643563306703721339890380682759131468587556364684107325675720722608511295307220948830054542924818167377688212321829717471357309029795635281466146475601583419665870442973695395484833029872733216554300638402015945884460449374695799651919702964757187033672766725166017000857778042332187939621487333121319546851338029482821432447365270651703362088749500350978088789797062532163265429645329922941571515275960033038712278899398805561818391461320701322015721081271325175021066345384543752275695595927078410432379908881854434742788477800037395846954308959975455776707055636130993788505363514397335924376090917926376987636360427881033621893465109000642818369578754982675834178355866385864950345637156336326176960422948846637146847565947956575860124602464765015584366934081340922969301067764144752291049570630380594993420549800746499645691471757299954504516976181506616140005717719085676383003991892254469753825551053224231448284256022260503871589859666391233415869314742066911780332350930540394082134948486675231386862414962010850042355045299603267496318347858555704046194371936967610080627991027751626484031907520787627668425794423211925475890063879733378821998747836171571418810253238821309450649782196414072440432065101138593760093394990895785085667870513942270277999973592331434816052097043387845879346964675211791747083531854201081312576949226735080017461432937385639615460078176348531226619637593457284352241076443518600938083928777453133909474467072022699457869860267988127318795045603197010113170109882341998775282531503341847427801056287414759570907097823902880650227089563202470085036802890933784425342392543741618368642527692414527563725011563483742554537530600298741395806838632619111839486328665783241393945952304066517512898351970258121282596477676301452404190572384751696646518404577391369572058520508857861021068556167770819218731896392462371101178301765820028783031027142472407293740401273575109576911488005803638992928936891559069951007880839810317761083643990564839482923946979284431807248690230925450264900067602957995852390387372550923151955552228505137768780798218326566741994666335653452916720989014897080513534165267269542604148900684150909264975437452423274409871930995098114863140142912928912801817056290747662837082974057103513971321276131405232919080505600918494834721555598292251646359311317891356662104475381296581176431402388246992396691838386294367600487524817165204878444030491227922108273668203469646172255984479583050654210635240171129059002780133247186558190889529452225300130633539363005232703399175289668509150283404456356106384973532361838343285731518119349346921524878594395503453520103638452394213673237873425113080635025990476882814223471157513715550131330487512890057836444626138969530803717484239055992117564424439496049031480888888787017991163160868238134027950556713981508206002821025194360989388116676504169398109546690607759138062195283691346717455890698355486352385997458753895734904078129143609734479252272814261548933819009287609273554274423294225514112915772686601601086952940783633907007526284083231967681841359416105438230838158995991992533508027561187995396166915502802672483786665736018075864543189541667437457508745900814424621118913872484615756408920997129380643958665249451940155610832195672328231192860284901807558470370678143606348505803150690500011388935740557433616642001901221116677121752361931696425977211366630896483188872193258456556254225706881681018756150210678426595713838550790039107948771554896895364793137924374255838820968865755441382276766528649628255924475813875374468336220513359215720697438609745052088961980848165031492768081325255466637127501954097778112062711530146049991128612948618569880656199753243272311506754511620195382825615942865948617493830571996013817725592465279194641232921940052723924921446118913636115819614232407687741205607198376693769285813875517663671645759038708586358775860644073754235602652532762464452231713030574248949211562670076839162733737603678419128492502880011579396308802501271744439475455131098414799375631707077640821217167753798795243249925703111572039309411081229052141799049757720289884057390801927459177076118692101550534268140200768899369907770712017323697667130127973434354640219514629262489353057284290840169678363642033633272698931302818320624272105363078123539655137741273059494427921679572053526687202443506976176343542776924211907864811351889092773986379667690340727256190493827555970994615194486211601461650899419590450114766775920899624827177863997298316818567513675416463998598918343447133241012518647221094264733657194916913963656595563542112601379446200709186079074817039271566837741662606438080390734560272943254787839135657281435910599942391928915682293888188124342331660575840035142167744473849313450990119847953427268749767159572818215270902757389117150548733678975272420212706169604879585508516773095719932805823775166899772781733270758680841242013477426301932773696450050227238142918890433672746572501579369378362774566544267344465855851734755351043821473590257343823129436667748388956050947720469171417976517882486475328756585288603961350452836087623342639021263394584484175887859805161396443129023356665996114530596949754687205281248879743321996977479643230181038904034386494676640312241189569858449752381318400754750260485265703493119945945917868945471136098925735440231228052875324522122941743117144304195860724292072254221196998699134454651942820515396455850077459987997502959339260831382204090657722886518073861652579833150361261367564803004618809313810750551112992363929970175185285294088310760732938215197551865824820440332075820075507502669598079867036530969747656282032210180233749414906391474177873031638051673592028410986827595962114346338109341130022554737174528702326702595890562594379479135433364203599145424511783251807751655765417349837932500945757644434277736671782641866834475558266155922474008503530656510855022560910535747328395064221530188151636515504332700039141203733882707049695260262560261533895313161505884931954828384139572184630371116612235988685171738697763460756202892195752411405004820028793584165766980408441602051679175283708639182747541379708242002503563485241103217300761890644761064377148240731093364893234774939221989120163726450364307768122877998772877788558264019471467711723621348075875090402015494775018349177655817131856244620052976514604982298624120308122752443372097069853630443837182883196868571912404273315534076471355673768543432534539158019896968306569155321332416189671169587500897809113384362889744398083213954635561459521193590150497687112334002856854050567825759617937223023575936693257007432943208285150039766194224943840113910770643034756036959259987904399384824417824456204811711692524319683377855683220036205977306590484269417158987420843456413347216325877731661619659579527192627740160880567087427542263794264410532257809609494344506312684460666438201326076260149611195375495698278130099023516945493041892951869077684643246050015553495389641005833212728251054914834862488136735129466599156274081575046812891652746865576289650560545714321533289429543241887967050834788518648146702928461528488045434323421304208736560738238187881990487872397198772271666704275720480527327005417901623836793632421201536119582931607871312917091125574237902413387583152097783797795429006614810555705631431687047219460563889494045659978455271332232967033555241292349576331798125385944630571589095889563674046638696935832144151311681421255404288598647113364635121962539508765209907687273520945407315220034769410922644890886076705917376058100785270301498346217830805137225213120946031084338007959257372137083910026220792074845121074168661156585431329080919178307389979263451585260679384754359853376127797060540406330933410733650674508723273719545645118950018503289656788469088612795843901719211842065038461607749956766394013005766458771593415093860099940121691863655891550942109597197765674898849508930040103099665045247713097712376969072909997029368877735607196233934863739277871648874951807806844682582089629650823383016590928830312368390543274716673584882042156432884280489152589849442086682746314391214606409110282149942192369274405807769094709329364708758103693993758210752165413459138353665592109650542291401269608959482725717025090129597618370580497709049063004572108832307664149021114797683227620840170295043098033366309141906308653429843075443156103537975097004208587002361782208422144608411330267685641380303678094142358694152723201939471081040890752072309933917532353873648597659178544134533700704961252582466836571957459583732141853086513246118937906788511566403838091860513502176484207377325690283555360943775212887965227484992949028073358147424568911417357070359136553504082193388399412423474844217083325191104234881265731396788341425046282761357130039903657616803968901447235617482097352086101493299216075753574149367252511655807284082710165817734122527508546980349622819357786867764504040401541592561771098748605248671053258976380992332172334864642810120629807830080385632303588444771133845525614716162852410878761170180485884994426148546020791568046640884667541152190321810928947998380828270326929085074376663345677109623415230515562826955365318718428303101949077660298215912389233912024676811020646294664080005550303741392460590378317479870507399900593025027884676349324101677020913629944581379933527144068316105265282774006310638451584281976058630766758325533383873279108670797471439675675136162485954078755998105165789820550050885406254345815194182322850011652811841727500021685805225074577728004458083347374955745598864797176856523163927647565728538484857048894978262652164954824592270487964585527460794631530187295484920940995396060648543133926617728188584689125773716080687579365206530146111764465148065159520719699945089426699263227454943407370230028002879680697304860382180371818723083900193243483162570882576386744087502273964101781115128414881915698790933686778334408362759833275747792402526011496119835624905354450255719737950922652080520743517756575821819259877853557459890158854503893617916101296571947236250278274007873612221617625661012387269436385393349251066081646157398700473731086098327203741706086020861001769777608983924784692502944658152491232125774462528022197425674762630109815076779479400949604304249652236032706183486248889880446180190536271010510483002550562143936708580018334859025288649582467256857745298429450230271496328907579603289800589080389553982565108972506065116324969235231410919214739700562749833460336435783453972816291450054746066987728630061526310774793943769028235089279250347030585436900997597573633340439794094531646377827875072327726106188498890140230916453341077375746724305206781579505897935668436585268398323002421761282583037776706453719124106070339845731131846783864167306673434214522696889538358452462099955068949981589791874174307158445373899222710359962671292205491543951974237414486212874136865543301408653283550610375183688946552947530857514022661934421120130763232708750232729582494153447053146861759889404556055593001312024023166029709556844617903479605086946224883898468667943242172916376267324423821511417320542071217335445225277998473799610731420226610034737505534616889028695048775688440356535263481894583088007544830590848360520546896784504514330238091494492325981609729549318918727669948543797445248403366489228955661758381436717223831716747425533746123701615135781527784787133427941021198530505761278130690875810077664361234160173928001503560359992778294739415660059857467338722057612743788756776142748506505048382424803257543657286123207272757892787812635564735501871330227239911370742497089039219976467977209800748261623022375156781069689840336004023368363177003497759644919477135498719398671813447351162648812467957450055704819223598721989059829886208392544658513643357899807502003201977267360432536504032793235448435810416198764884083089640064091207350746278499669857059971828832964507710158590958792578227529959322131772725407954840887496758886261509652986579622612556217696479265191754383384735728224431083610108963971645293706015488986887414852267294607025208178502869200046026172950695560187377428958781476575358643759575725161664322231408116703855424132964767215634238945348387422924053015115050530031820860333333243890783092518415466026858116091722116041010090956194284007346170625814513100225328766689637781368884254315237024855668711165644778503380867743579875254855027573129454900144536406946660090994412693383994331937827167630205767626737901326189755944326845710703873545085295988043678856712155506100731844668321166879001045622678766513031761627388938993498885476987184446158081488531551405888331094159847566492174852713158348604091276112932178629482047198207677476055982565449879399870925676333831947286023641951893782646557786940856787748184460151377249516299105509289799832544887787018775959475306040335033072510397759333784922050654269581499565191778081311411962033813294230808762206754729307216189750142272290134653075940955567460850258535985105628007800205466382756768819484970442123919457993949914659317223609367920127430562130183570039338619402276197465838840621128002891480835505948940141913278103444726474123885935767083174373536436607143333111055984937125716645740194288597925829035450529900537648160306157520201973785275427726658683862592437336650905287201067799098574233585330586673515780713215316501327396514585660336811144370217589531262308432018943257148347104612707102056902765787840075925027019509122452949984433107087230025664563801167177120383671089698977847826709463690204970396525688246472409354017345022966911916681381892986656207393944399178343201476597557401204548810569348663699843953404199078017498326148572135829125252692259760921964323416026238270160441600775940466953768399765044139132354424541695874230991407629843526570283541159368170982689386485630150887047520838494384226759521834151069820509283087260650078114358413418187101940625211970107632886857317672332289402824927168808275884886994034907318813457784726245807129491097167677569573443260444796720365905895118488336769175351354931138207141967451874718889279840811232259294739309469576183957830345385698528826491650055198298108815664425669588619944183223388600590884644148292045702141264590044486391695787699251085714768654549636765538529929201590201254063709378886650331023598509350655966211839840038643788221895275001093473122757522857451289530881306068338095870095466910471105649741135345206786393422955658839163956336237891071365211034805164109483445152955893990516909756338635815807826492811719594225506286650633157329185276695190919068101881227130270364497867763768550234389272486537041769599411716134782059779535297715365005967284687538545327976082955558686009733166787831073136594061344451181242236728583517045015070168964973913597799036893897711169591352222368677175126408664140663625844435913411905575444354199770316812057469109086275040574614827139191684288959740600141252174994670984281822246270236584687847046231282552426484449310443600676279099234587501802698679368889817071225211343305359110797257576219863451488740799639548127084538223436028648509720392798106254320453395852525283621011967191342776274496653706845597370301677675533000061731705889177286749907900025184519806523471468849754385863650231555537344186880103094868103394326366558242860620661084629305975321885436991647643941373944099815999227397714388681667474214444292001559248886897472110529870437361006239154501089455497799603683483945041959439588416495379507523015786208052195506783572445612272672975949697319627964896975972862317612343803286194155357514092817833543901949593962691006637984538344971371904252698481685961586663252498531165851136051104500765831431160841700786961383084757170332794013185825682364486661518867612240241829887384724025617573258532730575134481497411868114482917239230551579959589418252948616127601634575962429974632015889273778581599170211198880582176780291813425769016851717945086568056500041159348251356382516512902170767007738012404575808951941264996225441171873856093136199359787968322813815020186222796187267518763430238681721446683145186658604174850485645967749159776044576108070431278990258843265355889385009534456938092597840512749209891402659851662292069247429377452403658625521316894323276011119316304970816406404018807065032142747877650925259823948503197094696761143474614315335500322652800171889526285663475288554028172758586575498276653474139736666436430670363772806144608605546102873003020680804418748494452373432904852992280305003237159027732250829596186383004664598148318067691878398050465857352902127760302715656489891652200426938697643625886639986092711300002942070837164175511772702613053651557961820732883346538858472505240290934668473829385058180513844062500563114502641652079268485095615493122827536234032885184252338666508784236070996139681565425581815418327212330781071409518562232643901179550141599273398273172874889390977630112753605616808106081203987756246231646440308460425830962283936516377907122351356033466380034422968644857572399568645947121229871751140140960371464422766059476744695750896708494523344498714583615828255905254991461047236990453350756041476430690239313663371945222724036252248008682311446520875972524142625119668225845677642906051292476279398787575811948731899982322592617123543980405535725660836469105757568076804722275129136330006884280234535189188720028747542572547407833561288429840275595250769875080161282908040249659651229684579967384600669184899069263932765328693614593264074576302478167776099069135318360380630552620521838962539281618152250287389922976971040661528828615195498873331479783096049084522434002213769175541506814610137862001820238962386408961691244647987070546392110065814536466394554444462779122179889699695920673610311285158579745592638614218279686688841728580409459500253885696479650738721388968838435499677083908764828453152921483916946640865053874412845163175324994718485927967802491046842812287644010020857898180126895908972550415661032027601698824885498959818933000540341956176899481656258803032262085540661822234877074475616645362725779026893409901130957152376559977670310149351318413908893703337448814823139266238441168874417044795652169256854492610506286151621724363161091346128099496104794892916859788179858863209216222952077330260301237035583932642835313885410001480722541060832454045684182310311395823510864819076947602837344091715331818568696923643552785277173417686720767645512693037220261749779834751972470856168455504255420753786260047383376320598182513735249689576366370907213997369302359135480068719158436919670151309892579506860159243866119301841833285679329381216547149268321593566902201512547229968117909779600166866439505468394869885267977855723280975839523929403942940534722464679059024370971525358402017714302707678189809934510050829207033800720654495142887500084043412597946236092090099973537577318775680661263527200518993945780550970448543569263869817304499286465327972605678935195794481372929184562735331000870670778406892716279654531140774013294992345124969712406715867029967539696149885361138861818639133720184075746120168560747948870793895998802085090681784245733281245901751785634670864595636238235160945424893034454493147774734978424539396789581581320441833908194999228447325581313862524698156164439868230768962580018993676672451275134572227981151179570557619641999747674643160790127581080118611326351029489833274121692345294317459556911638505495796574228108639823117250132437821452811119409385753123008987422348897677593407424687770085619528717589876276607446726780246432585146374495404851289809957722416265915394207697078304430063372693879192173401997737762284891344608655311471086531889360353367565883280584562073684004255423015179076660713046094652062519024320514411107313679652831399297925033118440396930177093607079443423267988242946508556978731079279238098325017411296569363198686178604486652035455085105933122354966696078659073427517758355314355556689123108906994263970112600035201076660958906797252567096156653581035496351671579337664211445739730280399069145864849427458846175381069563547190175557983415044021045845325543594854271163085003230250476213027539395842990087027827861865679806020014336726409594221311056041699533931436048027602625004649548204941630079453931087079278942534846927965247511472473530476416696798652541537227409242824933961845790887776431706267128988718061046303996455910100527716015172530704739143901167216712060416647873581226552989932258913715802217709575330440076015795265826115903582010962458184342160617186509338217477841286689843012651621123095942114405667266522789052577941539730359460162111635830587402121443999240108288796563650847909918208462283866839815188139664284714884841629431044108787807349613801849416279741599478665486775994818399791520174598924879096530720590374920222077885714248426987795174961320030121223482777465477395649306111412180711976661395558358306672352121367978404390498537626288383875540350110111386113697157739111630072422940944938422407541559281298977606893400921547318011441004874696218909799904671713694751836016631279721300080492531433468588514767603852806050135821096475598338702656887447810475830418152689198441179703392209967787701256606325926851171152641589756532528250978470715349159496695710134681072470931495594854620841022680799228584670005375259719489602583044599071471392141591088338303739491291581312303850534205143185205597266307206300683999706696636260684826653432223911568545349266966770969750012954009691157739176336820713889172291737418969276445594095921440013902555700244615709256832369124314163283244767624793520206963761927586205913790517935522252649762499645586909996945638255356416368060219794193327572405153108056745135063716629635376523676021171022827529387216553207246665272055022678846333660990053789394761949889491781502348760053485339455033092530496371339544827856194029202954192371443259032163457587626196557669693284627965810527527664957098832578006366038868875735147158091452997001817240081921062151971490761577360617546306799903263011491361050774519843895674622494804254973530726006323182352691269452455059981061711815138464261876813399143828080734224963033127426974414594821611142781301013275827390610784277213411858872134124955504649865847117626346288348749102013637113969745286469066780448409375138058427371228723637342252263555187432461751780542069168950256372114813185431899332993574668884401797386476961433341880420791053575949237819435560074386873687065349850559988312507354438137648149610638732276311361284643380661474982304889431949771261255411392606784086144477825166510734575512251078374137739839632914668373886912540545452871774930809435375178045603724475755987687335668833435294444775491950448825705688487733221290549630434665724019559541940998881705165173273004867847700966764057493865660421288147569327932425446998781990059586237662066859656799271788397140464122991478224797857566793437983475091285551304667888439076633809074666154045386426839753274895538709166773469571454606483493517925893100670065379564251561034603687150341884448418092831019609972788527534535683290700535274395114236736262598964026311867579357563571989601845482789873672402120737677029778965996716085115424368918118540599561069105107000938691584290361059810519364049820621602650513150471755129704987272703251384189182275164267518655438227883217711525677535869266748343083672397557237332298546241461648349678068855298081745085374431008761680740134861059759504580153156497100055639219513931591133556853011023805634417727285283233052553702754589136306538131255004707284700106751551147151326345080151599464870500010832683813787912477921191264443771720204998904558881783494980336302383131566618029947295045799450851149038758760453675565294005201146869399485961049270671504835276734007703346632863033030763373386401162958932710526956966941488952641764265637823641851227317225260692845933621051339577605459218407337543853297732534668640023384440179289518227994670961472826063197416783400712680390013585551904987564636511969140955130524854772530663954754754042123712913707294528316401565682361509398408193224767329217092291171741357721764445288977618569212214172128119614732546494771263724125473834064813747570782987843494030044184723555796399659743899834309236099287278402598884776253017489867073336972586289466330309727285534143119246265534844871547041761367216563471586425329412520983476472366994378668367968958145605953602369325953796634393746352003630401307085758837047552103968451243423412991977297795132412187458142830414179616079339092248431279386295242481388557714252556533098235172703261019053383283111060418824515112508104735050082218152774817636846956270640257590319413138915651710103794787204359688692456133244375588375846818381026136615173821549463376455992182026231258597008099410742509888351509415814415280356187344676520318518030312786857833496800975046249583317352051147153980743207737440211477570125974452899364416124184389728945085675836671676607992455847085401820353587325868911377853463410761225396263230590854860376864244278544990491260525839920847577205566148174716327017613624060309363591869473783152370070671386774524870168899059220059029415817270159200658715334975045946627664489513628542245101424781113092446791858843777486864951207727096865161980961936773974888214051223907526586158643604413565981821943001735150621142551734550101405694055510852615187406706009857487445413628605383072558842011351726816955842460053162744006933657179401655619407866279438790559398313636634888145456758929964958680048600641173810564632563321568914552034958863931131378399375452598440271127223568729050088065117932882174940457375380791686469550346132643208566275152866059196981111998276985527354980839237477106850151544007611456107736605390365376125841530391844850961985873876695128401418496296184219344732910540288250284527288557324363342433235729493014793498807879835269456999044722221217340785764554649310263476692496040006832347774232301637474832545243940455006130001759668711001044322624874323644191506156665960435930681030622287464965096618824687931594327322064818480631226992652839825998976163481209103276154243228012145425110748554907745426654121565134835089123341779930082444084542353768229410496790917060260908120850268357246885138457549845202204526805977369906252861874334797608108459601202882668769696950898797885042999649547206920402191700370107735222059841800325215327565052104730556715460588004845624277863017702846830930978799422674755568317923448075329397140685615721226181580849303606522829736821402457512405369155610154220962501919376879230209565117314636978383970617976376955606747526993965346447155061857844824279944814764179752003764834530117264683306122888151789923099306870457037312997515754889917844763000890267821657066984950948179569993211741966303273934351176382029030121622762411755416136134002981719037626370558051881883372756067286235343467289810635794033055142030164765910096377212410430241516713081311202311343900784740130735270347801997944662862360172606647247295823015834017970170412153840530358890759321749903698524399348807956114275863934011609722037046525822802898084340324886316057577948492532722547531940665330137495320794423528320718292282360668041899756749112186496343867139146141207425528368855282977359674842430538412560527563602231519076379941316703853539706195988682925531316390347624594969046491606531941360994901209165310106117228595714098069737300348344339457245316971277146087948936252478541524753650379341606579339199669363024888935362978681548340219975043219904477545925981510279741526539866984985561225773244636926797220348021498075506992780007476812150692549630675838895328545100500520114502847740220340209369348176767652052113928417147469634375911086312302434802443985582344816401503069376350280086048868461289293417708357788971651191292372884064691221752334263744820294862220937899113735359591915807682867458128165340997029261959777062076212612509626177941963885173069846230960953556807760475223234064965061829970360712897459024951530711234299764617238285712010497535412785341190184275697379430117021697101043128706685260436880271861653554447471385923803665078847672426951269742363823849227596854876857437623270280957942510917136310796890225345546765359399761821490100333756269168447100858551254759186549985603665799342839154285571784068572215972456541531253521694572927789246288315840280624750015625227876681547268227826893284804885821339061444083992442576539712034129425516824917066114089954580444574310171500056326830412053576548857452288561674759378321286480376646710555168310896777319355117522516931324687667694570770981306599088993394329027003827865659212389310277001954536812412616873543532346769907685039486046723026357545964116374172498035176222822446382236724935410208058312222685677127999383708410925672780206153041840235418469975094434447308362176224303100574624025568215983360197197070784653308873854240150232355718285412593368863055160957166975528705614394982615263437660415117068600148072637421573028177855322861983264552371038784742973246200318877451180069410839691328776291449873978888266514854496284110892492037959010127564101024463813774776970670773736733622835766791890861986529297516504198096668111586758577684513213642583806857421255939178719958533298476649756801434504498498794121715450407241754119269987482665286200910846996044834494925555884902578801397741519634583968453023095559475624963921769107526805813676585675265873223768386149318357606626149445448248993528242533993292962321279808278373299085031296742382239386882960574250026518436273002732752515109161396613495888449132516646470731342396467992872369275541843219215366269412930951899653177954454052206826833566811057699289159450863455822240740796683762901316983206596542312169833047498018041582190797859234156560364123455473434692256274713640120279380765231688516522337682821447437565412022824630000115967864030100145723272916338069318227209335283173037296282403515610634183955199723540313698307383700003877625873440668789755352406376466787189098130661526924277921374614346216150669648818334295831508675268448304873485569580932583740195862389940911241305195350565165532339488625762026155232866991206353154336714041401516386916009938282742355831789810900591065856564354771420181278937577516128527906311949114555354550604542495394637488275865049512332053423147955639696634514226148036712692879454875866945194911551845602787878275454182872903965312490048642654874283181129206376480720801923065460529145939286155613065230014267046305767180089552126040086754238734204867337103206977499294575808404424985824755563052163908524640591205584993912778791958308903832100854716489115631507676160998306973865258062946171784860510130925763400510695079326631100004019832897509858708448512545721338488180582384291219624813633571329026307561716330193345037481859113500827618426543006966775425274004805041366219636999676588873506886585629801152298905939479952975481321515147577148228217169821244507903667712656000252653357867602290440224127008754797552082392856429935007921206630451352458310704752615444058114796276493586527594436616273669186727053577360043412971686779937017899164933993638137307738320358906178263588322207088488093399477237242358200721580515907508373719472471610564885699232901958229547066685327499395207186882375255016721626443920462834356948860470231883891353576327396544849305185830713644796959445365869213941782056794010455446500005549209889470802861820755472495798307534208636960119295331393153914436067545915288950452250122029634921208000775887251955945267225917183323334618048787452835728823811865722499700217488099529400208700929875645967549441385778318171299610024931938924187307691988977256679102502317333325454667804240410896019223038937622102279857285921937196616763992995630178511760166591861895347093007945659130641322088194366363711863695507555279192549415751754465940648451098767324334144903202354995983125047567635918537259626645645886806225122709386998488977765338791928953012972756863795669695959912339527198622971181335396094684905849076402712615828682348248571998874472564859803212549557436473583072551984989463431684433444500950521500459194368159034233059801198080501642653797434446250036959073674845646103274255781322790746173303478720688211002519407778665848132763936301518690081476565206001563972902472406476648057591197214302799814938277242885373152739754878954097448286400853543108838976325141705496144749618341540538811942285750351898251449484019130558911962414844424825891016484311134164186578373326302924880088300900752491456567869268584332011576652752220222132224622719732806330875782628932335940562256293988668405490011080755540419839911696325981793208534490045820861738386397043842560313210108027462150110938414759185263681717048071343221381289255354225964139851081910275842174933190469400293455583524115407220759742254254496257549208112699349470378734402704429503282088085013037436188683270689976344820785854282632012501118234302449120796564019781393404040170065960592928738672658546355779473533441424802799721863913251249484742218725741549197266362006985731722887305919309807118174787885168995926898629757154075861447984793048164483420185686417360311728473112925546899145555612530739282993477739605073006295253244636351871838049769219266533748088641983220124032743883802170669741514318750795661022102532166932140674774468117795906354005620109793234191460634784830604784976139863973304254095122250181109832593798798710202230886797738057222514469668988213964761215823087626417624183228684108202198757781016054880381438104147535990010122702348152868960322528928568662064766107298084779038855293933367337619342602612522621923261094876030678844924087451275497494533428501665572387930805270957691810444317188729993190332624304697847819372780144936891925826016423290215087820600712532380664234171701483445599452592863239859022407510899636003110993313581041634896025005486694931925745252351231549068831378786075631348932377028073640610917512460318838958292107234503104052599036047907425071109447457183745834864228155260660406023437603088318451031856705341444560127442298953300696578172461156312563999596208571185360380431526883678358981400901602769619750490154304172859291424948866376360978824346096607885478060605835165567760995470744410364282342896563508102717029780147082817470974801221765875969279878541791175416530698096129995429140254072267473678366517547983619796477347860088007114845486040892491724432485429892568895402917954400969328892175424355376313209927145169977859777002339718658186275438638181908137672975267670142950175615187764892085110365393294875584114060974722001161312634348083677199613030763458957798824397947744307568909984041669890486997903011060670644369681266834743811504445412650874191723228219185683383118996913415525140933507380024288270770373151471733549991718811064259182186666511598282262447313820219236016293017450600836848686326038513380068546337327108176886704490894195510946225903000729948133259778626694905148493596010934602442141943309051280849587932846572108914381736583558315520935448035487551646805173843374719503077634562242593156481445201779003590797918740246242272755225508592333651494631194643165241609623191883523701977566165224320966177477372053349854545692484943907382273491992655207152951113485258042196062181986832769448938280477384436021522867104564749087948195509398805528702294071113671763817466285525363510872583467320000031752339784297013951381934792938298909416821820834681037336506934117205669225584011227666724546472257585716642924370634221936163584136299661477559990628222298894780889903471299271474558019332222855302447626873943809385932054904078820809249503586587890856809529173408798091811824391308527883335721447872487443702053505795651012525374676411201359604812424317108105561351139362060694910596764532478647955243906346887920000889759753267777356970926646960492321305877662370269384727805620213106326643885283501846206521948784746638852772326429327452021946252980512340414534033998538909648053422647093152449657889682113112285483775002009109372846541331360723619802607422125691087519479486185549655075728783165149892942170182432929977348642852450836884570979756791136989356685327892309545557641565240207668412359361410158388624963318324899929173750658390257097507279619806554564414694947702705003995682882851174818259281707161978239099062269685366549944040970636556130748755046297653487817089396281872643362120341739708512449657202482440136189902472996055636102737390633040451209257935338262381804062811991918128806351722627495942564372947536156162606641108411048647669622715632942777713642738840155890781247108127712862172233258426573765109390345596082164493750059842256801033523330109635617458055398298071718492170917017181130080370952252735516858455419648185800223932647005358476796835523508919690915424129034589285088106451299036309285654165862189593281176506327112743043613514531785657160038240832069717735168891290892285811020597064875108053011840749569968908726412523277856008116434505629284727125601015095810447844544350691167907396125404404059249319907197270314972151029657238663820887367550159588236786417810963464490219146451912411105156147519106022543381388969774199377336633844214503247711610020716070253224003104985977003220343251178575675778066657754604626745847987606121665408220103009123941829391817820417868820754369167298745811019814291383112743689714548997493962262247627407019962046964460483124935372498660571081818946204495581180467350483016094954831338660056207103534826916576340055289496266221065667873154074008197239885042985473027321885538663328463731295842207157215667305525204700726247686547406706085827017225941860514730387606400550198271650104811824627702570256058824217053243803364545839321417642563386518334018470194349637295287055807386236921206210729290274615912067994793180760643659624394844788661286634847940958644676578062182108300787337046562377368931204285562218768994530922050536321284754776426834337867262087415341461445712758888271880376936371583445498089464414224766639294676616813512373101049844482451710684089707083807232191873526153165290329470119990422153070524269772548096826021972662031592413706786516559772688343511518175437591977664207404988185035452212356055535434277471502268043019063720378476215859453124383758365085284203599867182007762849216052944423378188302496529756094377376710893063565272286376003197554179654723831278306347221843185532313242156092203307322791448874945993842209910494769132308155147843731016703094758259872625376833362239876596676720968669997816831336936098587526611274241343979369077482908088621958876377150298836644054577042283654107690737809575920147238796387339041169249295815068316454430278241096969842067733549181928957493105776321264494549027320185638494691599614807354188798825737365146947979030186368275074621459598180051031896141872513913818276079723584674784583281347339301972621430991229751471877119828241596541916386255558392821204831747397870350331360321767700014900394947728980616396086156470693986374755546369446242412882540321176460736327831215485462434522943396359393378087476058987039099325930272895303166749442494832164815390587001957832558303358869342043084496052436163261957608275144969831752804546395516699527382525715863561062284815586299790485430534560117701297963879353295503713432230536378938772270739778580877217746991613251037783557958581181536329298648604646277142968402629495592291317610246056770896150114321853427876004179962721977090459136388340685876434531507347466514480359701525189437098162788612376775408087768000848141440856615345645706443626666067056613097564292777823836625506857797888607173385479714237614949199588874400813458599589793665011614424881482034736903069625393125909873671498548033788036217644660962617131490983911807429048039468619864427036957740314834909947596793341673233673644570042291158038613049075928600008614370617765508567257023102565664510546609772501519808364896741465060719111710243435213541259336351801105452957220915364645537830285294858548097848598972539566225414388631456216010917779899310651727272884953549324616303323751878943951589263134367419073945471112513009350683802118138163147131830768684768214909632993622989736481729937319084061448873777946678824441598650449233899622980260287294621664198731152350965413276587129242774746640862310600878260384545493744014591879215099260306705319054726255314793165938060938240222009899129094510850873538462971232930268718210362083091152718330161800436267427122353849019554040940594815234515061417675046392890422362496113351088308530015359643492794350464707847145319028366797343739058474345293441879135297981444780288609108708840933280513740143597629866779844530095016654118811823267280914340776464134319086789970336424961447799046268317131029211206728950463863980411298338255068287766883510836930857197966375469240371984438188798406680998383867265629156538957208226720985045938699664264166905145080542372884242487172798614957373784897892790815578574500607674211400572481549962067160623725106405502311867805723278216561932348122683240016812215603572739933032532935614169141616143116124051894793188323759048291542168888762620228242004263464324327175048064554092610129466501728254379782251414861228829084132492861776529948967151040512924836492961923129753825788141325657605411174494511573477041994501673697807564501826035088994227814751577266302380346516863868209742165403118383730306886154218097660808431794330025591901778999371270811262025577734107741944880602317735766121471829107404575233876322392125192762905493327349240470021926562044610427925942940865822235348156728696772599493997445016479835759273058349184565198446943318524148175090431381641183143486603164904615688086167846655475011957247237903787357674772733485807491844230016681551587919823421588890206240391285649631770778372711571193866088001062039047238493444380282196589901833578494833061770891552562568130406854181383839729325327184654587449275097250167072133760550604964325812002550545928089533492006776692244798226180846473654037387090251020155874780212669594799625204600163668476424877822640178679409379783510696850579537066640677844817513937166010709444680057109746143662984999125937594278648817109010492843746957727450372218059412640299630714491235241220042088145386967019753907965871242134471930881287277497097314604102547993114967708270346147184853014353933727401138788920478401352453512401677045452803405631535852104157042938689491254395445162800381383562218614854887729942895921391821206254045793514706446801653196101864417005338332957741733595231721064185147497110081921518367553115465807908213552298239701975475236555165282118313413179298625468611927795020579645058420450598191837465526408237117748213264696965828479463301737578310508337841207158525091875692265801285854045438109174799753203424186377326204305317686363559963781098822177064715189127019964056548982950949949032065172448467514535782107702580207350085637977246199876064180817766695960455749840787366902228113443592508337445224171191420572256218291396870490999011118893113405410105541447185904190633615597905072260704366575985643322246970048084189226709206418675827450925271927409442683831433638232674693194696752849892381074325255336352404484080660903023441442270009800652810399515086745400582761893878251887116242336053180629857715361269587322647142134001215018909743966716599373234974539537386479532921663763958597175017675878073825106015805403674598662390556313004222651579540054289267395808150057824607791747813346635426221779382339168411540032908769902712816710525442763346037607848438450318523281403828969075724380326375309919071460769460014305861547012267964368856482222206449292621481224091711686406331465794020305543523609902698496028891183523336360020480568996880187121070760175029615831399695460972793433282638042668033251891761416131720272796426354704725578120981473372007552501310011653615745798144507403225664719344996766013113809408370737230450024640826765639373123138848801786668310494928728043542754423684802432758056637599619486727921831029352563919426558128334930293773841331431755899352473840456528922157075438457248316474586099749509143135029264018543349615044595865932432058141465998681312937233500754032868764917531157418023629678342965365194034853542470526473185077128695696497861352764452026385279168324887178179824211381001958831559740868054596666407562844957648835596327462716649584018899498556232958351950010770833613450062453101983678704110493259413970325592616473343020591953180711649757918050673537541175464324628968398175953066616921907120921462100782905520711922293984470445744378565992646094763192205561801164930338587344192275938776205673653947586231381493730021507419994495003854056089986076986370249538262087779731272106784790191942693698816145528051144477432220938284854485848720373496139314064811026058166631105413137667604826971602378421430792393942314499183243960911479162802630021937612372019226892781136656328465780342974071291120775667338697792531967094488744354191795233073591561595282499256794358866934456129969263479821058659124590263722399364618397435266070526543040927801697633484814407146666326208150500429832619543791424686299011503962849574262941435041073280681188665050463010991935198986322302673743643701663400160408229995533069890280489185901578485240099016221150351119553091014016791073681019595164630411486936284122203719311842679847828647511528825437417371358669007854822813418524100274191455180731722153608625226325825101950411010271457182881598934286429025093000056813442861323681653383285714311867276701534416249306729271414194822002345824066346043974321533535965732695514918972720379971251885675712891497147532907230805851217057728975472686037483300265448425627840697548692269065158269436055916497344623967731476548820637250734421316351248242224641420413442617876738504394036092098311807822033680813344240181428976559457223525330849627140167169726878903851703312524690425776115182584725523528619477008808715610119160946980314775756001486662325281386753876035309461582707299247834100962730613791713140732157702490273104504564722445644669892599640805871905077563527784583931561740433784650772829522841656365556287426064907246739599534522384044361693515406409094984674944356075831464653868482876186658664328962616164042916753334952974403074529890351634834684686292035854037741839322720855534860947852735303965323258046233514530378778078329931419089396841628696798336866600892310499543941694707672528497144148778367047711355845482034192533408563261846640473974811218366382075310322112559731942870547010611512232108879415959381657414608027401326596395472472690980675837761956805058518824181200258029412561153819127316789425563619188290603523395480145548868619748642052750918720865953549671257187827330024267111318028148691445063289961318289632467223329799903719877801612038704398153389327901216811581199966853718693006288798046224484385151182948078305429764751162835836129800042611247846072957076687185093067870299689444236416221005923532286186210495573355749239111818833598705058853919754928470268145652188143756624724399901842057567922466955238672775105076114517307353499883808590612039469623815498558465615000943653446639854813514216244458441119272208726374721705310235265917535561845340845128158179417043196188527168216852709131133206536245537057924938451471486081320517992158869828795861530949708558502522211404035665476817814673599928175563741806417149502883358924654038754253925194208444193737597248971262825772119546817517219083802507685596595773655854194886319520530000773519682487580870793651126991006425964132824802719307844294993890327295569334472619619204921165169926166369205854934998833325529820748513441109467076102753029054732422967006016140671726889506699715754224312844057986980138942768517971394393619603087794351833494394195633890451439845419427955531649718842992982622804698268790776337107303795342824596816707564979626571244654924187419292190942843121959720219052878133646064993268416078923698809085178719803542994955079922253118218335195795365973665732697311257797206443218697706266590702816408024239838400244153604698684162556940561690800361937348800920188973261012476251271003292033172863214418714796706998196448914829103893818942401215800425078324733206742090545315718614754691544549744847581439883064720013331234391203269178602798344827954322644449466715014385577588885126295544427674364219120688926261510144989199853554977903099488472801746739075520628142279414602153474912436284032472161649249114501689827632920852901464953880759862539037927975033887384406413074271634344630114335341005879034416140891561331860073768191428177469263497331415356259422243762507068532696698344937157718762798453475514332277267791630954830614323469675168439505926278216911974558174157559512313365535972102790591590797533112145018482643379438729343861957540680546698203858481506613840266690106129154211322594664591990365278506305437767869912561005855020470760184550869771691015545114726231939884937886779798447500311704836406510323881910852437653574892990058296420141486736851863901719533412693898838908092887907929734478113388484571139867978352849209878406748448543824876132317716098178941547339822034949203027309316149407293102796059474594767947884678434635472627338131322071921727055165170653750616098497268641770831647374730385819712658367369117122987258952528698025947542587444782962424336835422211071405916510341186594530153149922445668913911722746885453874984148140197672879491941295186973711323555360550249487241959948129100129829807982943212711484064963082259644465188982577240060451142200852613807910361648907059358702969394687964019183735993893025543417679398814641250959155925989261323701036212967664428909834493634211875162543565197829947301610329720779187786269052025330623206137912771195626810223227871775737759876729508016460548871513017630013665050235763806148108372820915183204069590642507019692706029756646056117297913479533682049178196964098951014443921140215974213668738155417491791320844566822468326605444099447325497100218851377915757057466319229751923987326253297644752870355608977007348868178877826436820985407253790725352015966107777322579448884090049034787342043823920521512073596106310689215070499174697536466706627119968417195632445050217683683917750235265514112323340290669382642761644856643345847708984893181246496901420091843277938495159807152122099835739241749494399446718915148069491916508428415670867625084369754840069599460213845477091540777051429175792139794286994255095877013713515930632642625861079518723568643851294762412447449264713634494211708872525745087259665166238347985853975122717314246778751952346498974895347652631624379290060032790633333017530371765444847584544334052247174101645961887624211588185167446765222054321170847542371955604890481607289797851382729623420311039824984916058993887666996748256501646365873984848967962753698106731463198818342208786944147454806619076281030697247322286127058419912197682279674920480391395183309201590724092068319636624326924507588381715366184995978852871577164563462354900950202685270274333072364666305313948771899896704883375762160950717638153454983653714045203556351708430628309629809812757545933794493695162966672473375897508960249832820998431351516500444351615800627576530229403978191907008980225289094537182581246823023417323709043600077379134377790777010798653885199569228971889522244618453574654374420517175426275007564201079921160242538184273419627453595761613517263430803187991043843118611036071765492349065382963884695316715650909666732149342890760619356120716137342845031634654057842920170025250339580130685587426466960165854938089539373675078616060969156854269112364663673843989953127117525046995517844797886873939949947312898466872450865557752301551159748680958172096694833020323886677503519826777082366139170686203260078551570719405099343403151441415235867383319671211757813244680020894813224446076297241832679908404178263747106765370161021788723016319452118087599906260879070782428091105727489248129268467935771939200395870643548746291227115864773290147243071328136497734755361741315565885201366987872203567637336447593144401012965134062659499288647129666547858597967181062869554978633147967511871373674546173391711102658852238768892914429223136507042709999497124321029217746361003264230315660937779189686422171788971037305375066293513190347015388349196631735949671657180865130001031301165681837727089541522201032167694757080128015948205865623288112389801777047711368406626296834602515305483582064324059013957836386679099037033691802508942423023360035360458186967068774207093851092502080679922678409582681443919101382703849950944139734700965953987170104005855684845545206051614148142561656362030810943042417401428258610618983098905651371364181793133163347704767451480216479531503445419077112605344272485391255262284628274524390995541807001296290373191551199096705438756315613522472926071702943062679933104096712020180091728161281906459799152951045666858157995711897650442510665283100075872357247974831886937332379328684992211464997265525330423329610201971075893965983503562612488991781721996287317796156352818882943034567148190315379571679102050070665987193666275331697957384245417816889317881932797308985731588115679549864257978564252177120297923646560161535836758610545521442971841153144708222103006753549925618629449334475251707146250969134507403798333980997339616299221292335839338579957214255719704653628920693220063821263982429983162782906081434844816682913027858797526803435770611578635459126299087634401145818861740987940063318131917554966919914946746753023432091356915496517471782656666096503723652193784435433781000796120116229308209414622976488926226095317907705078475791488781844142983266297799045134185316942739640881790830000493993303857180716586330773050286367068555127526650662620891474204627891513119573352482870385611348667345562415103187419188464007998829497888129079198011426771651481396248818485839175796076111984177387678234576388679457934947292583405509469566477854162117932555410998233166110119534889932196988638622029244972866247065598472101221226434763791870852382391964759736160088951272354056165765773315120277190177952516751362589240817687888287490484453476889958711620491852779951604954483516571029873649509328124734439319101820098910133612957461909111032113412592652049654800277536508336595639309540904766041423706653931869752708788452690665873770213368151651226031303682487976341362798813065769316899606865093755862146862355474160130171557244836879278616851289719540809066811247737750883827751593786871420106820371340649852596485242765457858590315919862375187381234292323053185201550204290330358975300078597178261628521644529815215535444251577498578473330472765942175924400137019020082125961229937903133313453184558868823457093176588774681129767361786010388062780876845241887211185596040820427666925060371928897144502618600244330217605242095061217382241269259976387723567587180826067456902935385782937692874565571368313724274767767392308014832904755069315422871601375327906224811979389610008180987189219231133157215500199708352548746453981804144436709060357074873830006868243936005470757860709374520532176585466396642653217587247403128886315223463033168248571045059233896873501985628135746859511041746864323432110355097837246697337566979924318970612906707664131528226000899122265322257969669485954435890239906534901614467280460947733928439784431396888804118837100802828313207399728939099955535231843068229146012263839123132565934721425610099546372398029910714235679353200464671993001634741927930475364150066852461867611881016075904792776542863283028507732402388869798178930166347713016664424456023616079547303728479610530534947380185495363195881713267399912049796578014955306874430748175418640132020441267737795491941001084268457214285097415762933382258920030554078738881161834129230710234279483157805639841507657285574987340627415452074663864082184964380884054725508812803843352365054525161360347858325568338800174504137706696442295971746455429842960453425196550115224905400736697949895455862793676550518524490088781927705543423320477278850542311647698593244614840272801492942907680306377006513822389849521008158875400775061839842514764462843338399093089858121487709621324768587322775871569225447636383439478893833644737170542952183405778742234306827651797015573093106707100901560708238938638014653774506973393016960680382812991455150752024953154758633894246062428846725497128586369108733133308519462212525456555022335641862984961285631887595584907544615120496542694683883164130201136649530156565454409182969158350186670849185624729927618876094408126735394538412548907034552605159904884170759650763588535462638810925341910552168923027355479594607711931718695610237257158597447410387327600043795818530333546656026996805654521916428618576344744763059957035431953974780531204677027742867914907936800702407526656833031183571050187247084184021583984683152999442816546352294951477191343862485579892555016827002959132128895310013122424750160368804545086907473966938238233547822091927921904808518539894416220206539914508506042409206738718470922852903442727131134219122373295148181204111811293192953101516470247646141798725380255737010250484829337563990396261593975894326611018307004283037965059607039175025041624053604399171644482135626092515485523764043237013628390739974579280261887631268825655036106515805577429709888179266635909960994662970234322428324524437321114691705999667909155106911848918862248771297328613400927357045178558240722183854786180327897681477684732362238731828578959514617501430800577610502170860533260782166735254548431666869763506265849577337509629549049538481906654354218036917611690805350385077224612410686283194413249795878707694247454394907676464423809978704892542719096910968242170937161550682910599289538928990374096621880227598104092592396313280894402383330072333223807721741081805290737558440193500565522978023461261498935124031613348533017441347073067208835262670267122453127921983666047818148146721975117476463655987284396667998945388151798352187155436175174076939100322513505974949289390133007161738864489113755069038588172162787321660788452801781742319521092246653150050255996400070610234419319733806912895233486069354354517714830741354617009794652333297386423537657150106343861237986635124578440161596809675007189297102528626886733856395310662687408344998139104517607124913051031230931711104329131449336183091086746743935628933051880409979902792676558353532585716280035760894699247808150001255077712733240704068603035839867427551125189954541108934681659487493523281876890185896559112850986411950406426259954506540223118893082775288741255818874631944363690691656123796157306996330220122608698920773421021233878439192064093672725458891276199134040386495729102502429476547053692039943324837926257736808750572783524948776695507929882968411776285893403193562951398853710623019605853607532380882903702800712247068127799292607096172179260316819033810924037792405784044229821333584954256333666908565377661505899940826907304115156349288780504978955232440337301791553405397980517518746047168567150650608753037795789269148577346526306571001268118797405855496732761796003705799412884950340902367850998299313942549545084443455662029600144398040265157837782354176790794009559013638546530452066669734833944396685023457944315183982026390072508465057387672754293210309005700840493495393700207897377638373919082456760547994780591023399377718134211057798237293952836883151108359912070857755617614701826148752953832229387843004533430876057596171702952778508104103347648794127135782473486835836897482570333376488684966930031187346171538756818030448563701250542275974680015814335216253343987316131207986952204225774710736915424625989298154880581936485846768346141280368206445584260408957094376105509585265017732240621748692125104196594245968515401901732085869863398279589386893339260808134321478083296696783104209722024208609074556558737310149560242575776255682818238460973129020884795449204984853431000795959712162328813756195379253474436855687698678958461048544613869563489115839941660585475587301336781155784718821227043188794290457754715995830252076549523912730511362734040366060753796686405756745063029475562661640430241786428967998688768725008942548329135599418334469510736691220653864434509540383705889186929681846098103626443514793075322142950402455073974351636107261362933274603581889340406734940328932661804041238172540933517807649100703322778068411425514662350539983259367235469131763347019562797121378540081200461601567260443316043180687487950867937149419108784901439766979357522331259850484325531997673247318341512681342231054076986867986381668374074785313606973558135908152846059249199560411330838390586894388875089171410368302088528647825506464221082311213235071907126873345225745761849058246896310957698262447361546014590968204085439696177319678376865777651822547019554900491008756802126644963869242524984616174492350629280762489741864086237903360047299936662496486034443374963751770191591672655331919834536128617046050672277598952320931846917875255890076458069710204684760955724508612904037519484573797002289192694825220060872812674015974146886086731234362291228270828166037656783252845056654561446190041248122441273672280088143364535265956856030898020408802849009303647337609407273522300263003260732467100111697716045145934723052294275886835960300935950575092510549109693238231487428381906847146421923088576187593668720298403294528877607617204542018664142546095005131272719952066851216771408971611615098990089010004500909454227728703822025295598420006090909861024847397005301860305096086921852303400033199848271768128230774416842037593465849669106163151156821016699262810138204304829430210589428760753286290138844191584521828129184367948825800950291710083988712837200991340554397353849158673606449054506433253404799433267563108534467052642040780596280793455231794457167306261591900550078959907567231692286392715054671610694347097511078485253345990601743207275975390122674670034505091578345871805592725079525460524798115797134814980974107679593713812839979755933404868432127490737471661906687810200949464728186275536864705454855206347240954305589819915171079531771100166836521625102516488092972339842177504052627654049589817915325794824286254248608074154182920127330500606255912028324491200016942255288420346827590550775894274446979759400958700062196127219267027755684333053996434143344504994230685874635488357868360461794705148957898769815291041780093978720466331668728170338251330698385234819638513209455274472265176609436327653421079026603222472343066750213554569818110999285718768917905245927909757035752794077626342874678557315379212419998042455760931417040499501294035438197993620639791930838746658272965443383593146294422061406294828153301001323236175684507792369228988881066093065484487754377458851045225822243742087579233156321524704014714963333950669124915251224872519935133008130682042527581200323912142298495177777015257433249125005606174893835780092841020445433987110625998669363235100059194944269490640800988692195019555344493296106892955076531257558925543765710759145167547183931431534585878398223808695908379732208124143482771929083966036534588577548500753662066844071971694713518502034340798403912984883961722791811842321576933537169711316839659083732508148092852490106887430399999100298950466682781758033758373848067501117762029535227283748869233095219139852177916878181179271464474042562961763141095367717895143241304257627637313286329252364842211991027127575830358076956654269341182817703675519587077895870659974052649648539939261255253078255420591477316103620879210313943098808865477075144501815913907872359672029327310741567010371699658192374186019621150148931043288665357476249076579069769803935066862166267572299744868444034290441331361783877904570651683809007426644430980499021365052036528473695720226567994462373683022285920485100679293843854820878580113934241975637132627543645873960915071495644405474927591980047435548554092197939400121621227444015086826567164550677434542194650878941050786805964731332231069871478343133438185146391518569399312202937343832936615931362204321547824185583262423184333243988788920570556632793244329155285095069246490636551599764135015362533191684121522278626567094195501215705488508951416447068720008383995088114724469592018315162092054414037433294598925410097824569365229067692831464575701935657456367572559799037847465097402037087874646197369157908937421016247056204182834993442430938094594976775265430456779554683927115148952886243683268583742090825311366385807892249785527202778865150721558378393317501318362158200617526410873846097693887245875150358085415485864264624628407644412889581954566795829760816179862250656483816907758504272065263782895879683426421752912703413948479999048490337260536807051537059822797300683653492842488568011749915130017828520087351387462394439188552709900500158815075274635860556948108004778299931797719701884261182991224010691242422600675337415575263931805920894719004860368487707397835564826821480802186969668863580779323794925110781615884732468240985853144193984547875646705457809192734493258300668856709258914036562935976502095881015640153564014816809665608678020409078443166368994196986578054179504372369335382035484716291814083849599911996659541300463968586419529554029423274396720105926487161712512969525063323944863073240283307892888619204470363215712539783899954721371473305552516198530124590064189417279503347851876746477502788114256413758086125000147232875445077642620511160856010930953660653303960187526068605404419783773034698054877987527681261628008964601279582805895526867758276738911517051293810404563474200840766294692075623863444549841037545986027921487314048478933957346497284870435181224118142766752752123353953295523261401268484351087252105783120148368782634930047213187622017932572418353030501354771407754541635588783767307551628506240768741915711834769687103771126518210433501716389877876763588153964882563846050109542634492504436866972190629181036762507220214032572993658841639337336222295331869945988384235562731223296513474470962124254574403024457595248811836742176696266671540747499958112566627240160526298336042135296389399250785889468635310008771551205767900592668986044342507141746954153932385749379632437072295072701188382796184952321870152623653236936830587675759666606081422189935692528001497283360216222046324598358262262158823686315940114618123058052377235878900708990825516342978666563687288904157631776289088164817864259549023743948110263271991184764889002512586092272370912643355750096830096930468976615697847379723530394169868898136346481504974224310959358613950338568461205595308476939739042745941465410563892307130201038472386847301186573094385784090322068173787633924076584343313711725210399361421156240538499962204863180058052203691706065669326086994337358965811163677890507135426211543913162073528228604533417013650033604874764467094732433111851766937379656855666783803529382759888184744482985376741300510420264639927711417742628988866947902932274232153028265500381858113230131086352815301323566401285096256552123520637214955121158355115693785244821397905488216711454279196881015686358304107761136221400429267200480745013954975919860692088178702985846747767267493514391470432781766590868242418480281329873296094402333929248781208368727417925781844724729470371024434776370113309374028064196203117875193948799083128059713875664218608533688364365349761882597297012075150302843144562939739725290725875553247310575596623906028726965658994068476158418226541970166779798751703905633368559345193973849532815557312417980369072368353092702124084701126818875128823738953885809886372684370691993232631840743817395402705257267634705812987223875179404671417331266944584346828197169379246220249489842621789297564837263882194604013674240871440757807387262406181573756632513175779483271349935121434067488134773105924580300252480636266571800661135640979043767583103359208487542426148472406231140303976131153176366876139322823746640021540162421469840004205171901386384067567590165855568778297958896392626297672877646719919605171660727410099464385632933121944001256526135845227490160367439791495408494151999128027150195481903827466489146644483747458264125307845516446336642343181081988413935514864966169898026085911262449928036468654305672663211737074693833077867475114400050407776514325210949355390297497424557768453322546535224796680859118764824085630258365472727439514309255614107017940992401488479902456667423787978189553915926923878961843476580506979563180717655847639640045113412673759321727049922743999251377540791085911888422329820768060769643046614130407345958613349934744475543467374553421458659036786424648621897610062469762649002178523240917236804707866111119388414416543296308639895521302904862149338516774090613786537726255213115107040828778999403586289319460819507581534221877079377940600118132530385964275845350262825275112437870121594820783530293171925243339051685379529146406743906783179940741534370512652194744791067702995985792655231945692462618290184526478157557595392267031569945707795528520355486034194261527276734506179976208183124269205544208457881507632591059684153787580119482965001133198375879745451460821998114667247840837993888448204819599474572369594206359307356413954611400300498565648542456690218964459398749178903673427316416848321731103900763998472102818753677978980895866182361085520392126066097748475448190642561982954825490840849987769584614674487500607278592372627732908857174789546655303918380935882049353553113213456255211206377430960416348351350367087861587292526669849971563046712791987062495864466589094810092484321258486504099264225876936809904634530073234417369151648978504065050661790905468002732401222426747122357334572280369067161050607494213287042287451193387084818347845431387069579923509526930655172524453984798555807908132192095137631865491400272855451783127441693265393990854396159593706270494623773586215173647566847273872143660960069886768217149109276400129795779421696672071575659976590512393098899281131212039342185451091396111170594492789369533586107452888163203096630897233023905610518482719408861248654137110357681950965032048959182327552621080654750218249406535045188508390820012199910963131974192481684855828482448980909285594889524256373771009759421554604697616370128070500210422515121116336177569398639230413060884010836660601344045618856493636971520711504334080531671749970059557573154874477024366266497084906209897022780053977804233862820637438795618309783534806838517484960905155586501028747690852896920470660103858217801668869564029909119923861974038979821418599856334129712965036667280400968496651330704065000512908929291938794318400087566591837450204382394159198840686667089958302936029983279227682929026572886312831849048956452520527355697117528353990246094737397313655162617038108698879120888070522758053961981240204560031426915723861973193572814439554310374773171188331400601028684217578805463219399054854516758209591250627059251360736607635012455679835238573747326558131979303876786052947508648190676959719904421953500659025727095832244010897487407130977359326215789808194414286062417280336602140990298177593798341016756440252237427808836929905937433468874165564064142078503230226783405630430020827244125431699415102104686130237492505412595806468817683516578543293088110809547843449845227952449942266351439483617310030899989450723168210125122124863736888347351877443203893637864274658318707787387661410791404138420115567918025975760974516230425203518204145764939014234532113336694083424070193001417660072963950853733811832004227473040521829549962601799904206645533686731037285474492530715222851783208398818107427888130725015746992631928518830551266974032178336090337078185493396994177136950299061951161802024962845791383777296423601705196360130380384602724456994542412224007926563995697918841057525594763494081454134430430765690181753166264640452003291021207141162719796062726740337817224482519492203015373144410878597662377738007870938625748144721822557689907765206351431339920494378969702373836368356204200658266189692065248147780774773875248818226137330858907733322878706587854346667678196993374561762428815412581512860145552344229273591278845169524982520588362914910101317905101102047839846301803604384525255692132921932917941414257071692284550456650573963500803971725004396113765364009916100859583677670519853113609498201683722798851888710458413960054565327756625717012738657632819117735768090274896888670523653912011778023405123707403298077806136965956715184258508877767982432049566200428117773114841732139545442063857114597439512737688730793233361587428145201583063332472271067691455689002619844095608897059357145691589071292680174811601801477364488704493670658495266462011417816993153190521770289153550653483623660606482245521535004951893062269707285282118126877642152462643009600820813626983579786619035109808292793239967370181935285632193401804480763522805674271771837716463644285524070139733858747849913148210906442980900172496207833913318579088403604594373449679765419344539347817400444640173249845515068943020452277998065259816764585066831341086149997258041027645266142291892108310584443323501760450922842635933208465438060162581174793804527395292959000794705951309935990951559080628299213317090124539904150761455143040738619459449249226195356088113127311603265736996494429016867599630414679764322800838891670425357886054549439074126944978752649914689325040219640322563930858980330149513341364116254283900261395339038205409899528482061386827573207674343348116942333680359638842324244942425067134188653412705829699455927158155500738851616959151663675914415080539503075954080643832582597966455899916514601528535869878617933928299236215581269513021323461159566609163155422655049216899370749543775260289971786851373328485430802880589971015248157851093485350013361808902950541520498096150592459214433016457280152291680116400252866826388314100221694404881734547102181034586872209108575143303818023147174016647506762936289678426881354964951965473157053441631023920298794771381649944317602769551733281906768946482699249686163677585227817089705510207067924227718209285217323968702876355796912702337474182353921880084771139129332253598374091996056124350715727434108885070108281138489082172762374236232688120199731517474310443752110846568145239478569670691065045218052984656657915993136805514057799449976481657612112120420179194149244375450532262767895297711385980035440226979383812750289717579938199981782209430175536838446238202555416277858657394819005603750476207107948363132585569235139702685557821428396885592219370140114970359994392920360290134246190927432160914653836641107286030980008008748218698956891273472824036731403373344545218822618352335059259898139396328741458448045406308196804491595872501690600516820144398147209859610212450230595846048376796893262795018625735535291128580657941401791103594425549865567517918164359870507564321448321954350456308252688612762160611075733436306501871481069548055608668928715348146563155897051400225650380025239461015942899511371658508495970305752008394200435987918952298254467686704310523905440043082903376585703225948999790409701719845718453233496782189871011010808501459617142622883599445701545591062376459643478158517454098568789707957951212616434818998030032394648257667106518692386618634805782760372321094113356640027381793628349586871699979660159583179972662559790431266206795521690582647380145983775356869849255510376916090827230605838471721373165237848084095059423831681655357617180131969798438381126679456530899203778317960037909443836182349173532284998913001033752008228257209851803271675030790752935482665799265334059910922193581082902104696029795157337552679480140664897504963627353723691418096935553296783296952833062602321118263330216477904287010889196319458038187099944239006697606839005290667420795829063900991490221110338203807466472858568644018766691261930365996745275838223320290189252048743336891804989340512171256037691014244170299144918629693654742429308897447648076914516188359076874886725410986549593939562353131889261910520883625256798337047364530314782227694341317751001454437481965280795891554655151195931173160398880886464479352619497929616470374245022741907281968906462676700651416170144891765301913287036588575187407813577765772599703632252948832047589416973064020780311571307415313239593837247302797144354567592858155349043665641122654830761056304214348444650366554323643078718689708386727216417044626619786279348866462180642221235004489848572760062788362220960482930042149111958991938815136291226957354573519799786060571925000728839800166489499441988509724291270150146739012129769443955570798884405785672564807988067892443461431523998255110810056764944068048422576274450712203629125205422133530031019325484994086608217811362857093084613052147433117246243801689611162322175781648030155953503732842166735045522597509590241669298147190808912020546541842088770308615955544131830369310827701140690035810873456446161040436993917321099688556116620151510396040544802388248803023552305417736593164007838445857078395292425894146144749967340608587820312878118508943376287380098621928567896371947427427995028738708850508038810884580129746989157615833791301211519938869260338151401462122079117578886877031516478575492210713470633671574900161435700964452919838053826012742063154314266929349391854880839389646199687748560337842041516571885350156543802906181064139150708825515532723138103806532399630074886947979901621136114789882860142167703193058231327785682842712119875119091615725191913885350176075380967977450974350932639909439134643742633788182020916927040135510872859224604860669151257659357786439306026042102029405830561669731899455131942032700666152926170426962407182234650520425614715773387841122440004325697362708746026218649793333957166317514894322993140871672060809487961686753025262419829614394839737051658737811479966110287211915701575307424341767730412106364727961390130967892219765557576803331754714553507476830795295069159151654794065898791786237380440485696386012437652056006618537765133057403315949650125549390039566166129693909921840631055319631122375230560770230269799574607474018724812201684121024900492193259186088644514151644431752604750730176350126722518598663183837841350722786353919838188810220826132544764900893064408231855672073949165524269214408873102075087890115951679537008063903101350464691061552879006552507141895749851125453320468222213586169462219088581842677752938961348682190719904141614733560441220930008351846656466418733213879030995141719221707127068722014894706652132484605813378194965475072462271525268817038138368167225348009069870839195541926433742492427084854596703187032126131846539933060612909348559927038130411735143570901781142293938495572450026907991681995697560095994460401578068802611216855031868612868562298200397529807312013513498019207653039590502301213311863572026737468325671594344927787303015673523554358026023786094704540275274947984064569287047934493062072172361272338346565351617363738154483576145085466564663616026672624598982101187530711824773202902554742023904569492464598289200298012329809277353178704316981111248536373189087732667163231522461016435966182730127158039533869155660229237330392081155764333851028432493511841824034244408221876325196745956767364784980342599342714925506072769129154009664779744402272727669558868464043630028559861430699392957882128711297070533708308263773731584049833631889561327945287938127321437768624493358057238072783544463436810079115067800307963989359848892566996368780331383414492489211253126927859543281745491122872470337860672338274321070829595496996325647623654017404935558775177246080207229227329737505809489853243643584995450066791138126732916073877828589270338991238383673012299192625835970337399431420981454712247714923917016423104821130736024870884204433880940385553788036100171195828859541652708770080041181535833654377143400709539291585300694480573530090956118635394024846830356144633791081265830811436561651819171173672368617324155328609789891601960198931971260077103494575520511322028519867490204338890728319986358973551306185455894075056663615936145425786039195489445900404925818467168178603220397051690792538208225983391002607206579653812438390225004922570267404631558881726869852226067496033315664806765816042159393172765035831398084844721507686222607260046952208797387147643259708298794410685567627362350300394146396766783733533667287767061536513935188435368247119580335013945487790529907821480530764469895013313471773642479079367661761550279333532671156215234924392643524049661278043297403822253702911828833990017077300710358237539373804651954638236070293752936679643071113289412878642807780067775058124704150082393339770415864522011053559976732230371495915207170056436516493902053166852070826970182762575912723328820505412151349664598416874755757548640947148437867141169664954045102448937127571716482587338227823981832959323284399741832228044819224513088997882126594954535696112298141487245616036649129194616744756231018156352535621347808530928068413136620460568707219815368644821819993510600030547616664483314334280220991696471201953124506026502461216429811449822380459720282601701158690946218145599508044179302386030768678225216006101623543845040334987037673123986128546593240650213205589978732634172552419858265672488671937210299574714199785803685878975635090277174055760028387102740967348385953833355756363910675639802984074201668143956846327333968466053502478243379235727659132387784189332241531171278431769252702537114676738049927104392310117263977023319555801876653868441873015886667640796234706455437745328931541820226658963789771600573625960353499334510521067939837235688623444253925487134256555159274425666077601116229870905932401835663837489752622344276733458617258943919191049874475581652560735496562789086071130030363421390245002710427231854150656210884542443702200525730543269105654342367129550868643936838782885266178685699101919930077774463601946130827876982877052867287075115878884753555196039042515096200322209411315646313321916966278980859029744944297408935407520133834612623709149320397693020738924351795908452401674497762339008432885392072435249043418618601950452311603753433332225807951588706740074556351002617229962526996612318686020030455596687383197723030460716009063826061734482235774726623996028828796464104211871842642624674877914851744724897217701728570575030762859384567209345343919044623077324250288516061420677461939837320698393232405804612053667960306813628838389682910288976305560929153475461167149323671116456242767391520323453955011713716877350162305513032689039823338844116585070282482891926431529059983424131213136138966598637464257900291394666351195903944558114326874723572561872002115680370575583535440963101235620592478203195349286475352843554346471097630294332366147795624173707169795146709815765600230939164953444456469332464931465559190521215944329574342667999034828181421770507489671193236472112676081070523433863889718535167259097581901882385375682894182254276455622673810258162056267054387971893434643202218721011808584481897466235292124453607750689281275481230936251039992562579331349954025257232339056841856891932636150167016641854082481887169541496841379127920429297553505291592992731361820661555544894349527521190069212627415990414628990096629663147905564621608894274139885798926229417365298924954083707724092576309290996680258339474560620687340821616978646853181382443658967623778345546827164178022888101871038526640429570626196761787679742059289843533419443123261736992044782578449878439719854650133418446746493543425081755266354119049621391247523350462919527110526657540408910381992816551217275177624823148568017633454326772304586015694375808564705992014918294661665413567536962111439469890717628510990018086932080695766646880484966357341656007859573136614849781489608626009511176079066987931084973339606034761380856239253727944125159031687063025844743973635374068921201731458262481007763926562183952187805302513723106564388850689041566292963892462705235799281547475515884826504684371578594231877315476898959579286018599029069562960299101307774894694122398563992589376766163062499922335043704064820626680944019360915360554928892902853697949475383354439625373001509330087946269549516416677439745016523065072836646563917455353660836056226327308315513209148359255629327267714981748324328577396353266028804701157522117156417477818995018326102143717107607351365926403014944778433564311519116345011590915548178049394751925395794901539457788398841623474587363970364038873642379831163269343847128596322644961305211738825979075886920620803745463884879368646705749213417982116825553165062231579877710436759229737757997137352360727119985467218836839191139738527734767887756350294084145417170948223026416438187792068483155123602923474811170966952134467231787413655098917807163037734588832434925470804948775967992289341188171452083263556089876589887648734963857847546255295943062538937293915927961820072903822362118796093532230755373814254933618580851198949094236190868700249423696694554021457009923171343428193281653431838133202456379446316567787179457847360306629927490794362605211410304996655577010973193399904584153941681581716355832291523589100712289498652229314109592774196057170286405088967122336394897283308697614266131254156227955606284075783027198159357999315590197759112663282968652831680808284692621948763274443315933472429665986787938595697743646580308836897411294273349075858002418581466990667589731936518979015197492294778081710166276444360604595802235914177478268696259199677384556632972309748974933076262915897892869066737901278068949157369659044983463522496106835164655236975273772264226066602438993684049009806127613965667078711560799760833742151588033690222430096173717210989616844449577356750837214319178980371429491658859954157546712833302562220108394031797765461000818822338057371467401497358549573049685933054270885818684614269837204690825401034065198999159404081332714199157477767378124578933427534584271588384320873366713513760223198500334584413506821704038020105960859264261088733117313500203748589143554107778026444501567942412217611985233510160664345709725761739475920661992569724374357768297270715747314907489480489307985958735514015188510841812911632984899058113994207591805799071868768074890846842910562383552415021672048621697525835173193410098903711178495340499984677454724628726562518950577735488043854653153127187592195482365944816206406958733494462323478605510547643023388689409985505960973770072287898915336078633151261056391579971098019127151879956028358946690453669666389237851146663044855147317195995614918756248422548279867769185008144274009734846475081974267640808628174321468530374135895378447988806047377892128193871910403328399360205706544360871873235499685229077206862539828628575651741916383483067406371651092297257931560755121966986389957344551020421382345492557925597414096813164897845589884881921645656877947902827387564478072407028158843706376242139689583063705996369288902996337472395334381065701805564756920069147929172008018955679010738090100379433816462539781339032114961853793151690178566262129014331134911846618382783368761413126526968887999629578725033931484348418556284145830847855875214272581882286023094735414105321881182850173112377336026702953459605404166243627283433264705850004417262739954955306063235780178999353365591327849828043996370022275419881473797830539624292821118906140247505039375411040615378668565921570899654901328115100722213091055456901413813716049370234544901254993248207269822423002077257399583334592349522362972319306693028643021248548325063504128362625269572567198136196786896637979467802845000209277869901214435805539513774431254250534711140583741801708867207148013737711272308390751290620384789992763134070133483129020090419802967987840987693477339802627301763731044572302508965113358841171850007427534161139133136387117634898498567935723259508927659048011472060349320867366425416064535359730882559313651352286347535880913522509550550580265108620137499177976346219488950024166555287386095892471997858675733887964770092884794165606968719603100745892248665240984220075519413743270258148699492124600150873336008189583688136335519631383162582942954415028656229077700163131377085997855915126993394751349374938075091379393687283759381440331773095944091978229327360575560863147253728047436401231514313256791046588656837633720817469793081144274472480248973480438280757369469691995890194982685998948219820143623663258609775766598836373889726466732852262614322486026423175865541478526061073369348812495270321794474933501999715098814083850373546065573053517965079236155060619944258582511130191661896199892280755028164000315579379293817988520984516952739615358249736689045812341049669320456284749149119240301575264042549190961835404368632501710557982363272006319778768942664805347789129213936374665594434995608895960476843642179104275389010105388936524589379508762639313153564367926261716763067047774926721070185975255391917882121337165672149059787064483929540504249297123045110052069927805095078669682539220349206441050174928333065372698283107781081446357506419298097738677600895963506473325731254423986265441170775170641575998460607131871119682754428986400707961689398348805077980383690062491243557217722275165053620809875490620778769246760346781156745860770902313932091396834789020923236941992717732251543940706823326191957558728979804655473932617073048614484251765799647805106655477061229367390531160949344141872502107001040336991984520371789176187927506003766346982934765083327191415433965275733778268516913785484348390779142661479645221461869605738521014285067416393561004586844250049763770026459454277233725691753602779307258411808565178801636262402804411116119019461144968301921381738391171620204722127371325020273363225466616309179730847965337708498342596200419364148094552526308947932072886466738941946514995484233288302494151031418191401617924331642657633108075516383148445284175469489205647277055022282589953687304451332932049920601739561456099774759741710350096265011830880071223111544268910222556805129266952577895299979647106995374294363770727223666540278193810910007786690572882585399442951698729790083949984919090161921421940163316084174837291104005646890962564565584803712614535915865075552406972597941105270268072676825766841962489679790824217355073054276072588054950228822250496159632724410637230190431553156885643126094750045754405893148287785481928729566031940670326461487509309682167248230328594403014381192382649204933571675617128484963736684904193502605118956036664385948652139149706631170599242449393184453070550638191900266861539353870244843081941582915353424506731197270660039491733296705448959478020613330069491363678139315274629394266614006538013739321574842742682423786323289225641193476998545099222956273295786399154505526607185912715590793985368610306727937085727920496424035819005711149584590447837810145321012651604009176716467137292594023668369261186780997502892200930847820340602492018533654325558509238200765792090504777315514418005165131000762359918816262273920456090818492407549984603690688191431582034029388642020917204877221835332778464837049205060011088233406525237810790153433584008385017059885012413214501037602934071877195789947733087750592496617349089014524817683270333409230656797451192487830322725186638651461942762597126027422993233268052289119986430207960418170477066260904138099416200479946550727599429796091551444480742243705878437489585104177384282738915214875090590578837456103329706499013120713623320532156951511769326662918497531089556431437825764686587894267213163388703496827445081092100776771746112607817656127035778068203752790505438907659266332903412351625883473274707763469824332458815800001057162987316362919653308502987737646067425852897516556587782018193161793711908900494782103199793165006671782604976070053757266505022087226402093262138753698158832081109647199058425717395776260708114340910203396945687708382981272529272251049738660561165297924084542565752551978654883307479477189400477549241162056262694175448828774595840935816269876001455645994549275271751234489490242186156909097513806255116969449133369668636663423196285419683258998818836761270833074787133008459051617939816684821984618833744110150273584892544332159028355837021798744523029173717149102338886398260141993223134022168247821572496768609440777604388895756182135957212384447346334277348656419932974721167494024755063884926743542227688300652617175303383015083312218662949488610083520689125081321510338933066817474644741179028842516024302472396167836171065286002262970779748689322124519728838297772639119642531048252696242721300507670004142675763921257197821557604930622807575243756900747291588932170890236978626764830580037625219678338701193393803158502506132249419213836502310687458821581370960683848980715894830227635251961238968868772481508931582538099802191235522058921602357105802363475001539825137226078087152404404306039858818824139992571010465844320949143413702767382130290673737962976557502363740722907121545118409598958551221489747748819875463891288736715730257482233700351171524531533789862713378535290837997862004624262200669673858901490437220227658372872477939635605678068548404985479767075773415481710826611448900560967426593754142134288215403482768183034910587527793182260795052875301305236208861322327012163602560878552714914742162139149484833126122957489123448598196500654595340994834045972013699601583974795364931625683636572376684260717882574141676668979008730292671241901960122938567803253964520802257966305706293327848413426833946572365157920171542417603623060717794364640073298264105054655209074714271636073445886348998352217643097261667699751293353474520005200840920848947861414454480712071036315028716819641378683759473717143774839840555919137901213024831789950534009628375773760730514045296507224105134013847597492599077599031106955762234071749852868448663384709790551523747614415426529423834271141618222262759949456135254942374247100143751396113989408632174272187891731450386204873302459234731426748691098915753705998302236326561395034127689168088177175048299803951247871956723754684561668456214222273633335056425839764067489993973689715166126288198322656332785067108192415492149939909325108387829112020953534640556452235489197510969316845308761820149497243213966731304683761208287670295098337864231754792720441894521106881983872346162040620230207726837101384416544883814228613281240348045608558190832179777927634113783755035228245354963327742971100779229014562402754762339656872475410814107303684914904927939262840804749167006028317616552717537899808083564569802837741310350557861730254991235426531611575386380327775785111559486357023144006039144966669687806706889073651801772372210264643254613686347599136125261702426047845348667047755605173995506659518913518485448597680802565185957995735093081159207547535670977698822472535419164211602807441964016797783989337085206045854399583066758794650420171727726234083173971437447164992700736208388793218263876624367442706664057615017558307698772484061010554420670676086216882095752758581295995668521481773193527202350372489569106824066450027443002616974482980119937325598097885989717637458105465350302537059381022433462419425476630722157802317495190256170212489458873405936383257355818050583383259395318333272515997122564355122674421563695133554175612919585557188071587916392191178814317811026533033504965930169266797208147830158399185301573426725604374001010561878559344329714632686944709200722563425192092447246564289070949810120885412806289282003628077769601145711591595529881002273982398339256178230834095389203813157310305760130988808771665171691934599411433852586311029213903953675837250736683836291205232839324945671169346598636686397375931408938737116537928485497517775716556741296539891774099194347675788268452647067728654969350215693963179140615276396099712883504153247600331494258069388078513861702043902995619520650590166038895193658166320971479591283757074072319407277560663526728896839670199268145372161693280701736814214143774780824327479223004245367579642615941821029742636994447708706792153864297258902584768815822656556523475214554843313096794751217386889876998068972285782937964162813724047972137117671586208986890998202710590902327980719295123186716711379510466399943576082220587364025720673374940956071362045947110713911236490492386469900530911057442909362660103782460646667835158316802106015324582026544885458314638509839191619949857850775224348017185954401177019132259611731260388750964477534128692783874496354933688436871734346963772472581717589180863480055696830649517562900016526982119423451145355940795380508774905931071311034643328311663161579431608788915208568194241639871258497145997698267884897551332452633387776808130251416897057901266558244092585594873262222704423371868980220681477698432538510862208705503995286226166442955048165795130963349092601573813542596063736364190417637667917262523610881486192313166381799088614108669367371315145167147902946158310636451509793669987788634870387218515284005370959912102472043787323945151658239535728977482515833567070662007170173613149527895266543464660876586742880453139033014238473595312143012571735494384885179852375729888938897925470914219927265040517582133127626185922133494458339908110693266974223308147054789342772116670599245397672066188626243942665269927870528309290930863112598135364268797250665425977219073289381152163647217322451785048648290879056327131718245134615579458106469586947248110925363808872326410949263795580476498674046962706444398607173846939869758486851761218562733406243477801876761688768129048373940732456458024027484536985784700087471411865550793135137178556186298944564111617216472539723050246257045661949921532220052658982491585058547378546565572723905776609267375936457167138064216585945011836991789140205077942527956501809302171175057194083586443736813218461387263547412208123553357769991766674145090205928846624250320931453796682747007163223920080585535873265414024559896448025834492134021329474479952933301541021292244387859765393978810290897102435540412675119483334218198684707251280737938259376135755633930776229989485567449848589785424266458493926705843766667654499864016834317447226897345529396722542261880334963621341622149476946828527479701432447931482450677200709602156711013497318103309406761292596455679058167780391571700442118278922858156839720094653833385870860303397553826008840996660419472094315874107047135972357346663212607683457440903997090430222555998796770292078201563776709144830340562300391012058807547630898578468576479038452562280775098201483218115868442117957611522332673546595405188736646993389912376279940858023268785642688812367956044243595903793249548861049889340773709508048094991570873239572826112140693120211115187543702092318518751243365663457846430008080580279972478419038570729038136361815149898889234822191135926123799561719230250760331062364712990246920320211026198406521165016214405884587314377421389336848302405255843626070322379887438687923136596907346764431444305657205517993577983822777307899332277610025084880196068290763911755711332260678735498349071739793860229747878706158507112511172739433688795443470954134874505726468489705227930879857102526640602333947043623446421626523479843318235914868609090968854030687080180765027511036356087314500311044176202928887531918727115517546393997914382416232461565885141725478175186927814193907399625821212931118646160762159942761855533934192235847136918349879604414650600345415726871594842175878681220916751186785243547601524524478360279508344762258716571344703833304625748919287372308475549002860735145070253093267422714991154829276032658341532640807515152018445150711517999734052239245688090692966722498614894871038813852181667523926706253668116044197614229391655648265203799495510004516048459336181294778118958877685390099157676155580816306206973138938360306138041669689938746226637455560888828995185827434421740931167282306515679945406058690157278274961973784338947952927456770620334227724903662508687000626994440432393967665299311391148336970594487502537803556385290059675864038434437245721400098557413569611123690403180043522252655681994882891707574045024602895073927300207702716221225517993260012308645368336479362050873875647629615817873251626706884575661427782030163395013166307785574787900269556286250803406604042130015966594060984547033646294855701557826206792904126213923895049663025984026136689572981653864387846510978494080251853652460421211338630651591563741604195861491179758191473493523658659127153071017686139145188664997642552650394309243417608142752321245702099793283216709236171113502225791673069329450442709184265760485050952709207811111445812289213946426069363232194232647265882528376361684669628945877081539377332746240757715000242652222624682556673895469083243645608929156989215789446247234705228353881238288983418508691161912480914138830725410818898507920826995211251892808709811922736741713473358883537032452885636247385894894132456844534302341828917920677438059122132654514585360230974000558793822073342097849944519844558939342421870944626619961917055699214162419330603254044071760711128522494100481984469909527244332672203018679664156337064800374568563325748828760524252522972739855425957985478947791538207053593532648408516631593630647420909268859711186774595194227153075100873502784347794348932527160657887463461441938753793136625061657618557704713502371577886432329289678895738407279598985841904814290424853262025423926620578368579639869227616577919366135538466696139832068712515747007460007503428592009675850092629360695429770369739351724528426530400422080958314999629101071185433601332679659839964673303405823655370342144554338821576401476159671259186837152058173019001938507432836753795579405693720665847430588721076879766559367134358925711779640610800231838493519878872300826226350975789761413068510496663876866142941665024623943991926729331434483358896501200842520951659415267552880118376089149416156977634672206721519064932030160520461901105778103301711039871053060768613907877793038201801940849426718720073944697480845002538058948682206105050423176073997967048404325592299401350183134988686223421455153263046199965271349274732731825984808704164348368793555862168746930021974701761592657354735033700910267628041901511342824766398975254451220233950158752626302523977679167906862737436561866008430961215715397493741298753315792136049013501486102717743348832082880496201939930967391707721737650929646015025593168365789811568035790213850963677765945147388442772050757389767887819225131237869391251304240638517981572773745606820113369452805271275767657975320762030512947277328370772219924877008390349911888378864583018620281028529935138991331107981326542430551885921107709869806185698703960996887081272031968736630119798103706997464877504821351758605289466146602416534404160637124296691114665413283584297010072036486970402319478430839353708596784959219242568067375986593780351951598245707423899548833649689069412019908576963765071655325938140874375245492002110627625704696025038986460785797792901976322636831379836866239775668215014028335646260920742664724132333122448871688945967982535515754340032920528497079047391519229525854504534652307451712528633407706516712028477393116472506657998654468755056361225466533670556048918834404447108535795684093529272979130179307882648855227320553035959858124082607629081161005518411578254447891015001927339742369435983518388591663893055457939885319715870976863716273270223320475169340200432089524114085990723605624720693876976513369408701518100104511062056026244819724591512956303799585563489775590211153785890702456833483923585448931730407563178875357164368684245215826893104834928140833793243294278405072086715054236345779205579098641880661598614144390339966065140466780627688305445291098088764514192755201511279061790078645952866184435702536186835253421599157892837401928925057761393976030571462194957616262786490789070116083775639519470111682496326913973821937583330554700357220483351563752669539290269356096653931749683043348163388592627779554913346521399171646853467235315585387115454604724181613714223402745924739500633395130691411207039377233066280620314219148226452483779041734194203258207885664755067587453751115045787219021528435704588773330072993438123482905950922125850553484851014990382343063756001125058814748574503433151982519071507601614651539828654430803712704388529958401691094476239734038870820441184667326461086598629514971593428032821207497512552957424407236112538488933062777763918473617840003658909443411889039354768611536499846590632201087359828724898273176499757737790666649571920290161607613661451140664276513420945857351286088992342643043139131232527849148000406953190225251095468885533178316741545865858763851341491556148185868321403431905849132339029910734210521903714760066252140093719837085534377862104169312529090917893638579471214126437761776987711316100145188988274397616575526646645757879309921824416119888240597332422824742428677236911382862671376397763993897879562866230092427540695603702852447798283500759950588466433529866519991667311159253123710159535216317882691358820560094786623055977458032244722712382975440695220188768719428925114716582405431733831286255719902507127332231064480099852776754271745606264691010687174250919252153739289818152717908391254097236204875380474715711790569511308263361092420659861184265518114942837729608880969948729773240665565952848864958507374808781424896569230756162185942323918464535147811514735491945929472997110786554386219759578864039673128094891672636930485100743725053988667698128446985574578455939250916477589644077025954789349244120850081731620796627992465793298985953385240927960320027545082642674079788483663145293567724687503911002215838187398180607649985530448396125396637641716543462933076504427206319314791159818837944415848107774136673890184449426562737944534080853960053759504928490686493730104195800369890234843174930261356390805443634673169204178961695542568597835139700056404349662159510360085315781328828266961772336739818204838696047993831274174385498171880384355587434312480865513350235650511991580102626142221211713079373026077085219083947022228983107038428491829679056409439594478790620170184797393631271396494512720820071260251427758139067700823959490310367909012172573299110931862202034614894592809614602772805458393225189493171432079964806756985895397952921729293811407150289095180055198781020635809387697724997177936173158506261390511746623711636827707829227485552282506074483015828496897542750963723552233903762858330392934903809394159721369363306537259359333996950966975550399716800695425979273402305524613635622526580994665181761474348217086623451336970043242722201486675761876965664918597208856547602546300873937863064659333022188711530976932642185489133490978798581216702704627444735088377335491477134265556858197299710060450658825483347624199027292587696230425813171745640315585116853673592367939186147363104461837772314593689619984092995038068568222509236381994578305597113093582794240330754082579649296494696505433987993828459970611529516793415154935759273796852963506662861629081578277675157575284037919562730213530232215086771179205866293792153379278709244456081999899675090336359302829126823292578607436565745902086411603631202669890482207575754585725900958649771808647898523247051462038112632951779011095581706276641499469557349219999591072422266516792640861814193357968248942944354964320136191548972855567364971045043201718928907092458374181052464910152238659353477838439770774507862449276421413306667101863506520309514843011565694289458751981194141488447454237663008635907669414787763530824802619728962468889602320641611587527222146448445316845501488171002988160532871835057991338145469874236498312456045273783774844245524227135964447799105420443423030946903752163859145548239995618670893439727751340604377721059416838602196643110518621266775252166681449661658419646443597413367054805962533434015214004073527479009605395443185847185911305519389397821066079395278182796358111347637376762366109876295481210225262008438318186682043490891028911987110793290317486926249830092200667514079484204622236464147386545033095182259327591931555668427490475349292298739297843203071813374130782568158990012795295365120127370861064883168602268718497501408930042863822533792668899700706774570016055946114057215278836377767568890199827701201253034379126798811753254207830276948387236188635675314399413763547738164122971568507574750195639304880240158267539333722474537756939346995039613740039071012831482105111296619562815910076414741963023649278666042670909565063137491748555110769175425779087058022767051883649534065806660148647181883100479868184454170276095327885412850033064061952571698529542246641014244786066449443423407864274925159531926450724925400522214898544054531793570669398313538604969353506821229841820538389566270876141136511040052371152489467470234231905131852719494589630364781886060719930281091995827366908902692316544252425085335325720870936278726978460260507172889115509940420081263434736175918131374232996698574401439237939088108879158337699430370766154621475995989712468664030567437865231202869383565646444803478743787203945034823593199627712132143304970029685354319273517240433675700654481739550703144228058709601349643558780274123478087800967982357960268920410118657130831908741005293321007391945966944102813636907571349675457239817757686107732984112707521567852455548248342257916092018845739309294451798336911650029485206904779047592168349950735290774326666194197904785506274964333614153744389335098108080908956473187885595387802486311866561878075557386302106064412818659128822016179516653685875607989224188423092423893643668145391819469457012667306666147053590601359742507668871225254370355060247810616196481446384524795353638806739120402429710125234033535908861809203580865800785942691620660301632836028241421219668815601514535715852292385476560316380367636952394531295318412196796424960034497446292648255150345987674941394000717352946508059262501948143066346336422471798235350271777643734579880283363424845020350149140625169193004236905717625850677402794352974399137675072725658487314528695767040005597910609921869880763666526092613339174659462204290467882649290511861911844263958211531043164515511408952586382648516885879617743351912451171450956985702224401312301296125696601993189958124551723617442419999669018713718673068150795350905946598661055480159190251556417666256909386664780861559847319805679721816398662369274068588190613083835332967411799171151801436584544095495167067494950282135914009275778241882760448541325836110697096668865856339645911706443140639292673460696657921771211921182418909050771040418481280794894679758385059395436724290519486517576405729003871056722253077359599071898954575853613341949409653309455242188813195919389727814688690884461566272660648040025951147573728511859912679405322031939407113520741301251590024125030185415539335029593509600362815588211043571730420449995141453899237658285265380468111446028183530810226673613330599878277007842356961790276490658833407187659608264583424503896737963190442106970308749998157949149305266802923186067416864897641253650887467657355782736487630271208140835768965385849201057605787161077792016501685934120958802013954872759346396359132945096735213945372617464664812307115801104445474346144125793734655037644463508563832813594039270828781843364060815893320949759677514816610182782504582660395172405690430669702782559790986382713285182921291273788613074303616357517383322895291823795376113342781999927011749144787922177363695743535266186192668124630130997637540838734104541607743362732120325581304836142925063162247645992794444283041988106163860088782413468449300489723000973155930557784660869458640273218452973720892420499137118035942508790139518357330104944667519688790745608685851577980383861126637447922641631065600972593342902641759373060813668714424310351722975889726250427471612622511558330909899867189217025735097901501767203618327738499042246579585608377482129330550860804826227377099246428339947765201739360070646012996503940417448048423669161239246256807999185243373324880302758869979572044297808025417514958965910138418816483955197860137997570473532348903236264991137776997537900130204028660678052756495577642357362885465510006272418479526425820966374987486699975024294201690487213133678210653619484657750268983120019095266906621713964186258587485878239631934826272547873171144647486524661241459937097702742110261278729426163002922359556104811231751258256253249947779314411243195744587234041826082864265641344560147480533196854400547419562050237714926104150339618467253971571592043432368304362660658621565628898531707234700648257390021141546722642876908728708919052714574950111278652489670790598977095059985815006033600171187680196395283756896964966357582667127485814104845063491074251815289349802525027079165318855035351030274393232836060235188323625577344536399833712176973819726160902459300377394927390721246317529978336149321880790795455325676496673354898645842633498776803868457275718545798357360986408349043134358975139280240951704115098852489218706245754653823075683074106036442167130177323701140573189372559099349500493241943342985835306979583660876254782227985232703456761026639021259483829309227503463733483069592990117354438885017063851167209589005038612549897584627687814787587616641779112959451901154421701468119207027428019827385705364562985336394973937442756387682428156973698882235741659655386350826790224193503734989587437090592612211299397410439225508009512584175303795447331519354539499595628535392684530634496958349960665354124485202518486328144347945609849873620772132711088943748300541807027301687497650885160523730226287065177864235262010340465783729024681144413682158117142414581426354918764708162664671530639666743568362800980524952220677048079673086157213026838673261482401858747162697012482365847025880582484214386453048581353443062540751157323457281915373019769519068030996773593467849044490393837707707685704809378034230217435939016331946891864295705679031279373595245932469235467969566009802303357226095374804076645525668176463643928325468005960528530387422782907905196216257565083729695860762543548868450467124618514939325855970199302537540495925631253688653907683785101614689223340327597917296758633688460750526544523549042209819356828533450420374257157627827079202557014195743541165132569450586080770259166205035599001821795330194825321413991908939546177087710435339960542176454816475659227322400593766110777398327054350102044308220429375701982479860071034682106742485077512365135233352288455925772658457864585082850760691661649396547854854540432441560946076555510133552176141942134453873228962437697854832053799952840421120085747457613138417891896059860385830049661613427686992373076241574569798126679610948567342857652678424532795290893774542200868771605454024825729260517404380432341170931797029241260321340259890047100575571777418758392395147133469121496823972698533210225524397708711284404874553414688795297923735489971988472344304508599692257172098543934649052548294331166091093699369469893629624564755603250274238544508928254905189018771849783937017907577230365694598625583156885498687637106098839943643703175257709067105115423997068294511049564018195650191116452941185711784683350897326837629998936095886971797189523416023891108957217056781180712112296561935022896434689759497173777554445894453099050314397779806316452596796690800241222205399857179941489325094312387477738836848176079337237132598856906229541200916283301714705504703512415244321666637466878355946342445866812452129186355934728939706924888836474770004526918952351705550777141883427297569258470683821847392004338224290340201744435572149011072438988900749712938931429240530456385914518710481349922593008819727238519897661639077488120208755253841862068632972185169321273184599312700663145618859227079601859800449046214911824005860651203216332790004317284040375115435159996889648540722561775659329715555995811556709374763752460688917406600821015748193712628288465881214045186587609724737581433416699479344775019364490780814424566582257880810988352796549889093272331343348024312205798020617505210088777395973445358827536253448567727805284955541999890272913288249666993248928010453742836487725918848093638927143084951806110348441442988249144459638029128251955044648465470149814586154426178032418955471222052674116163203772964006267350089033771783376971419970372294833777090537833305078375594164659406353519888966902009626917487750775661927629136615947116059527409463368241322731879191378660544056494920704544085952159911300342993311926181946847122401667992249084853993554122545927200799542661186743016533389837566951503918100607213161786003895468006215237768326033656185289480579188614413369224574180120316251891795223212442936510496439813610908117920372485719774109092585424825567611180637398257072900298377251131804590826379469636077602864606162810665823910397758883981259570840240673130231453451091787504924555781079680021213284550398785588313775383702797897510676854669716347538531062036575057591539353169348311750479748444732566385071714873441084956606097503313291788759391489956221403296028520636170307751513357132821734572960432417190342740530184569895168808522758207654544785141844405210150148947680240595156699351566162888788226673273299775920738798508342247973522192900965559334888292551045898445273461856785965373640692602151365595643702099866574177941902049794176009023528913288706256951819277081595182981588588770208802013121507950430930380911858038442824184359180254453739642495011657738824434733987324122265168762230358770581936948092112495470854707269558296953217670825859977236840647643578014182793203867449284354737611937955830581503047946006819657487872806703610390384877047331498929571172741946839274829999112620944547456485989501955633210611427014616253068315793279222004888612961448088924552884639684109926965964327803249532138966591338100116618779907961858719638126032165209081981825390911184320493102657087182407367056809361284255384128822358995197080536640809576776993678283362311466612699615928819544761151654168453386914161155963148208784343318127150823706483930941666025576043167422089196720056146911329403276427425351932071953075263847020870021874645450293522647732530063887468213035614387633545030403867426081945266255942756545688702459445759698509601807802670825612782843695595310880032338346305676624097969316002488129237582835906669707699049813508035115711392314445204680265742014128340738661624221641823996577695492701188565257136593639052023081034061760044603385532051934216983575982682508521283359812546810742761570132798996376040455845555183861430695471574917722376483984222670332653441924364985754180417444879561872162326405323841918485246871253536727487613585068764128184764623260357209853212299460665988869906171322301212056581653904974467579708360391720347344538913448093487387213729701251237100569478291220394326710689628607146170404330244517347819254782595232190821353772942485309739661294986081961558635482355136840089611776366727024137055906095518085484520757682222600339965683628268071379408799129212361351329760197159435876155573459702760373677234853188090874704096212365098006513520608986194144593195373448941745648323577373935102863529360708079961404094265871148106969450421860538721388330536216566625374615709409266853725353965034851122263313939522523977224846625708413648942386651563528799746342927894059323540087862373925112040033505937535694429653066964841796553276709668697660182447657798891246195562169650782448734315690511070455351424530104934680119846242323433715740386431895019720579079417636693727962972145644395196966839382641196053892297048293441710825221268481936054545195766661944475455126017383619440015916913923599560798074036350246282321419699652652129990410368050251387715164246017057124356264196035057143408489028281568453913225395366107531109457662922265102140015900099621429680176667866354070136472981910564189301436382203939322907162261805431862910231994571182999527698734657198184558815040296394118578669547089929234227911194789349466325622801199918498938661547623574311504763062925831339711306140571395625959567561179803279469582895156595225637002415471922561758412318952230731909118385101103048030308043590507808302583827751444697297820233761441983122068225123177212869412071324128328727831792736947654422320543145131024411070755604505052834530082184339192219994927759296301784416469813639594105735346735270207543632722543626879360882737641738245146832632085108019625588900149627745441405670521985695798873677990583676228685167583051583577295784170915818752242402484382430590801139209834269195753738683497276789516409161038718422282281149884837452319756311202901658540487923774738748244524840738363186422814516250964447315482394462515135017941676603771706921846421141871171298609623421372919795023736820455296812348667118827839406584783762697524292017614935797425978424620969185225869756609791369919253317576574888509315593639573342062815030007951824603142295049733737827274152037252423700942861056009648133580532185203437938091280177587882864854189770456277191072878388502109338045596095086890028433589959390210618600382304283784495296121497220959542925167143825529469637389479497545028013496606660704766188873966248732590567368458013672778397945122931092677145016086228375583671301117225690681022146629498613407803122439334895382904012092163552022777729359600890989719167694099862821618545682213817418678591087545179486723821044114518332758151174458542552075465486864872677295952953914604465761105471494564729613687753677210880408343620807104659750956475931571041266602524006861260292449891044688104940328075232799537360026917332701692229999436205347985247410819263711245501101883521350111580724952902270419477199651010457655718944951523430211681990035876007057567430229593763838469017244699119374377384686598136686475097363330461589255584828462836086187526124223847881536229514391586571131584854333519873240247209048409616030758455786326617564991149784908490774670102511735178078764218177146407640254640812326827326700733766958261531340802624012308240927194487494401234350859986682966583954323351530069309110631110991741003615039140090796509838731005715794882213613459033128948127998667555330242155455130242471547619938631442750520724307495027185915576216439655017224881368130820996836432371569519816707520443739710725709532817980905764905075944959267804823476959865002753792527440372610494718836556453437457326249735648317717074103955443447006639435150546238890835151563015857269218883761779122035192930496615330401010053119830464928021682500780961598824555025544117224379138934539132685527918523174277134961712271485276606060496931841298802238755364023123653896755366840067155397177931970519093994133662359881171188551991184904414555654033293212636797817959315766301157939828732259992465392250272758200320765863987187817222548572433389848598325866036445062589905673888616858005549452273213492785200479080945810160414799951462348616683801208733364487569768578468871761129421368479832083904051834385171413215814971608052367331391104988843645238640848839712069833874213971598011532902500083398665648759515698088374661436638981405228281596027964286031558612420886226619897486754290684024552854114775057546800684199320300818625445602144037574557023111128004560872738157932845651402116459912932365160566764049509476502766824520854941083025817927715375654964908589696397615239408545922563640395884356253436388623654193459195870935232206597476784029672649994175342928158689088063066636753366981974654991424289366475481161545370506019719546246376841690970811942838269024160449756921233516889731991487169372639978693163223592413759274205308571287885347841137338036446443152992857868349735419494614039504411160594862513384293854815967713252414159107803159486181262450688331790496172250414220711706777587155229702803914241873734972157812904679782428948354359515542005166836680332759474284061357038626375973049321266322544569767876578393958224005293686667705176950644803948406019536780431899093229433270830742431844922509781591105932972433140515502439807417083267219024772571539177702797147969628879732963108405827497722556007713193572468116306496184714216709413747207999558557384624927868626667582760605234603896122572826190663970772141715885410171824989046353639825629230289962850019543001251958904449059425833777478936908875913166914024741082317052320790297375991036796574729909537195678949936400195585966697338593939707057374095112744382186723910430971629141697739476424463020705026028820488620810294303318223707888665595435796645867103128496645146535511570666889392992529965452245336736761889254528822492382466150246552410347182662739230845651526225982251143497239486625216249359772855827991551134171144903545475623467017294386739329022666158576859233546516284974499809542525781871533501949048751712723541812546121740908451362905259089623652120992264051427212718699680010493331916909099862974124475304933382163933043518951026375508788376593729028219446838846508648331139562166919867470251603287689000775738550109246861629841273595394084820999063076568804853904848218335624230518076049407428866490939132830954979744271652827901796348061591631971627867091212103267710205843094379234594569448288741857688111114125299158274162854067128659620849081347278941412753065649610340865812709974384280720837094214321993819668889881447613412222387356347295335561559173996715943669151755532599541627681702486690334947679515048397611023992725799409314491520401721621221493207849858534890563335397128365907470464699796110537603774390895284358733303549396362519369610107532926348195983523364480981228198170134876210456296871851488691868857679799233821946563884345349110806994012087525820050622246001246208047016553959000464806264413053471832440921912487514014401512153331519990780851096822548107839470115318505051087266559573387200017325577123472390781856269401481195017775551073859999009440180273398429804212340248986920299212432004665083117451195643278789951298254286055860927880167786681707055680738667578129045073883309373036966006275710091050936131986991407880882348461417935967420351317971505299081500223234653264849804997349242664435237580198865230049203378037413164162648655383428495943087130112083060348768602108572241111148548256247824984847209292130886851243014183064299655346236918778846157005667682515234629435163198887386837236741741172294120798261848960889417980747096824561300663981801615257029869782076582338366341793268676268381480632439854326389883180591643752415101954879550684090188974584360235647580542132783547004731211451367677521217328939857169200645909698676483019896529170177172848693651992528342684539398701290310369716534018256782512624665272102484104166169438810281541067056921205658290162557118193214427570776288682000284768972627538675448334181422036584927174051202512974409030989425708465324129522523103914992983833123819944666745429787041731367104694125760453803680048156535820951170805611928382264179547641206516131317698788311749677381776045133245912936646879932639408178920593640519170591629890436510603605477454336368080257344896486725833289017444113966719736975548222099165261490529593258533156083342640832547404246531161835161437725857949779664533026466926022047909991889862740851940489523154396699040617263959018805365557428177819079324599593799381627293946909070779051076758405028244105797115920065917208368030884294454771709004780784036524265047514404379052805875869996209656243081394682967826865310566670610410207777425852660447460531395856695525849606822796194022328624320028262024963602930257578551934630243109087780581497859325986483027116334264074013394244339341936756291770371663878850489264159468733475198334212013976861770841507188616728459343133151805311395509851712188842266088185009894252845583512054606657906572152719664392451121463973519842860881048144551472380847592278610626029928635897841241164476323445998404081803352616412317796180543211781329554259382213270444026219360123598959703579186706914337967092318567023201126186465370346510880947487345916534768563712005798507557768189077776801415283669817811170522709154458098971465808228068643423387995811552671346383065468158840929941892894791266453879299123343747613886511366578704111409821018285068350363646730847035500752472720520622518669470941247860228768239291160163457813172868580902186942711913935726513003726593893690609582629039022299075078899311716778442744744667069884961194132690383412329334044980257064710928913549078833209253658625044149954617976962468814673274588588602417936447309607056511164166564183306618942787703373300436082527383719995195758691731217672433905523074106662952342790137591820511112795860641106080724793657708292727866703157993484782395244185835246671535055145693246710160018344547712108253835922639854949496243552826068664076087321264612569967042288725763959100966319873449815117485699705983605689605449999078292810090780567206308848286996636030950252443115145383922300471220246637871309357157034288890028431888058124236697046992700506486673085653500823432242468102516015532411067227806746805145951875584547526754540380516896202916121006961287765132345087381280796085481988954006643469077700938725992967764647018667297531934394727839943151054539022072185025670036904296606588778071828373520699758802972540688828529970591611678437820216940684020342677796204349873316273113639975766517267877591458439185093651072416474134977069228786777922425609683164578550079744988010469520704751088017318412492481305292387516662866333167459207276603653984098748651791222643052779255456722024577418719486154880492946040755835800223800320849629479208379192917646965112705801431227866635194110598667929350181337048833508232098993680017907450927619124448106439086032263750946563082233178308952905351535821983921768432736893459062175631359011091799469806523028783782439525966483647937454755765392513797527144236404876774900289756826838118351338435206364488980487261378006970514083230895515007677768263798763806841251677092840288471503161115276059684127888371151502757680538538160501906005857020412454499908502100197851736123716976172237080801177715945536601873817674536260464152492219004289259542761887251270329418473333505108078084757226460097491667430049431464818021292960448883141644542703264403136930604139289370159082739369284930940998264831930473900706334943208921853159106135645796789953680120759598236109681324716394657988957149314011255589542131815953676307205316553190128412254558172432572106078901860163948940385118435335720137825372506270851418829153648915308703827500002608895393099998540961291339140743537668324568517808619815204055975307103639652589020519419545922022370838006346919163770657156707975853335233682489773566915204075181661407995935201269046191140229042519645430992854503865837090137355096013923491097313287653457653059799816396184095102541601361219663614889765989279758946665820845453903966691071335282757846408614988265419048903688872212453401838168913709191655670780616419453320472372357315355598023648983183515761326790089346217624111371330779846571093508840088568421062917046847248901465931676072972832690512453364676935325951964378601772761696379885324034296694417131837258289405585775250809254180080877667143394335533357825413869360051919127216243324355875442889365204863847713798166596655730266661973073786378552921576361269923502789463885183283722766132632721377126601102934011215978467539502420179662050045143902615081721869901482863593169206071008881325044807489358214201522153380931843681387042624662175643037007591565529505984987392426271659570392753273935267873443549879835608911119298047386681018783304051037178187133909587215217961293397125772857525800043105636955512843126625930003133876701937897839823550674798351726330546237626162337759888310387840334644670511726790508854620282010345081140427405705655937686050387011831969631677611395728757360774433747033913424590424706162916989908592935054512060524951264995625407543472481428680427048344493530916083174449632914673881070546554996805906114291467037435025993974518704463186578117440766314801670552455884596267459140040883260559436873261870219356518797200548636519429340274549519067680204461126936826220268357194372891619027310183160474432277432320936162592582668649777977282096274403371537021185938792049242692038639322178397781922363385426146473110406972881648693803224422218722848012201797064046556870395703011177215165230514679327610885563183837679541548279812176670011612086296313992931899470271989031380366130134127900748516268379093193719261668100334007765831500073666405910882903893740858365187105194799855742472092319282494015306336621531390625278521907252419578397686292938282943804816901447837359067498312514725545443431158830331788556438231099868161225444571817864725041441820374416901268739732985983555104584364482489669586215799372170900296251362714387995178675148962289314699074561942369784632885201025228071296781227155849231252289023628431150999450695779743973592129956315966196961528563754714130178954650967729423496028196497241627970073288082586983771283553118389321669182652129391400180106255734590170358252275701850241920223172925072655497208860922881355437030181486143197767437821331940060278363533509870095944839868306524038335336080064303655569662662265540594845631601297337604091781500893974182922291806728341150180702912517768653644584558821495524320007867864149756111825180110305296454743270951623027947011080592232237482651073418796129272414708794559837680155996693135210071417883757583084936141803898737085975438522836458269383194298290502668998254952595499902132527078640716833229896984804827757671837343230198898979481491661816539259746457059383489847847632278121643337854305703678801340942835399201785339918218511118097987968836478429773618929920708719563431243694861691271159492251111519194278858251497848050816246538510166047457142340743112081076274714802067903035754593569946752241343166398730177095122073256840616674275716702967561806606887102585564105710100082398260215724836586287003881401687328118811423830567048813238665378003032672039386945360659165697499194862391205752649456091710806023387859073685567213065559424002354157955132176899561844899026428213908254996516119781000987450479245210639904262828333271539445189804702458179290294457564306271022150281399939950006117934985974738448575917794635307624407530443942636871180482917417583574815671120332097518991757325785277632884358271956505951362301076705625017762555808531057055679315125760060036943022307115274113932346586913346483940490951807220867141858985200582887417797929785579507883229579345757990313614375134028470253065088187523513326917229332243242291754242383643210692311920370826141241428898945092256339543970290156579148082715759499279447934941084790075970438596906911713742085284556919667076795017521830734135801263297775855733554083233402022812299218290596318553699097097974646018098341083526169939267001029872801130234110024788625194142077286091397603694249445245858366507859637232197770818166615853639186691186073297441069091590497203264618638622838802574501123133252881293134894527060419849850187593695670070569788784146952891815060374820284774554784666570668843823425512478635561211235084866159463921392657774695744496046211946640534389205150400522211391439669081669138014616960554040083869567725868440662230309795363943842534845445708494169758876037070939746126118348749003792290212157117868615133893961654061668182372250685974271467966816534751828769029622352174840769457932033060012135109404204603831248567234517166036828665408132552618330329106125924608893859149284152095174650502594788301398815688056291602259178268439600220628751027202467753665646225703060161913155445344629401220846544279646759185190248837886279897179338325651128798138047033873836819496160186179620372306005022282538986288608122116077852096803030006567010723794789772186637071915067896952568189064566730186934065110219349914709138339267263445558747443541617606955386281130071423650627816509289674969711824984953077142637352871213755735143983069850990393533846102960101497608279154566102559913143554396726519211391474910693388698352202259568957258726855096918793796349154134969148578942929876160863311979716677314791389969864038723684645111196058538274640785213337738301814388600117293716247434955922532219283874301753580932035964781601554397920742965134855504552762030009166147232765061353935549859795502866240900584952159114245978986160838946659419297505177503066859301585425025858010299021038675268277324551515392679462715583428312222133592765030729442999051829917197410630071969952326119748160608802238924747840536824846058883436199233818678446369773946673961485825736958242750558206099803229580623424121245324925708361356262583043839804888798229987765297265361640418310095390262671507558314529279172435683544369913177261216010621560596129111352747925267159847699995585551506318256017508447052401729781981004852594059929001271762793309270859092483566141864760401964604295044133578155471797195441117661663419802075922146076423452558325608655933340124201153207118270089807884761221947357499659318101167296084783002684699890321096222619790332919381704883578561091213789916537025917687294648992016453448626359499117501980629790836791538728217163328320475656235791360762541708901111078943195501068121553235544842142583148557219541693642045542312793784879867118535750084347928433530358351683253364954622759283565083734741919555410912640791664045319672269253477908825561757731170059246281822141010511118532932604593985400625032366352499338268635766799635737300851956656396284008575752904200263250669091670933517749016166863099595249901799402724689248146127421853949145082190007834394039641478902670327601314465747712784302566382508322732352307813711859994494126063692331714055261661079598373596072282016660238249917088667601065682411819326988203222081281034389690417296060254300106626524345668990153582052836416473659282290701064768445029307188963951057293304289779024077277159810555537967854556228575474101867985888682263271514017763757821263311362109138236999872155791127796903684551568601797671189127425264789574978886222195588186470694325711529381080267435021008774380580608111256152566968616783889701338141120603814175655399121708962457234114053852258528169059280859368242196309595578475263743543232711904233373426639114523261887076361230916563969306557591925277607079875358267089382823270279523174752827089550534974535839180187123872298617099673851192958509083411829234658260391574760303448926041322522341831888087133068360832734681452978391670455100827910718252407407088702182136672143230975006931446837791550763288574481750337680135467889171347970589007142132063500989430243471566879364709010118498549820665006090765516847390621491442861609510389092221640720895202398723483460169978447568711000878339967813565926969338543342935780962446065613967078375036843657510673498181283305058231346839201234173444537966650312223104167723617628689317178283782948221393977035591250605678713466125858239503630066597342935306970794176208852666853442894114726115145389130313182759351142189535913923324232522905556029954656394633158837130076118498606186706730929722034039675162725019760430102390200920307966980562131550158926655563223667210074572596999278454806791542736188899719067395738726015964661283445689698946483502931752522715946669819558648802584661788907025695229180693511769393741558643476214020379944690655891424575717177145478337832296866093943171033432927792285591796296488516137465125268054423961024776095796458372353656025224358222268756362249300980274293695880050213486525021568316398076056912915646481618425637079198551993923417077199911005270615636094576159180621461393346320457886646498211072663711018174801083781096912234657771930836263129039577099958167967781046030761464239679100557804222386109485741079395689979329526031488171026835706302962951382887112361629791473828040681106603715621929258600032255537815019888035024749680857396524600256761568462180775508418400613533768629743055075265347126691079829605755202562839015771091903075686320539200646866319811062241865752097643874703051220338432358461245299927489084246174243021020782907041711881339117260730896580901960819120369002750722951820728817438206089527591124780041381639462583781724088439134648575940466126567834293548853348856960933584716356822039336507768459901689494165674373958768757132777456532959195523489874254528102051545391226279531066998361345199355414546023522522896461742054545640310633224428204099295676046116515427450730341716867274355089085907145601814128474446943356962673246125102216429175206203185331228121367508814200191953916097030903830938984364849659735113996158437122390613414038206474506960220268275563264386471918447839928892900714977083945922042028262499788657176470164083755666337242514581972420386167399490036410401954628053247187794604907193168587762122193873580619834272335421546925951735380715203038537244003546476716688778528721980110813600598683255914145818630537629015492004841461029245528591967843964601909607180233908602974747224782690483804606925735912357825220078160770124240122778920386336926962730254850511909810557939749784207832236258305500800062736584218387985171229376848740506804147025162503854975269222501674376375764296162548110705461881315724505512997590503281401480588985960905124219651841148157028629327007033185168536310937682156764696167830692313253577672145501494910117262661109007627354998600301682275365369265012317935731750118187223139713158403338413945276834741176378787319213706442673436719940176221615111295697206648771381765124283116870935774217685113475055124008409130925955629061637545153587431396324429914194109543968887548687204044195727645738298613689191049407989757596566046917455358069852824306690922416417468511009810762245563386627677263651670975555075434611221972199353501170980691620270299911276766081767617286618331417053849032486762049013788768952012157008697665180455931572213642458466077019845241607330736610946175891905103785172568242372194830356726997212822202120032767441647556008845287582953938171685046570089710335896612555058348697143148882582650156739329509390879687045619452474409534675247108414495199210739786255659997760639494586683284031593972825469419625593075692183553344107617780136236559523200394650020906851683092889738260097583784833871990620490442073534792688668075848662528654823716035458463697306756983247247237169706842401681520828961610940962117588164824330204410718202607070360067499464208956247655463186733566252467540032312917203371295266024740549846397481039465869837059906989589950165919039229422079059712912800606196956361731308118524439460307674407897381308085380404653192898272120215976908438121659189925596282949969438727062140612136211839921195413141628271417706351647944293688148217613629760069852132846720959859101548068052794592373995778190042363900026360821091868663689762967327593217496248694736837890095079414767206409092924741491560569235338457036928182373464000186228302090221176211272843354097145862095505752388769833142258001696208915726302715675464262058556345341955164919200698723030221103611851616272889449451351835745143710636908431500710180994451326609944780223814905435959311837418960589510038769292251553755052225959895288018514264878891428772625753275241267603733268338963632205131467720146721556902330127370141016228106905418287847716991760968184768713658303725998649874694399152636640174576190991890694889730304758706696379359245708632185499923245322320653958868859301051117183425233946002603436612035322257722709158141937904228400263792200874524191893796917228787101576466749612909618843819961118145209297382935409627546445207245351564835805893131056760336860244221786039322888528632357908320455378060708195616050680088556495800515519678619160837638948869841958806266206825866574535831614709775707094575870326440525237441845746687597293488740463153397000773054798511272007844677759947328683272417648278602180038179481952219336191387589002839538240985277306942060086437452266893427697580319464460725812034261830831426436494746555433635388708180516895610132021393083686882997386971594021552188805742559452132754123150714163550707517006553881967294179710075528857232350688400251701550294782435293250969275103307018016265459386671104610183749562104392386566697544116523953431909963851945114851966967225110645032592735856850531474671272387371470053958600739549479622060216859795058647826417465435469870966492555235905126089835211153120198663196675329979991286162680830129921913428295192462734597884534457143965421907817163446288721387652937542689796323568646238010258780360414053417391114939495606653764354986770054382300760178544323939304583391690648770429996019245974101487946901685995509606379920933436151975240156259618369446668051447638664144291443635726515635926233321392227844644278423837076722301187340928842310705395211451784886825314882408438239241264416090144236413763765941449907998608784601511441663972615506089059484446915214778337150931083552188493374042334908949012956098124910650783170324103845481532556251466974310277800306427071332285050431721877910438953385027309501539573576545756883573808843901439750312811131114571559027040075028155077619423664686307135975291393160845932884629965244389068029141014325986731484660602443326934078136058067664799666514546029931459153950657052053077815511362994392804295456781878913505045080968318267557872598952994407281721846693036938241633929668231188618977858524756611502530948434433887830673288275080571746464786629507151606962098673930084795342222602679801899921275106288225113457641753439851385671862473379383089073227760486932329976582226900525897883521687506710846785706397893307813287534485006163996328404320631527449623783677020411702576826239598806650932719347761793314749421641300545302486019212524175917839800966209257885118543773332253081972760842294276936333377708271166948749003927461084835172883163882243264716501715184637441821800386966663504201230901498774282307616727417231653114370145846623928726010967992834054799770566615667437310774319274444307211986041334171487041369304687720096908672975789709310850995039540435869747560549674090587945183893949805678848331751064153257544984949854636502347330266764809302400170309990362746300955886897634738630608872558157659814567192367656232025298626747977107420542581584234817026679620020914189597593096980615600719926365523126316831828304134083822923356396846391627845731633706565170024962775390164177033124587349614910405839078019290382379912357455925581508150425802984467860686646827019560400234291478244151908949335625862688935265735084084338335572441393841534205038472334852296817893625490335496965335476165110934279060277733154305248765410067194293326612098336613413207215669535607019357373812619622062579867094265702906815681073068428911413761175745764538009469218559926792990578488130315929094636334228716327535404111893348639069078937060647152998791219271866191334994643518268455650967892487074164046194567211659588158721067321245375456327280518762908703401058148271744333179870347657309876118284728352250045189740486844446747235296176312774250364526095733177770114454571221561766857280479636597445220547481966888395668220371908000912559846228867883409288094214593361246398566685411079140444684266711032843941938104989583250646678005440922820723033914704352615062966041220650771277808977666218764249990149725545595519222994180141672420403802781122252279243938871228434494095862214414167503427778244600896115969351243429037923994919052916863656863738573514916848338488581871680212559257208481754672854185548825117467290540626054893121022209832540972466994141070201656868687880972095801386102353218552727303423906527134641053941765716133841920738085166685189714187337068929310209575908629741180130267245688529974040341939727052730190843743384931993403927263614500540756035774235119219723275235136639334569657925627691321503336939249594182908064683524226484680308584428730199937863467112322441655437032079951630605997102732751011377971559015009698394753716727775323586576891745438433290778279823443705301653015822835288561929953475795151375503484088194498271989966437352999881446289421070778734980790190358841481662220324836885426115074647450670958091409065285969618786811416809254237182535504809445323138796201769391347014946884280700441439577498055753705832399814220883376887329535307541744688722385107883179804470961839845258305896458712314735606465326265561530390658568089764815542704643532444064136720577158009557249470427431303150895695142302948646859861929351924987884700004722252035822042405639908218139612940007047446799562208377262969082872125351813117816530264281311740797353098923872198613981917347613203687183702144103067796898863740677762297821799873615482706607651781047858262614244494421735876849579695309788787009564088450261199580465202471236264732947482757407263670593658806205872602478755639172939161899915442758031011866182604995618403887870828516996998504554558188487233075637642320286275646988143232937572320412804877437610028220805384897058721192483037512640991295305331071303946177659542070477112714727698164814434521296331433668729478960991055678285463536227229297666024277012390329410582600398860349241753390302788869137921178239603919214584123342273876505127580338688093344035990596493444177147700148415959261024274215077292973074451324148519943087407285611456252394151730477038988578344132022157640368650057080350414702558044293344772589346295901235573675188264134262547958206692614203254056448069209049047162230736812930400400803726637744199722019237487734073063967100510903289915156245227873515082899418738749512996678722780652155755035922171891951227256025343137379901365144808563150964081101223795605114596881024268795649022895658586075161445474647608597037990083160441686071482216786178116418827765416011593859104882736859183205847672723654819590334125933574373452583020054573087210438855033939749116076176237956276657158761918609145996080096161794629603929223991504920794292072957669427525690322568120745362991775654659607460518711470425727223598449714661406144016114079467656381649003758442024444568364976696269088827784423360328780521447982781729629945318110368899408306083691549200440311972840440931920054260001869385693033834219853541587974459332846208233215654567310785254823510870478437542820175361194504359878059046251327514977755080380059340869996149330235272026854230596474734115006495494482067559810361041627879670947999065183425897856742668877038538136134904599701867178256483884597581858727256833707326602561520728042339169246873955003304520563998543566419523528639062646041164138611738604661867769681005242703869279544169790048782336702266401734207966351248877893224990964390106839225580140760999245129874245709945996459739140715831423587429890981499297542995986789974690136487394871846440950765475735268779913775572027402584056861074808819747515263853639666996866271977116203462310175645490201171370314954555195053463267829014717698025596148302369819746715031946702618710774396918357874365721753974043643345054823182471893872648350315601602261377488105546989384510349430616466446658017214399989281966363901312113075257436232486351407524307635068901467718342162254868296763101508815293436996208568091690776303241411469275765662810557695335692779101182969759833380032098808725264835496864046893012801913034850363175299804548450648032202406812262019792901695899464966350701737138567169547009956115848737331871047950511916608411103479155080260135501989493251007863862437144269375921999616900907549542659795082098530491683162618862569225173015275013974647792009776383582797270151903944590018144949217486493742794307848467316070786511587266727027746156350269095235886384931270184640981618429268040076708483274249979561634293796948105044001707316574164858769800310147065613380343775274935012373170290299220551378752178952460092575180265907183879631847144371867726434905926425896941650214884845961780773193862398309008723283547963503710607978478248341161563640274023159775863969968870621455552158986053583371863089931571571613584380591383554032602574325632322767205413345254311504146199159276657683510050938972112136551343893783184576401604117375283035899527045221904732892646828598280573703500722237382683796068519533549256751002982381925876244117542393153975577574109242253088065440201884382921917798880166408853643725762328537362640666014413857024922044955704418422713918124881325792174091020843911282239290475897900561254856580048518732859489482214465197112602731496796371037208400250913883893301874435813896219459134937609829524664360763513256369247097458339494206027686352991335018642048299763466092706290151220405983268292814205564371604427677195170949003291170818020904286088471621548612023778678647992228921002449080219800786574028515561616523089024110509150658001971257954544386401738253444255346373441432749435375079762632607520429674627124420356135151818285560230934817882385040733224098660839957039594198769080992301473740926250672810450862377978189268350809538215738700310376840117989949993637480742827805508493763968046522590787652042927661966556467244341105667295129864929658994015175705609215998838027378394527628104158823595361600539594095188131016174789134931542803047406465437012884247513906330896265362526641623015224739188484365508645365215124546529151502506948211842386465328876148750810148519866381147275891693763246625597252812142536565640035902181942318951916572290713325332779295414295962455737629037818609875087268661820193947005240313236903998988517354964312090083103742846240682843896729434805295698377097388946546199649030879299387460256118833071960767532233840593269321752084200033609341629740560947652902313265862371657276057639088022740945433829946549750671466045487462072979689691707992017955514545747720834175085780261560308698226225805684377947450597399682487666845521287149247214515185370178306018177877508932637371528874233069221807101361353605211050136714472506681072223335787197926946730330217006788900356292273639269117478185260646754140212376310667079644042868056631921102101306960866464669317511174184649277665488148508845103294324593325001527591126841596021655354004595403346044127085240697261616590189430783338543246126349529343279266296937224218897240135222469585524984355281269326349395302286470559647255478771030910397433598072741176999824444861861751093858311175947078244576425351030232782805761201015048764680186496404866327272031247204950439953220509183526172285060811665580812596605786677404083992883963981084448372818936395206950692952311491100158913124166645511218411007961289876470940134825783917662014555722706187836194483912025503930183605761190693686376199406153166047795493408874644852383330960436087575305429735181411782916801629388365225446436382333221106455157091637984042157433194060075492769454775818708045653703389019935050173278215513599981879962488912203074325571633260523578865646251714157342071630404621211421708210568974622270935339074796144486456994279567635484368418592442909250590712225719961232787869844274058816738004108585552615718745049579216830196598819111077363708897920105620651548103251270050448086642148007694302641710991932703774303909992067987954499727981919366144144340613101771736209075479517735162341556735293587012222010712826059742591780614525322329164027279914608936852738428016740468986339287402168625121089232934620433531674533932813537072135451219695274659871144085118985719426200361421784347019635627008529542970599919549414170721293844018729433012428626169333661681915013954171644166860374617025331884012427912713024349698871098353595265248588692458680047380952154052612812161383863838946746500607427278619960535766303926475534739927519595246435079252394071963851783648024479523697196768573902549671860657436408882783458061810041938735172654794860209043783943445388154292671851146006007543076739401252736770109809440814599792901586179482266718996687987371470307905628671022100614225696697585211700068370461328019845970077732517941718331418872456504551708684670528445309548054873506383725548691097697199080748494721361559393229744694438633157886389986060755799713180691419871291850847252237160016521322056519613438120035795820745928173637639213085552494733276552215038544968353405209909301812634241672475368322224167206337604468522649630762978794985295528180981945943908831545149152883020570206560092269217506892984605327794947788950237092417038414522846645650732097171157086145162253630875650485416270148295706273446016320750848337150366947274675917321951670130592747385524445615793146160103432128573081436873481099610152071580635443017973702427885448771071729254304550067377460018899081045738955628627043144236676388631283841725787290716279511436779397559073769152991054984403641859005441781645406873414963109591496216748263477845290569376647400582164693448589078471298331308353681291445024253068235927072481224462540168585829883794688045018701296787368473931908168062259654832490256740221441757927293408383290998759419221028574739157623095277813191723809903490784363680755725325745934649192658719343318902877748924143288946341922426319546564919976020068117069917373306203056598762838557287790573599186388789698234954513074011361357252122375179739569947929285382453544497243713964104530578076616526400046947590359870216969309232125275824066208109493058639421997176683712098569737591871482966414495836684553205536746097040438542852454081552407055836483062637216166750528688293474598619679868543936974048888980129872509901966506637485889218642614653518410831026434902275842409137270862652305771029809454706344061498079689270662308933588391474365215145565519834471574422159654817354310553362503395319487423748402207823809812133506796087425554132558785458656413983681960600439587861760533663507286096830539116624283348266071671415075253682348728291432145631689868792010979230841893926188918921369385876711597306923879182421333994813042651744194669456339604509857374201371285298460666782160080134082199372436148648447172590386432799322737227750373416105812575804464834092275998181946803846545466186770520362091469051680375216005297943392391609116278876713474262475037631022278637847460286491249233532612385407318751783625064173987784904401488696285489181480996582871376457293624112987902456236531907591122680976827609965180814422425654418091393193935426156934252143402931661691478078283882386993805061834402006226665625388919578250705349445611972597481229521673272627962483449524406068045453444600624454774694281333664980319214039729149844451769476757950999226072478296191044767818772304782395879491751543849392433410824135820548308119915909045589241273569067375428108174378497054555572963395722036007010827140647773814385502557802826118764574159802270351124920879877665901579010280281620616210107357884028151212844539664968456636893408269216011090799560606889370540347533643717643002223765285187820522862868310579448237749369554744362285750896381681480401959946777671033592847427424867072507501354837243979849523248283326920527956446017107426840344712839979304854462054426312499224420406672683873346749345848355460859198235122965547358283843339648626215971276424720923890062565665414894012198064796257837962247817766307610879917414445938913958190586547508617033868435647803830426607666368139516889363023597645423053654067314769622028624684754816566815713619576122545779837440992903823696393559243789554961606592961431722853006589989216567715016439672721001585967392021143797353712218878136035611137547660940239129443368005117713936648275891346883347453217807515823082994301752540463852452324942252072509078530004575780455355245700748493159512610362510294294548134024550675585312438289242347426369033817963507142957262073342649710412207217650616555700782059425525896753689151757276487826582000525743272314326121744378460232888969951592410008382219786433637875072767813752507104656568176700857206270536304442518829046701259782170160438101227892552647662281182578924833524445857068367200630842396186197350529997696994607538520487306711868644025883436342957637860104375637956732778566376962055971768641742890342814669692143165281366820016518602451596565512380942529603921598499871325230344630507587943032281693822951576781212066778887681307764725426169790092432904703408626348388795461973329676889702148314728835572757922275123823650686712511580477577152018047513461273444955195737293820986900233907822634717277252846894976036214046621550499850047644332189514910058937436230424009546755372196962239440710026199975067073839971575100427041887406290706692099484699401177515151940165513535656728589966484434243126375929434080570045474913304714040817611699611201471429884550966302215270555517294583132139727643444735700225982487063872997668809352317883920847144800405912273952016709277269730858311416255616846349579704577207682480978418721116862500322132762215986140105384378851688666191300666270258559878959789350234576632898149393677475202308076706107039319768450147707738086138456802297169412266592871533419395881740951475167375192575117636491883750952767179101497701713998974990864741958523110986397645106892247007413092003048362365286306746994465504065532480595641036665643520094182410994117001273119001033022647326950373300855703080499952403380406187428037932421929032782206967026557371793606380271095117604280812096175436893928929830779266022426725533528144059098855643262498872517923573326876597390741912512201560247470848722523829953204310987446692316952671490435476606768143635214550395567957283750086383876871441628779190800923697250832033118575381286455765572534067869502893160985104727481452643508486180262050183732899461673432262639462345638945344790319712704909525008641503499962553360736665345542161515985087833128402506958961766253646472448501314728353528371812141692020048937860648532487135054949866425836196247928552596337491176531316885630773649969561553963549117302975272682158599068071746329199341842885554057998110468966814843672563777091409085685160093626518883840214459919869016518841299668428715337457050042590838248343656235336735453586937558942506644257491515033033829142195092715485772867237067125827532284159117574290854605713741976006440971058446035702441413574164895336055009339096510496960025684215555725734933852820453824827859250318860647122096462927539072288224823784944445128159691062375492833540851533481052137474353477610096109471608715708006777596310805009590787391666481508498609534156577118257758129396366879985733936202782747377490870494198516993466068348895128476918320504623208398491288101623814958590652087412456042143121566790939867960811054878200376144628286613764315998118195680911698229614329383573464454108986570264840829479384173724603424452881978725216507298861176213717170651135601958713422499303132477329973460863983197438042121676102381461159919912835531007685824175671210487688344358946361980331900629953863821444591658446029810496089211710486455687658400566838777020559336851399234691668312065977333825695769161373828567891824075735235927348412763256796579758123479303097440004171080506107744556106767460812237284901951204721955951686190310391295605623279015596653724447156547200063462291793228907902585338441996220490664681396449729743382507795051043880075209897989043223915457541064725457153993619913019657638992186815337564790579620658399169951418152818258404285468208315568872215405688009391810620277058947848506770341085162269825948199719660704806972519344500900143290828921866315287285287981319390053508683762449706229363149311110444501064313752156232225416793979544692434903297724944243098567316817076642223038025402297658324245291412576556818276986819894317725574092096708271053439176041989487818121185714239929814257186870070289827806711910470664835191000831558453900873811698416767211825745621177386359922360524334236745340485305697703395239586433726662169577383918527893904059089257236152401507161190464442780008994584282383098942827854110808547207046131213080084721447537606460810891851906811987547942301985610890143830306503222049876671908441502329591346434858654653090173591853339908254937796470402669244125497256207495977810090995824990602978724955905985612729380525935556413798684049471652897795342304471217296868319984150824737407654264912257051575809328872673722467062045193185498948547267130441792752149892746536512616636332544683820610500768461124453328341869160250465667905885029857422370246277331725447362547770200037373863346374714709988189061469642254498004778323356538274235639037263725197204080872200211065589582089322851638040045513396307090769235904606002405587427158892282150922995771727817023032057922511701230614540319875944678897203863763963832870592750825509690246525694923632168518942099793816321338445570008265997427114034692008100877150388738597858198782594478510766299408545024907712839476152594253803383521681155943755222080404632757210406580039369440598113294051696163724177855765459869097427924857526165938751536671138584973230417886401307356629526814604137574506678526941891296032563691063026675907046571642998399313335777811091340369394806800491935466634171364981777844826029872903477704975571105173664802833003864128581047834674141943442130940817213447762955486853191088249555967298895035404529491704170223035906001357385318600029295738440741498600075890447833701362293927707667383063282820685419971306658479039881987485631846673064320978935926244945318642047605089876426567391998417048807815479672069964945692992499499705915327438803586998484793933942512825976889105680489627925774924219230854827636827204194814127974855759919946121656117857624498068119571667705340651544709065751657730942337399392435696853448951438041188193930686838995847578911481409706803517489384203081928947215246347234645994716644216693125774882444383344860170718546858846433508822003563915363960492148933014124985323483329593969323196291718325294578701127849368055589081795106790365074201131231971589790779236472940351480496577554170640944605879493455460362014924754759756903733983544782164228521951999806420685560659166410192575130059691282849786870854873947650604369160869724045401546524830295223083586077690108740136398850898078002355077958326723371747264419911626245235386527955226319840963999781649237492369324042383904812720080764706468053317140337708267272545850036485541278119979369991281041367015427033344386868398575838391927109424700256867800184471607453143092620574432699155494870147668480463232442669631853841129559288979671333181646105862854294855919984353331685590469904138756114208246525921225112176424513212783896628045889177137433972243601289730842795484378942297584616777928081380386736269999863876809771548499317520572064436427119851208594963900233644362521945577350049876799057832878221188904884549136149065958051103115236970385186349185235377133742968290063760969193968906589114269111204416089148797719020702037846026403194377881160226429585291295415535965407272389323835585069323031965084944652471279256270066328665261747854925906046830588465445218057847680944547441989721514372307220298201458168163312618934479309260903620696003970792960493260802542317634879035223564605365309373809059584530754582475812251477270663663971399612102889178373075372251358341174012499096664621426217124789606585939224778066682424786178490767657852485986825562856134000342188795021062952405798893640284529336021961118794430830292749868421579221899810892393911485817903178650797860572468269496316529469516029594967474251755897926261716454858811642999183966150418330501205082999144939043114943414343899609365864359370316003805629114048074460583517709988837997086903590410639192965747997037449248891222793580534221698419884512286006122758528227212464341923204608248273073915278960103161646511256715619540877793581085801808027433339158231407689887403219639525876481648102383731175064808267834993618051897692747187614466432688516254288736399049654942939960175409513585500556747998641926533275363116570345080378999410628181946263909161830886650799933900767932651871647608973443984950096513854209572258039124657203473613177464700944091281949691338971438024931297539113151620331422670253542049217448905534944203001047742779567089740355629228215411521896958166086899670573017350228548865387867312143178669141482831345243733461067649775609722514985178355553237107701944959543238342967221374282908831980699120476683502834067046969228008656901583008031094595891296634072599929038821790624216226230359422050340382964406734037994712447983530428929486078668800244901963792005319459787048040236464319341622527467895495020297115831427786194707161432268392202807331406128428114213794446012000094097184120839386308356315265767633596913333912721834322018944236728108085595492162528892648897702669942040954995353818726765603463918490432978813979862189737255255322858158310683867890422523929577332669922082179994666313211634393378285003133661114663463592663487699329241093072644818534565467576276640162223570579549953451746464004810028506988955189009395828747280068446230164608001257301169849479969507569686467338516905708975420889036763066576214854387971972417909892919873835447221935826350870677815547911291983471811243947501545556152276435016308611276329660705807876462781067050718370161068866204275408963270867635481760471585328960438660889815647662472452436263704705170660302244837328893970555025552953483707858614431257931696912908281777757925696454385023952389430190178406791263822581051457655648137599667007653412409860943049217853636634519805353082954466698118117724297516417461706504331277875683887777346245366379005052719202194138069890341836276768954316711505791724037994895995454181775250525895970909516588666723120231047120958321050035057960706524264349968156030534498855111658760917780138995852925184050862438023155980606061103224594756014835824846247699761664503261922162095139261136754926757839844510548594145658432198213306231736752779210898614367433301189088340164896553538242095873922906159477755079424774477783959064425298750545977979190150851552902924234575177729174238495347988233768377424284627985600678773142243933375917271570733750090307762662335189879156869590088009250272527197779443520394823366585467336085666925505743022654265404150613306063566810503248233652525490551307573810152152038903552035299657248194434335787097697307613132656881662801052603039677550286044327167631784587677829255571950177185077760801990285230518536423669572480609344987737109376217922817085603539927561523318554414549077713594252640432784296663216447294130933178251148697305636280764529891710199258054175737244898606344835720027769797082563921814960488940536264136129782075849345159592335138364702331776612957526539950427912863999259938897475493370264679828231267523551370951459195211442871798717722792377774828675864481520363322773184385487787238804777290562786258197365295035693518642233764137860042587498897080456552097722545229240988154699082472183178331190494655630769747590393802262778473879661636664205219749194366524484678444443811112144124767346770394991024968227823422292487887028210237610822899802244620246029223627624646825503637879014081509867067017412171377142250025057777930958056319158985153062540188398890887989077870751236675441429021377168840744217230863461005608314905024145227241369481764284153876746224373641331959272589707054012413267705661477166967085281710402913342420022209260159652980873067156390275623688454654044812323984502154039127516924725402124006527931726878381916236702047668698761401462369898603468210687458545135220454912566430655621435681117204982272764402173395939892908773270889301230055102634540384015893372371502236520948354824245044917440715884565466124111492482417265166720375156769193081990608253657731042174426184624411588424929580014464444369841798511493558415763391131308927540492314722821032781306645314382389380632971791190173116096208525206427576327840678846109652836879545394811763067284369560472129927055845092707171589951789612712903621489880021055382915112335972190407135907294045181280842580874521335887519013433421830813425751423568508999600987761288564054217022515657543212202367562010176204270008226317804447852096861783035212937277019728205444276573508340066422290154219330241939520534277935879463276049726138072601572244918539587490312141454221948401268433371508813963735444113560974532032499456286055383552061173493700813694955312832742090919238516891558864572179619526829830869932104657146771300278971999531782732160049079280007566021386772468696397343731093499462610463018047731339496542864590255731258368479059866008020291388939948800645484015866574289636377069269356006804050223488909313575724647226045364659882756649597450381636701891015445887660910145982770899127478106425584106873080048540716008801762647885828392636032703017607742234163029995301975296997503561517323003611515852592988407143922560879160888208916658810831427155420639752456116377211099859461191171871990650256968730178378773588614821246484604484031760123083494379184847979583523693756806844464532065607445284329064950067471366415236110000976477741773917340626898746597633841210923726364456816134964415196702071373762736056779334497786155334958590743378199014209800626708647373288065823608077701294885699877401326384266648293115816580756730038023315567608615042331089081279479448619070768777798087077407632016289872277007639885600512357957156575088619654946316543196048751585778224021709466946308329579462599765178765019382103859312659434840812924082428953516545765679769751503548287467083000254685784323297749275848840516934530972094630995441102994075385196293963542865098325125223348877860225015922847154819855397564676817034605851013217844367467737055615600829148556583727523224618073608162773117384157155987633730441190846786614789336596993098776997944556584234209052862938189819067649717795504739181995326691693400155280026726339347813936400726962217141271532845221225602486271104417426740235490861077795947636842572180358546157846196026274764065888517140664002972878494577531299377957622900981616497370906241830845685411063129570476367281364655421158080532173082142603425974651452635820635847517855415803266212967803241768598615759678046466299822011877505084792310288745052652946119267313478058931216685547754378038492304696290872829007686908559144241786085359775029267331350918341440234076010706827328987433200842699150314495517529482680240676312406185762771815394576069199689806996203429557785356415387335333107992313145488198953034797912474634513075452432736750294026755642551435342236162665120214606819140132757394520892842710327367700522147246857415682253905376749100841540050175152795770598902975040977157760040141257553013778557262143160831791820387875298367580020234989465539867710958818191577520041596051489031356823266465374193270359154965244290768643890235745140992763882777698792430530637822603790845432527701486749019064971565949754444678436437434007806402821121183163998686662174254539059445682137253037644693629196930793060894805638238654688726827396578181416608315533810703448961412986538451219943686054046555218197979541924316143557174730723609995841618325647446046294082000245419622623370190138888302755780820132842192653933633967502546429357876761026390051054220484749125508641999436942255056110309457240786480543794352814407169523427827167250969220155772972033500064936586106284562491299917367630526898258161079194843089176917378481066273366704399228454090251128918542925959205467832790089206529765646874205185130922429493180046714940085152657511451173927125405878077322948632601351322608758207707868739983447384440616728092932558000287629793465475373849766253053510698760823921770334592583434542523612010896084818609492252499299244294985972836556898303247066350550424944298632467105827321188582950508238113627289895763976180434132395134377864406767140870076014749288025230944746655133665847619312447732429540323074863021552174706147755757779369454485221252432613480489435839472895206228759133548966657807485343989230480110006058498420258951292264243007021877971672592826194913422574723450843494376935379093071231317937067357286714219538254911696215751672752507269598287606017402649931043501378381869992506150769154539966341319835594453047001117135797822269311048949325597837643589745375350271130733216877859577711993186504712393966491016741645098363257314548066005295475061168237311220973620890954567126655419686518896991249107978786823021023307316336855150749764709409551694690186974934785987050750312815961945292820750738235745653232248120859481523219290940281884120973782351752608533597415273767804030238089420241095822830918826444855782083100464896312994268030141814046120700316902482109254965265429014215156488122312509330201372214804558791766925654727801527944252857783645111396908690743308284030153375561045600358855331477701388516635470216181032605642717904620561039025898893898615861945643465009190285030053654355769187578171541398679640579663871321486637902862476933916830330351481151864901991316860313716329242016905539265921336965955984184228578528821801672881120971919620854959326893429389861582006116164372484522262755631347778009620148326274907253530681603262545347414645468306163084628198928305546210325242411548881718681746295240602932165416673848478629623300523633952586032209030519524907369191652444285322824898044633843986849933911682026504403189878709290518880662154087193533255915817282911498544249950799406052566231192145666653290983754404251688104942314050001262284429987650033710145335964326793773831770325894614297939564594880233995026064251490281741690495554579385943870323377029798832325022126792657307454232504848975191150114033910290712829259945642904176959928431902133772011821378656300921476538080609153405665444226351759089630664311009273263563190422955542396873524890466255535271421733119151025298989375266817842275256243261789788827567091088218185930847568590287481697050786542833336808376277010623796244064110275347503695478805123737800427495832418845599576392880783584757264804056217281041428409787801935190588530713308499183494024588967412307651568757664618594410193447679123170683918675067390824299975335879626944120689123913043585897476140192198131940750938610823952815659151920344143188082147565887495706168487636235243653251705006152499410044217877920614301106771185225386611871447946717190605349799869139571450873734702492857786543021940631307983242704926111503780583059985106079164165384075140874972560916499180459650559423490638275682404763416517225616941706272429554318664477561788912585754301235642362986438895350459527198913836041745838315303738238081787306088089443060733247348691822337232207066055884828936402093517717503461420406112961234112673691473321516509290525079658922622202447368955141197997830856480550557270950795405130848114824995681053057635067343524814706210732849031488791856448754442891995734976260335764228702560915261234079099673586584317073054250837377227479276913250034250090652723980729237420937505364743194655128565740082511869752607576212146561977939079565374843581196685820646916548571267765845339094764357347710765697020382690911167632787190811622324340431648101082811859749276971997438110374263272887708890602679356342554035408588501130895150207797761162749879634508348086672161623768860873268412221050911555630410766784220018608430851155608167540857649778983743196284660857517794016889217190479426866585336169036925647764572431350674148315920430017356918880835345376805820750385894786055398463111608324193614722217938610840003666155254237017068336640843782446653574844233703314329048471973407946696613858542434088793651232539240445242719397778464996620218921044778968888117563785244989902844657945310882995573234647129299048098584503948384908954879328693030922668867744617441680565151569122205871550674455614318286433760665512696333789652249975532378269176675587232675352116646060761299875213537252123779259476850359324196215922698476510121766740416955246912123915314469856772925126930798930323244049173716776004333766413588947839325207960813130181385504124277329983183374275167266976713902494284765619577608479535024485952536315560433217843075996030694391377892723112878594310576398733535853549324068822196201433660900846260892104499911179479951695368212400447296625923617179974272391212572472236529997444240112069312387460693485285062530920534539048335493857873745031222441868929175260244654783526271864460768089525913245721368550015875281822920588822694615561328592096570940391812689767310919871152168938413816608141002579942658959793593227534443370463971102578013001987505057802520845558878103822421906387244024106320435081711569484525131164101838419373615289770832817375216205220955475386793746874899768864409063302243856004198690063547102898865998559383247659289884661719349740135568929317036907663009329277988326208356439047009096168094477546406378453107444606319047538212737354369176033788244652678956349027618613947674477675866891789924209939097222228140028188966013089213992375282131674080116407726868153036629595281798323867964614899221684857089959425710394427801703718980272577355357642319680979213816434104754253139415277888025512123756406917633538034410073027669578056996205212731061831726544611053552023604726941671281610895504175552157027260419288554218197794355055196718243673487329158526302471182883818417162143404577831333172627057754977959569624919956204699313474406050548699022307057607476570835052227127698156983349771181287983551982576877774499714318489622147349558131138086310471930008516054684967872585111872034094319916574828008456114068282135857378104447603949448236805163542865707559220065928575695697117052704979855327009012272573769077021756631799521220453768479367010813759635184757082847942107386931629242852877071830473178172680852136575807757451060847395644048411741801465745535151640156407896324975336444762952396437336591595731189044661213277763160249928323515072205116665701732501911206981559142273684066398869185626693176776698731160400026274125241016558083255163516844842674530819395615312070042398628067753478544661418243447674255226682808813251703305450466812187949042757064915595402880728688922267165607873765974747156768133664641031039232463696499458166223160259912997903478237861693031257843279364061509201742210320399781283565859315564780448360953967704410720447005046990176706601337680384502794191560191723260320139592542338984001984590597266342851674809561953083750626718132550690459207011733241050170600458579737368982241898769390284801756750878790304887986413927915163266328480718132846136294572691023957696815105282113196220033309830259671154269438568384427168106930557303922557526740459461749694273581192435553677589890724197870505804819910909924739953066763188286588746197946417422205651198884435455610299098165108640119665627491193275265595665752554478479605807745873069348334466994398515368207840712865570406926295839343606312113332886964562496272373247351444762819157876920131996776806062603939047103806666333941899913039916881268427342229545590584575168872083033076869505253457194589714089959966214998239457276346479479332723132314811439048568649551374850414767190221568571785238718714598786854051822024838634269686509009366714694982880722312142791252952431528394022302050069021074305737865457922571790415786729562424159027621462806531506171892565929293194796065433449155609818764684393784043429089524477758363089852158719430064367212801658107185013313099177585172280615052041858533752055750226271799113336929061514529370080575989850365258819765863530307086833480743195942604245667312343172271207483419957305076156245090416770163039049567001573599490015351766310159297587773006648851825118982624053121621187829049447281872981379365612043981118261191454201586498362753182143586105480308685157067735332490013426926998230956236824846057991533679370961219519641887819685868121203865150338660394029395832769496075174775109033508298244817847099671652224035156090173175275037265787637625439451286655420708572904946191125881900860682342900329946240990985859569923040067068778124688749667685877292574787905707504762750671521452644376914143285918212995818802405375735217829063979203979758551799558996885143175312415278479787066161834991578209241173017999307593201766628817474264453175550867432195387054023208129326249793639341973482605415167139718879149475126012015549962380562762839211834349242407542756276041857429943268209199266167968286619723655841491172340328631494720245043250352785808018106179086196057643463497305571568375076808219335151034767501283122934396345385509074553620931298768937225238082240989294094049707738814716517892770332998061219388178686323123526337602024946342487153825748718796618539507152154282274148768657592397854179186803888941759086316493716903969471609214101309950881138553910614428657484278894336101165102942599927312530292025055721527893742265112648592606514029700729771128481666035466308896653364893557049232553014632545093334984927274201129184484958762875615289124948189889570770504295892126285326344462301766410118221781562955382767267409843314682943187454518825755931293776818449895673590001513186926424839870384614983170072432318533238196515275359811353217156068172359709468818321613410652681530260875080440984102173715277838304776640696774712456039429215127112147855418032406330377941504684573244987907692325881501886714175875671158888959486637140753013165259975499552445503027814482113069954727276402775771186549549716655615238549793849967586509389155106450427388334542381398392927409000692501661998124887930783844578497676158868232016694776695331303503033673288877746097300659353873680999920277336198902442808793059644626208744461060839395676728979236636841993167965803751458148163379401912420254435662421828132330720027058777895981578178112566801548762143712538627830411480893791310762314596436168501878765096254554495940508742999586511515726918494412137539663822922717126550758764700266234069253843697843491424225468489605793193001492209860796478183403184533994533999570916560450036357703322985985439627147662086480386873456126506306320943655341045905188996783591859679191223111100837764903412355855412056060502917300682671893721588745076189132296043726110433796515751548903016058335762977797064288011928765159309238304688508013710990157000711324221794311942056778327818984706010940231583915838124421512474405095787905425671237383970358849094845069127950363938882290183746237425487941489865320877841574974834957030360497771418428866654798925535850578480298169564591008738841863646809790155818445493506974383157295418030742925877557583293159316189778125709909455284320104981074713319755154445876643455950250489760889198976696549379938663608043060441690452184723786732637530481387234065821940758950131557411440289641150525128250522408649534076791040573758819794778379467916958672310776311340807449072795473877830833086559526991351492839501502127125136641675936383246330952676794943674965646718694737696075615602449145518808770104609250650601206850856934080165522745471493757110940553199349444347482503797714606344425882855437900131467324629179616962362405655920731957917714026111826745103298586152172765175025480138052717809557866482267159713215767217938980784244593124938537721723142815785997254562759419806040103389327804131970476255233596921966582219490420965056850521856220824981068762701038467200064493006716150427715495024308487015599786723063455630545872761104049311550495992750911974931917926580819557287123731948418952954943093793376290765299575901239653858475167774479971536586178695816910297848277472114582909118350979763266261684425444142051630971954699219080751092587891949287044484171459900673754734531590647488218623273587569336849417762127986742414535016577783258009707278269255630819232324169312675273027564792734138499905429304689945336252843781904120700438050855334684854301207031525214357483085332341847851302174188282926589493498966723873530829721512258233040099147839132473056864506330428902732078790173336609073147571396078336273237547809207653866428064784598258219971156224197934070909238810830225020483867333576175849368885489723887078255546023438459255309724706852109560636289293180514650924554227160960105682623463388091577702901641907102143915436349123941860562005811717365036179911637026679414176383386784105852595891986133059588432737967271619615290838962867097505828085886514069115877391615667706578866080103300882437206518035394790778722133068235942928140932772549468657405777065835249846863429742053825260714515505721897573155955008800707099401910793409241965499773062486062769817334485447827068909283269154846776568490807025816280210635530783077784020308114672821742081398365459888327833917876335502233299627254868750347407796142802442840879592092721351945827963661402695557707685176567316588624688226322758580299441139113085048709360488644764971234205682666087782401775391327118502740072796207485010843029955882565819987325385775592755928461081065559103260962495796411047961959033788266662636967027040828792477082003601379746488292980702194773809012803071942912612465740748450983669788285299000655042743591945065379813575000835594477913146007310896468138353805329869431892487981328352216467926811649713986036062151660904461614000935426488503369483175051290055853497742591295110792298204547233685106153798382730322510521371376746568046019475538819982064217942809808657914970938449219167517333887911949748547427943397174639296585917098136916162373524690007522870748667317740515214531267431181182232524345168608008825901309866626062817775108914708198574187709303573279322265738149872445783919310278551548583902725545461348496478808822162979258349802876464510010494028090513616607288327840980922160768815046601988329458300397209714195599226481758390152187892755450142309035386151881164666329817685887586340967660261739971843732932414836110501394852426381943263118281886999014881054555039706587391977188037444419574458082493887253214075304691624057667744417870097562541226276309060698759674937311746451874202981779253406052917640023276551018702833160032108107657636716839145038613363157952282899935779282342775342162823934096714301982167340357984563653999419849483489872089614867187907345923667460562207751703381777449613273062611506479866752933194153030500694937322377440210114493934103118391824415327646801482276129861617991639550306508229615328550036151948379943578214998209167972524590344621730615339388232514176173443691325329863431886258641026225194340367889895308159316097316707276215861339633125708107326321308592177630925258146850080872237632848793124595850461140836915706616136983718771623341109475548138799113682272474147323687108077322376973071627890511485253816215871695276704889858180736107461360447555213370510402605114798592575713204375937579655543691071362543084902111662793605007936944267790166385169490534066088486325946513389717580135638600783921011852584813383679726689743227963644450109454444663733377769153511821416813247479955296105092370489917347387206014257606387954115245724905460807535973589702596869587451170755796898064787138354276255808317820052965004508343215960440911488476150166777043271066192939295497876586251998308013197937137867444559202252107396884617005941515333621531211791917925880697945413040887396618442438866881090847241075557472015952225806999807578809770861827831536426531356750366243377818849179347674608622137315696448083391160847741822466891312653759188167202792097325705616001415250151486084904510175011804608358129330430752367808245782904370121017672042197353709951994580564792305221297344905045318693692804762152729333839187794534881390271200307417642138533973812351192791220975381493976234266123707138788503597940018092910993117144938998589476713821484672979478721947085659929493257782636511273128251224449390873556630359873406603744334015295747997502867017995453129817196254568068780171703511283691233686051164873841840998592852476747867411626864490935585715704396495987965663050043209405241303961841804745382600677580611779825768618670699002879890807192065255840766556748375490105826694944820461296576523325198748141599147346779010739365800711515619151432022305386609419509408579961148417716038433117493239323136974599435968895258492639461989329650306528558107967663183381203059353646688464586334179082474746841117463907074731283933360907391636297679674727927396087737653501859790119629015416268253612766373303473588270596499331621956162945205410197536585060283413253448196470508541660044368338476529534573135845158616701900576408624941165140535715157671864223788378802819905872325448464554842320244299349157021701400994733302908958807159969672817516356718246583752903789502763717589315052654989517192910555074923518327952743217405241377952866761347141329061222148884975033903589133793066954547780108371003992178440253638599225017260916981977505976719610369182651686765714556299207825543495641552670817065013802498906080449760292270746672876776269700725148207520232786060577795197856870408530815293790245920271462687613847595377517814994937122023626929848975625632747865689635505206600612204525575363643540239244429053550566518750032705817231972218746062709954751733424781622342554871538727521256117763448067884682850721613215531604896198673824564524683733142680542574768514217456982791840606834377587508155168176383613332848986792749359598195664059686502999765757312237799058582031981118062440309452326923125051849165348515984851476923670680117832891470190788399121027895854949383245600920890898497967060272706848214923962662332630745503973056664568019460316193793509345702230727325190314009036986208190318703816371416172278686105303544905077128686411721628047792185768371851883719843708919855765420730825260672521558737394844889549861197592785805695047490506710347729849937171460697088810788525324062878198077771488027898901890840537003413016463630455368390140176493738947984098222177466891964836469917196635361371426561470380226380942240725945170206731473494127751169350822394432262435113745068391326523630847499750191651957943379096796300195357228615131907313553123538441629087146982114316100017072134514503396899953746690112625361956035020417596600486142611399575751857206099398419535572123713924978194603862839284396826283681726965024249440108495186917488898650212750729477405738989811137141090779631665591380691076259741614925100863666279655050041435502567597477386845448565041983578646235706075523791168081277369441607718472695475676588003902539651036593555676565349834665404078989331948312325031811743805632971765773239186591209924283508647075984287693790850436987994475834110625666187124325360443401372590778418810101492519120333877545494899786905424803067892803652754288218667529701528640518087909776578274066083173007695141038160003734688349363462608069425096006237325343932966596874468391865395020030690387520762342675321886831606144537597195791567587973543490533423997133961576732731701930700101559440597054006342174513954949658317798000419086363126324008259073471045105842289038213210961487996182994233246746437795146144417238677515181980162192525473515370119274082595941145318666252967861081005542389171631403010519455708323894858954362759296328734256723097468755807919466812480602100645673437707309188955570167252970618657425194563267162307896054773448795117373192491650517509274650257467179944404328643056964174894534060348088873438793637275864224323534051084139256746572237097037537250217371552540527748554292527218665780531691295386210037547961776958297952896799085288603824973485957790076543756493544878690871821254354327512404267785206920079893184806991078084083946870892433148074286443862884332452179527895661302342537348253290779638723683168862945920047762666677291667532871851575372327208313450552835594291642389361622510399541441724018808489911580389316669941001551452337054964325987213562928556749167334233641059157781869764180946907630187687104545695194312562351254986917682782041903266182774878201639051146621169330445738635267314969182170355207964740842968815583777524043683232739365671661633951706096429053452936990556730324704563832154684299012925440034383853674144035354197586692427537699073569427678618253095900196023375320435250956970349331000163329524333921945075561322663723822428408579877441373142407056217745471564931041344635273745289630149153469675576851085485422271644541057289583623329059895954002810733332244589931814691284287095494866405126220641536025519820317112554451350942645712912101833747972792885770309437689722469898073181944739590811528176663459351919341643881925114929323987470831607745818563517315259315069060815965296885205859969510133438732950291909793765260098211864986931992111912450231871739612616675238768408728333691270641968877710843693644520597808054031389958300149528406500445061589687285612840953413518964467462108576447916322477049217529020138679873627433484436204255439239160857901436743403860984327136330759457229578031213001844106078111689427928571519516769924721877180496933613033384299048412666019226787676732105342929115931174665267679386821522208304482211455736027406930372574335516005970804648411230053951052504947832946845145749202895647553388216849628429827989064835835915074361463412996140419627532618524853431156048366425361483957366708698022728005172338425275850660087713132401572277722318906813735129338125569987668463436682554975512222738382570996485935614416121982991589576767653177512486581811627296121332331586011515473653899715990550788459826234436401242352258238215395465382727881614277899528559603644362368447314456256910310448654768080215380524451548366609416732493575382203200405777626531735389550636186309548927646730621292112715262109093021658307658278048392334523799243119311966386634887902720821418048066088954597346749515832201445438122711226835786570524609903918794452548426488610310759373044703100114325803878825109288588592233822658719777747729549541957248003793367725629042991938464157026552266785296634609698009096934115970323778861537748344602898772141829062641857887732448584640461885398627620741980386458995051264048285470495415614534763913534715709904630670411660833339143216558476417375825909991340822730856303152581651719061875826894098407687326862467147610030280076218963265123217886164072040280752857645550681622769648274454838852698157470899442974923857419282398578611252211883018087808041185964306241364998135786275037059838926731222609345137455433263679793807364168962885938369070299725618195643136206162972650771925051221414011375491413998399157432720945754117825483405682617218934566673183484740459160884572430746811944768186827325660471490055312602818653718545489251279157219637473955957758562500345461039643606537886191609731668645554235277043253793955113164749077122591848899349733214752495159095135528127243858782699902783761755723588457180587357485653241728669165207126570514347270512389918875257508713724250243048555256263658382503990388914508377315064200793552502669662764541715120775180978321551902819652294512932220010426719934447394088991594279060787985506581626836937852746755203750220401357414380969346370578328353419592587060071271177467542779437288582692378802997304897751938827217960904572401828688034968115721292383515287031531949753280522049148305142369854863033094797762327367183901386519655449036941514413696838997650676359863706976149655667908466423878843734805148834008641931230891486277802082256566007017065362361767861655583166283530536530558460864799829863216118077950149599392603044361627913990780743591239145891310824010197028028346046421829001593002944305362727626712715909806565164872713429521820050126267890253278968212511890369691161865644822074518886037847189188314620567042732699127473260170811523320218668311607075299602935214901328738424975600486207698885568252981498051315806324178573456111786041157348017541897251652093269693622287913666656255287141527923143836870353895159987961774021521679228557087156900052439843423363048154456455667557653422566011395094103208938643669314219724591865320553791586061494313401769932213632589326276349858458586223711493832053492239131085149596293176213920409447123503135840207838553491226231429386647072358086541387410503695220593092285017559016508318132431556451326282950212101422728983509134021672614096599345227559863624758521135096562529404958850235901373015373956662510387934209731842704394858250023993479138892192100792992455078507676424139379391782648585577049777605458236469753607352961031525704650662647003169166450915753548877076775373122321547990060836238307994950541215942785219165494980614112819086824110348293908660266631235854054232630582755069444120133264535550369911668917532309089383288025593412127581073130271631214062322323024119592946330331350958614163901857851952388240194980482001716907746989240454194527440157893482656262356731859126038644605301181465468873433018689074116680926463678392525410703842912146847776548017920821074408885610591923147648243877170021260983212849908743972218586829082010285054730237251447907275651832594583877080457417780110087989786541924644966735147614524831919406298590834677336380206406618229437816983445698435290461697837611260115483030400508291470156104180783719412523237513546530893991475015715089091875481456883382248486757442720732014396444038788160036328666990152900682083049096283944817340028965721312352858229889551904924150344002247261123482616336843278335664021948066438973372219683333581930784617927858184437545508510082394146567645116609767416266565320602413809013773585605317654364156374075741515078313766747014559785193497418790122493675235575667099588837066607401604037564694294677684957737642924964695537288244899210696692245542201789036457428713628958948429529734970985982890208071986323610922965308583451361777140983746423948252356404391962059315635998711848089548694450787351103086100433243700611233374722268279065746640586260881892776999855228058221048736854704550435961766081440534358379829558466716798572924052499201625526219013906339953581081822251629351841845577142531384723567844415346028284507219093315212878482932975694955090508453285424293888057543336563636141565986874792854590388446643493351601458307825235792218649871135887107928618455672982007410277532057684193903439541338985042102163432589435165136204183865183885830240194739521576065436781319868307488873054185884830296471194222996011519090730941503780910845868634416861102860072581265858762874947104071761754617909784017394085423460477358201215974373233969452628378386518496511339461457625600949052545965252102516862677637809198255682977655546316129722045549315780074380230008452502779409632744380209691912038946815504326747092927246066040762836270652658110232271011305064803728673025028898905347228622507107234995938360217736414033671899818057617888944610621715401481936303086597172587558670571578879050395653327374019890112557789159379453964315885626684211202157052832458636190842943347759005587912230833517202241861295001513890817980379873177604058906739681441396098639923238941568168503014346098295423151216707333450857701258317483194441893740245566870293129201100607205630498157084736048151528181974700733081170000822645922864321475493432430025239300228057245479803938123278484047695598719075192625985403135037601785736199460026595310198478237265741568144935329509218009169862148896230453952120074842905460249977135734834888611253563264007597898119529088528354335742727015472439415003798488315979421846057600974390649213728661722851446258838322167245945690619676060775578371675234513844315310005705316626531611841903694273964029443637126647909290143230473536310801572701780197741418913833203062000935479538023099959818009515086345574897770765527754381507835070178287301012715682404080338828724514504126517880119482147924847997232007816968466903113405162912831486142365140143347129812513471100443486552085206902669363576721042902017585633472769516569049172431003150281832020852101652362954639548578384399193278933770451482361281142076699752186385157759915997638827182877935322654536032422080259117777379546300495318955922370526266592586361269355349169774946202366221990188007035760733737665654309544459154159029373805002131710717667389501903838219319921785777627639963927662909739989083918647465807487807870260211962850007575194016303727521564464004120388878356759396139024419960756430977675278380030666864984181159906487393770664570178793440101090649422497081656971221273989941464296056261805691527320052943076081970052613733306056400500894218207195367255528307497060445176734642244771841460666373470670282790862786369355961602591646690348061924870644402995718682114444764514227710918358710576451349875641381298240041615948189589507023570848256384482172952991347748940933890813269740781750867394217460696037107648547602573485783523011733695072598048355138239277366101535085296398470551592523342471477686463880798590357484213109071243588154161910342739021070956237428521973659475241374657258715774867975314177468246005020097378179414375420150758049429963328789957436899117255981167024993766742741919811509126640704142123479676180236342722516137076918700802566188791972492443769081130633430508737302325815721780437790808949202397960378042881497836193824357790978161875580285662230032781862846647141330559269604495126661962413348532770345516252025662739503022019064298022694287189628472400496286032180351467310908243876652133406462649132982006849637734173047532668847789759801931020309748374181493492141382220104991027742553435622321647567025776442946547366879075297711770628101801812352250304549401572747390481647756971156181451590643393406374275611881697691272036516257320444497892609760095911105660123078394208460277935065125209713291820399491226617077381684175103118884560623835268014465547946895164407967835208483360216987539509739405859415230744036409198738016168262846881407504151224413392130023108679141481556300448540303521533462462956449598567753714439560762893479382382584217739269311931030898429240684850453244326374405837482943909310816151865317285378920450359163518119953146957906158092903296687371742311052793326606805195754106954176801969059206436886740114433496503779462753853510368207852377738963462964645783893897349742953442511928232398996144435585112989056937943163689815982639546187933034785853980413542728136016856228546755425343347437763651090397480605364757071000541348533223884564373403880209058282061270879600959326030397226472195326575353222353933075018805139577623600892128739816271145550029722004540102041252568209993698982184685605775272183060560732545876015668387889928104756380264091846745806773602343591853307409836744604295333468105705249876891028181736094029242690226379165412762652987268260723939873006200381994097698657640825491855139769576646177974779166841552989484031749789468236431834960449477998671252742075810139012858052338161197629604208405756147858793660231361773665355537259296530887671216080593284608440632213461407168936772581388301785678613920261431533132463338951935518426792141058072799074171727680895857033072043436090657993376917231546586272613086124099725959677556016948778715178651652679989464440471579740565859124910723315393087835221567786180457584974144478009416495842879076930841424950043091803017521295030010002226228909757406034958972781172519856776108222153086744612003366149522538323641717491431343655855280877115096164779261224071595272717840582036780354772200712206895998796798432040287114197147520996051372507995653063874593955335886973773648264787739651539872686448405619596505138928040707699475827100104434999373554433789999680279639037722495416435459728148942075554574241170736950620939378707350779303571002329592000994442738075479258068913462435481748507879289626620957482501805048439179376659697110385394366340300099554123617256734484696226872611628210107761522182333568735534926503901141618608810879822470070669598555781505851756300023392620014180042831352948758383641760674427695109118534670153285047090254948496210907887526819585420791133439869906058781095794688889887252273188812931648933425397457066679555819325950883159700295767694686065193224339657848589053855048859344353184328468351493998781134151525015099624514170077907724437373698881199650989484257452875543868562032364863399325238826957909839804416994968252230899127001561942156916391464817859246753530815406719499917796492901830610392033342358516685013637571984244498516062609575452150309857713623846838621214764517143916677261404547707704931071617542856843141511474296094160851952296159588170784357718081323620649107107835916800439478039280768216561546577904153323882459068592656026703743009589299128635973700983769519761115533796249535444255002630252889474396716132099584790573930854201262268201983152079911274571408090201465749537124963730173211654456178349041277164425866776287783219279263997500717656376780420671053317848327251116594622465209670216942088970863198183161046532134381054902041123570724351837996698572987952494230715993536994887063731358119566191535177698989153213015490439933831671471437900359547522568496102139655394714264449368237520016878204145545408671173480952874744349257079041647073095241192247855806447829399331521169759482494077251388862903186246200068890746219300441245348186489923219923910916181994283961335883071705911152161373082193738898212254821554962309704409544748292479622692548097446810361926687811928130827697814474147890296489448073844181506950691555104950950957896532378418662155051650056277371617952059988894655071679057300015236702513671397968250782552245469654882166962966603157375770372778588194800161189941651954370456942782909629336047406638318839384863205485243777173408804098496430920741005166533388832988306869070091749486536720800422481760862963385283762811086981026285637217799736860828510526406277192779549341683162785015420954358583833254311965889247429113685311729269749237796631942409189605442850076116224489462850694502207808373410111238600942553641308219820319493906315499805564344219571948433701254801533397980704662695242661143801435895658233152983050717990948783803200530368503672086829385456780677854855782056523538619768638011299130780742045007030658716130448873651167274640038733431110976981964212382090661082081663793804069877178054400271966899848739824578500369264974831359115147760533893668467445138828169978121158813621704891470216729364686787941861830056821874404280677969021537767286361563847116357999622663657634561532963180951459960496632008289434362836796972503415311105896947388076396237331317528408986964824370563745311183124274355823847657664818629120786324875907205236450135191558192475265510844282278252528562229065588193766614654501668112316760219107477856662587779074077595687072487959015451288739316448674223035159222697316713407935206549418283427393421601075797452602796967955830319128088013986209117156696019594397237812901729766383053268709647212989340330082657476817957906158832633308090070651399180824666944052397633352020529839863569447361729215902789940818184464386247539891048517177112430008830797887455450816386223907664340485522076490978066757513659657395372201703966633386539114663247055742263384529977016179250569403582297501884440538834721712324379678995028648058026549028060774001395630980521894482548248209415552594152245490095859408765373539407220003456420437160642233590618158434994891451072639808191406584260065147945015233373399872323871989849548277648184794539559842260543015693266064831084201180351730445841002479403229475829412296758131848155800568818424620887222374254176450028553292006254726413379181687828287419036533206326365574827235779252719856669240363946664731922877304882142706463802448269494481978826396635856753220873724689226320403738409526423745046402579902090326097679597372247888696064440734056534214336808918514945653729386788682132064334986438487673687853089926960596538913973492110215031661313627945016632913783116574661668955881048953913533789828149682180468868971119388368638982600839427523442881918024044895164358599428659971503806756573410724976001744234993394845695535765793781132532129416785121128305041559760867502679722561693398938412506819753419716612119919507859985483131041658682189821709267117528978175702252163801194840815200917411533813093179789628712941890162229483160098826909987606542355576247725667334344372895930790605185086177655742546707377630578103829768807906365936100442300312081795989169086451961822592024541339442291086194800784502846895758317317422699820188728743264200475004808117946227070954401725250145870124426952667016676112430175103058487257438013766700639859830847081679464872803030948257752686841088012894523825949750812456385113108858800955997746389076126355563533866592051960111673058848934182286807973044149611995513692641169028737951002559411465616192673678612609168043323481376722086240016725421074348169844944728285622470761478998626976570210519817241979404562786084958447996404672704507932400171480497112735713889577788186552233918069104825180734387773226443730854521069178979055933071381888216695319443613014602730186200916182903660133302702760209179643280890083962243979040724697334780039328043768036351011039525356559387611389873281293592258379996019050670876285825817073673976885844692403060535907879595666686624146448792715225528525271818043623978378921882514809268441120632709808003267881902014332025817133898229977029544685556935395239355775681028960351580432312115129707105499368628726090893119426143701527789636495530783918629023331651631145073833837114830027153959202665676488075200879322501940788366401531526053189390762848384971955347890004613697520920799212524754134170338066799631917422063978026615553709411981965255683131297326021174368543252222464649667529703796159849231251437078933919456881700167987173612209498799963273512090411746702010587797877964357594737603515099895536103740824458197238247994745584853139995547882743726725958213402452015653691465349774363300193553538761513681464183848957569436946015224039617384759593493403972909366817719942454752476276569656145513642609984812447003758758906502981145337627796171058152462702775186296846275214955524593469089552952546412510261797393076508039825392519152130322792603645015370747425259904114584939564638815264681884152701686254898971232359181442196800234534938877960244759979145446113747911379562100747357295132408617594549427236821821665658364701026013105961656782234246149489853152240261632709985543373767101173614809652263150746791237998847108658389370947310223664405340680532723478076514657701838269291086181529981918473200802444820703303219180321122544754800865680421687733385058368059413673815692915624873040154090149578828643362700782048569278727653754989653639646880916649183871638010804168767625320475395533769793953709891310913032047657398520525227270768633776892773290424433435251369636089096958109284823648292948603565152078094873610715888049592794623114257623696263104962961589238884452133263284521089289564586132986175689468366244044689072403099585406126070918243655981461488476117214810335549469085113683448664529080872000583533388139227059189989692524177496812410381812919739072778925057519012948566944616509523049317749080421776546208701349873560045553878389576143339082335185516500508623668514799982433000080256139857384198484367342481702661291861476299338738667260275693497517566840675800178060116567207577976565511461539868432262968703965052348185523572197745824278907663587261302704762935618273406800292961706959498941473127757522116005528588618925327002023152720919267729662960440474668600450482431325638553349372987500956979067014928727285028416219481127252370375303330302052270027117265026546309441110785700751717242349373056617671962299319283651824795420521362356114551053508140177557778999616609568045194425019867416917730583674353377183483311558624652366926712500969509931493065041927769211008024632415445324750158826336698903314264593157922095255757954370791512340403945723081240113394189363319278361438023563893628850535445033620863910956986801593000840086059837067434229734616209736906799811987910815888830233542373335741964740750786530916452223632542364882423687165505672232076937413747946190553377500734906297517238203173632732338968856513977298194188427379493794123631649555783290557409761600389444880075945008860938560507913590359411404196659478046337346649261627072399061709590124679632579714097995664148097278238888800840107803265671091502083740945015833893874883206725540237914622972061609600302414706308756229728181933113255225647946403634023787775362238572019469422410670449368962465253938617544871637288835520214456794003969252630979268570149420011101003065991506021911535695239053041546054686361968695097971907362569259015735580768082455700054588391861992692909821996865048372487544160963855289561879869034191703058902874863955910527906076746398162915146791848493859008117396361088205001025979515218533965328053184105309165291286509097974683047970872029015190713527349419148125864002674558242818406235834953647030186039359406656971963565634301050298572055990706857417853533434914693081454028514209418019858969942066479985435797528133943927171075733513299232515147878236471928709535885175093316501012972851098507112112638737722213354665294069836055084978187103838667725634308786505544767764851767376788338390656816246443916508768273666172077844656895706936401686029987749492876091413471743957229392489210814473050720179983347435873873677827644362496361568828014986451670026924474190433505333087743508194981197583374395234134030789952274220199032508753798320995076867287974802625716076343361643196435076079730109492643179859376554352682003093361702476077236311730402767665919305107390079836234344399114595552327036925536902047499876672000786520361142124351840109887604409915172033997892737046451808922867741363405865606799449484147721632567254068496593216496113344944611530023579953451887616338089104608857726721956608296020639003817046703205905638132235942366898520704321359768289528273366482564539415553777430016428046972408394430689946603505815647257736042493895662878884372268870500404849554559331370380550721916020093213294026623595930455251509309210763162402630137702452349463179649529400678956068271346639874231479491818593282499414207795685152816877322914883247573238347142625398227258289268186544081925031131979610460403905881736295121021611209478874381171148081541503118894494203680899842114990374149116288857481611031999394317000698213190470428793887402911604698951405724028703336228671120733875822981289361696388872088239845985146254413341791797369929648031273909001842440096079077917112730354352309244660333675548222390259265404101468263658968104519997768132785241628604343019827097837659143590087428760519534054470920770274804062057167989553204187788670669384085345751504771299364058568977814735865486946168535151897714214239641307904472635129041353346994402162353339363301586417934443421774236955076394424053428018427661793536594680917475861417995469059696232594868157539777529679955459298260674547136398312350401216411046533071122609469292068454723541896696479287351313995882769006549252471410213300429515961023676932227255169353358662580973558567262191002587864296679826676981789506918198575514744631957038640163839982061018540450586307611240973261354602472036174832052417195911719105761313299024909887131135324330927940542536856281006359970578372949586235747858405200981282201555277458237970448072477145803761983843066847340781055594511042323448124964483031180821193187489050319458177606929958049789480179482055219931468737273278188614656706053596051237451562411739054652856115654685905595825295558460759102177151364679411781281507889366948790684194351027697204014195998537960925783582337313040350871442282261205388750418313586869233955649280528223358221485288266009497712255603821994110822742849443591436611661758618642250331043890349162110018450527200352256116338427056961178942044257230325829563942515721542019247934808368267582619586563952160605441522523382623181945747537166530110170097871710729804371663085432756860086360068568078036742617853144872688508890237331381504106304613064005062698222032226415838878825747679601218497559714141375682816168263833297764308583611289891198833889149990483216221872838894009956580398945281474165359250065014905752194228069303848550764084043545883892425339013991171405862774887435793499078487225442019349618542381036840920908852520713643887185854927463170892363228234839396515638864391735003686419594938512653587453838842577361255855226695943172023709858668690853152737360029756656569127487266792141871491765876709336357148340447080493596666717986069331401249566630075393228581562959605431483586473661301232292455654815540693555350903437674960661804330455935067619838041000765185576936460890361000831788696636584370093657270873179105356910490103412143291365700984398394747804936149277280583569841784410496661973480232479474028250253755267116586634453433930780562963444053893747159352729257123608467675313531684370156043916567717086132201802797949402749669837989111050636303229232672997433579344831596800424294920900736231583011460961034275167526913997277509645636642610056555043522432941971499628220850802462721824391391543373014662512891869117617131639122792428196837439427036874516562427662649960613123290808860000460511967101421074139649369565813275429128885362082383465730654314754694859881914932165746111718555679015026032242170958403708206509645021492219122197660145966503431433815245260790684127459103384763007710219923519595962837212259604019903962721347060230812537678136656801714579831541578606976387319027036268162550810472515084213099728840114249444697231726372989731818441882656788658422894614873587098517049623612084238198739427532472468453939620960543671491874583198038156664195896706205391324033869811188283704237929584980886829812837318528985523207199325215868521446599086937063107325970909749930370235148952173295310799304031881040645914660750507952791467498809661435122499234269560456332752475614805894068795275417826684004103426514711612163276123730325046562071389445331317680624592684049388067538186237847670076812466104421643107503232230042176652682741222621004812944888363940294151649113216733371043500061003187179941439903193093455901876735770389618892283472692578231752085448569125854945491758845223176920269276163587294833846988045936984941552976055297276041439639599385873204864963748284533762720425344878623382063852038901462375763579390830464466768473401606822534713511934932926935691498195362008804214500466801019628838414137696491555707224235699733167584456814685545861384571802432303867478346326398489250508613109283646535489343792977205594612609806912222992153104298826682354861662039759261336790379397591441162087906381006156311676451310370464119057876808110618938265795706581490144787863788428577211287727612825683694773741877129620424590811953046117313902533290833193840964244978414297809893054752928892162444677038434882162568102444394284567256780627877244818130350331594924147751999794445150811650378803945804163196102489322463726538503941495786256474944168210414031358058801200114526957362633389301650136489110223542686614935574499234079703143194126905398073073362630942522930834494117641289454282122072229441782670290521117227414583460735101583441740535839311022510645462767082591764087340196656952410074578899899145790266031185110578635763505527057236928319634802211339240266523363508254714190473402778693105199407526954617415202443879184790823931123552116144640447800306532430564497053111507566743892700215134853352572050925943528930495336555032633889983806681491449622079713772954579009123975521026189522336785080828676836978719561465896101186846098449397865360835581215763880111355136559336453969906257916838582454413738058501407337282027720005807439234607237453500225237408464058491294654650373875166280633677205462180303772502485940808535407871592619315041210447637220532868340978729555062479923916147922500385236112830084949569600171977690085395158352693283155617335148327421008128587544405644017315227351017162148707908697199125159309257855093933153029099820039850913873628808537018687018540814494914163037022738800882405060583009240544022207243585549067322455183601154580572507676176845739536350603551312809386332120311314746050628024282703108110135867228029812745727192054591545732253299193850109891873500999605013576460361833255939842643470809214304938497798384289620733021086184734285276422685128929997659153552143409302320396493748561074561770443240636387311060933359564034147471911886323031588603974320194803940145983006000949007012923782410239775381144193396104154865224559404193999903264279639216467678518235645003106278422763329661636178593329903209569351085744456955968882150801279939416394914821339048792292882538457676653771040969328988652840966578337938313420120329349064495465511850119723238808152646933168988267570930647659545604141744462831855829604799456867157350535826993608334190246769541149612095137462345761627541711448569341387521911400721869513322276634779594015286530927430106131866834049097710854345928026717516350122642326581134718585431833919216022349836406368576380476239420648603650281062144372852174136381569989170028451079969290464758606877957875375431508560350051959813348716210531653655901010911288660404738439137899810765021792348997294058588405652152048633269881015977831787513071934181651157829145918914040646406849726082336988180908306283302729249463964491067126783026215320519585269778016773061155932371541134854270594630537355425592766360957790402827070967961687340204284376286218291303594878626513895271914411042686123745319760526885290303953116815215326313178528128794263356564488579796290186482831137313087155411196656551759997690622764721531273576357795939102347321810109764287914970604488585195523033485020191743437675797392350738508632904813226559389776312101951925940047566809003072038864003770495831781198784078059987191388666733100498564859422087488119566273002570733397706484762454234211364432117731962839042349569521254370433678149683389564579517744056869823788755390647424434711980912173183284406508234020158123600512534873724678682034350816766910402673615044284816305664251636492214193080663184586837635297382733731664510589973063368789424746839868995127632460700918575107323839182998831726831266732191886339573826498389950621455452126589553288709536707208080687960627086942936372808523513005700519277802783884099487105032293106542019264148320710814633899973424565117469294856412760224577779907617738270013970607021118178756971642821935428294596900333422754073984625038969487758285275740620866049934132625369529463184818489131133204588384928306016798173031282744804787959951731785612255571452383546303040240409503228026512006985783759617949625060462675275058860577637742389863648748946379985653503744878501014384695205471201367628206492156241204734520384434496939809833196805626363754020798040859569985705684732597872929993539718392663841277453546040602076470211722267775562126549314447610702328257140232369349765625885957184090180589776854046661798004128822529196974644226499318992377755067589643975423661170876747406457742139019821817333320064150735829511068991244118322326125081382225791239460930590124424476945676049612883782030171268677208995639919973917929016583655427319478862412572839605832998251070421548131272318913114616123005477647297345476060402163467081397441349021130417680795938594505513919367052353767495212031822491290145636491211115807694571920920617521317088729064395823061354256841163807352234793466828469377629665032745776838150996392111350317264848050870986411838245545013962454787277351141930628906771898292340355227223673781857312742291780410966055027081951939357878921112605330539423953796531244046046463201072085426083215995117074501085853494206976142797255633563028442803838746738980579571392643394479393941108218973929839171577668924074817976388632043208244090979352842639411293260665522234797309342292194782423351774472658988351812721303767018195933919911709206491575314128945370714731274672748059199531490470507724861742690692569083897771230700220246286094566987790597842132861975975819801027208622410314137817812147994678045617100810816343458859036405229715250312137118285641412098296729763912291771269717976695983076884555131863135394723293734332203235604306236928967209537266280753741586591651962726834062380461697327308550433405657558902574623825467624520961421911183909772543972441652403029574423072845432593427028625789338672605966019130330330546625299946857973170562080068098156762954406493190572944027880430370506062813976334077523630201459592631802100699130352072781769334438949562001062385698165744221782810289266621383508354427889622217245480519298111127563548948441885552668999678785442049396145664376627607642155080973517627379803318194394027251738318257656864680131517015151899588073138508501344460581418216380788584682723096227584164649791431518074627533856267299667702009956739462468021731613614532966896118807420184608093291504282899744470284552666892403474305633640997584611308243125982122255423769781526762808083147757299766921918493978464441520981761047423691576767250742799060292605441299649069117100172847237404149703861479090979448741400216507696619452814217483046016612295824345715380796041458449129616431453660350143286779484607179513226808517690533193351323540488870372639920333063769313712156221178614592557891682008678520993828752062432641629116321681352058585092530579204334073332910377914989751860915635683805870695207977005365000002645351618364569994965488388489158093810531053667462668208467509294886722926530436683192868616219546248280700258626670455341062751711777686451008475126771324360447962920379595710335283014982384908512919463998163103731284992674760630337243796530210419599433582887236850243550979519473156261285274119235110388456482426570043410758782901134665141338104436367087509607634219958985179933412448135069672182455969074321108214329485079656020410001355101811865890619765695410405459769020314344444313710641516393881673778732321953847731787256747291065617174245673007016668991912951989849864040262529783047507404960937570804908105170514387379173489417064597615902090984146208962123265179255466555369597933419432412234311192327213368867833737828310414093123699433504390204786020013319729180865626648259947930493266848907192376913633704613886248861223748785908767777620166285467212828574343257620658883744471791648424884503204384329049872357092128173010007357114895551233387766212404431353508787269997485956189802661816935592780229854763013945812945731431999225848714358182073399797054974652399581426222673510078678387637975890091941369951598308798236704146729031525397406235846601898276234827631764876249280439815523751403168945207994872127208361929767213524139053261470278309174375388649330488424857101709389714353349208587949946114236714529889533217261102557861693095572774112364152999373559343136189662246253685692184957311762078146429891161708484223449616048537489705708960492645060637309295723720822514014167778281650874105515896975712017617291705295250894508241941434981787479655944991938878273821250141904081598198672172278863694350617326325920285747650531688706196288507913348776870527436660180172402029565933151306254055101016435133062701781282938740276248875571978088361956763508235054657162401422711408873048351374950362220376964671005922591130717775403569847366263871309705667162553000136108694069644156591004145497194586676363324986659548198276705171412974247070553264008385219114789172032432947071739662128387001140997628365279215758406966405491199383745349412588444029230378880333276166482042612008209767844891248992779294825948089530449637340863515367736366624415868505159136733999252601145830473146362091896359725842312984277766272399181308751050443768768272124616034338695162834203924611562389765755181457412013161979325714349197702984672128730790982420527368642231601132309880650236329099685816248184508553519582940656718972434490034408529814297803024399855391816155869797977011765345666394038423818614583101964505633129531017769527713784868908574653579858630013070141853507892868392718454891180695765634182645506113676941650075098705016854945168208572701822169292704998460033166338528639207935828706643868201758148671736990342958369493645003340319199832287173416634457930420742633524167402509447541453083237067095653325513239787073363482256043507140861763036825431675847319240004938715342244182910538006036129307976445231012779334235675201682740776533470514986348645857002924637855535238746395599037232496642210456180032376468939058739570397352938224541667556036608314016697581768018387318211961187964919257070120773766860754120427473793367339061979677593525927843599750545444363970040047337977175464190142761215388950210416288706851351214601517152624427220351759583353580565031492420130259090444361078593149267740313249523350950647507422466775623719605949203142080064708655830672475875209446489376795813136427860448737530229149713326347098159871453826123433094070387981549078144192094291575752993294056357662581010675403858843702065677240103922876191727205724248262302680998861004385706639518195109931531091085448814579104129309354265347718230934744790478685827110411267399930650631566504388604019782160803701266243463149541105707959621159628731641214701614911614387554427401141262414439450505366437071491114191027618785402635362092404319722978618619397440710701888067928464150678174241226566461859967517819530173871302747481620687163224864424795611905446890770397131233270068758917647961601155187299014313278435234402345672232190363303419150608423503393787636758122039199406257257080498033535335569476357857218515223674164013901065894456250979090915412132412150587310631583393831296148363176750795269548461872496513674732419132876176229071372000615432834157978416377643800809130647468370593622782560401498830582094734067376525903105652732979046398143154915328219909251892726216073606178813348390181258633122674509608485406875906002708304892556690510399510919834879901338701069911096317706504000139876298669882150420239199599713492553902390267892942655496032111031263580284913859237195823825517034265490694286057364090679611636644538602339611500148007621741723979199148517862625268018081542662476410314717417093962582831799323507546371750415551953963528894396400629324592989395235703656371316633202302689378027163383872901307503266490642895335119751207246800763585553186508142751426562192835012248662488085589976852429340288694782080382794986973701680355527789826362270231873632894338837812373023560476506938099604318328419630701815371199088372581289687435636581461764826033032171631477738397468534027200796588800114230916426893181496610585513251115051121234688695040164763719262782628762562274661544170056958440832678901060309212600835918287626800628731938481292605615357994016254435696281796875385081947045796913560339074764958875515214422179741955951060854065792953277983772874103239212140345714772178395331589874102193872273374094376789884312016387041861311143222139744736361799761870297377165477775693351845886075988318371585389727838746232273669932264745595504692859741901981733960497997647257253715333948905842495631135535568897004680168345365896753923531357328491665963794976939776952433507308888589938730521362644819610876185996745837339045059097780645241357934811885669454575819885582457318015331392043731202470630439734121502940882280932860032345981167644692425118687755933232162861124644045697714391955779993909738989581496924741449236557600718655321155837323348327463665469039245953631046003985910042701805580475720075210631465472426597138712647543927488773543374555784264860168281972214053125432022980268637923118129194281412727724854173122088795246295718202309349174060477420034238845455566600409918731391985734786151534287973866191482162395618428451302421369420562895569277236856159869144072429328936864845916814679309560943637503928898946428497316707161444079327187097705880720528840850481984825284546494030223088740451774117990805919265981223561448251760522052816813644370525186215624091947440888460232474272580382972286213087766186941930073962002192795059196835679839209610450488256771254879525257956703103414429223568897075623763561201638977637142320118228664279802601147829183269465233078072104777745320700727827796017853090261183721510146092517432793193334076607620110915820734595658501893853378817080014030633746938504752581935141522429931110461581560433813149050745954014335638203371152151320703336866118263498365447773680177915313088631514950510468410976327828817555258322243586985235005255292713607178337359494340941719813136412655473480672141656110767772733956906456082173424344585867889815043537019081669679385678565959463074986297806496680970025964425003948980614158578104852341253195400300614737943748764886374836610805331416932207161086697716098015528038185294593053607479771034031397627259360115627022671359370283243199252837105682212354321995930124376211734577816147464911327410084991971927358402943393858591949997912600589334628385253840520147678906822207697852567016176628670977777669806757635097949536375521876353516773396658241618347734669728561957822771460061587730441251849186616534851112072268392318041532067380767646183296233364220528814790048179290112