826672062459543783449321801031123278321408945387429858428135028703575043181897824472299889955920065890504897386742427661936274130159654327517228141828487991069738258953188852321539985186435745031940014769775159612586666339864244327348581531021194288589802959930171138443233549251830974825611788863061169742381432916603115820104166589019601232494780048993745053492105564769277515197475356408048372867521107932406587560639804949335426910187176731396564566859200639460880778434271981497772265403174804524931488697028328445474536921934234256602228244004665404045317849570472187079871127569585018760740703094535422477983062007978254207435726389500374839526253539791976827781479651498976557383251477648561635558575116398566613817996343140521929748749524372818701402888685333427803244773180832481052321975076619777249183219293630179998833914510597807242360978468779614212700300226619585295919683915682957956796295747918482676215638167553542682910598574112415954919826005096766941014533667250971268616634056508024863344516340526503282368873749136345981188379584526878895337268575647030977934617711015825766355618715547807516485003998935110038598111445896161911330769123651815206760630839373514985661402775335556876492219811871747416535645395988618544856297801643869652619143999324363084734058158934125541828582876795005714627426395494822236874170814518439338419588856046907828382987096932481073966125239728638247483705338395693994888216555098601983870113394887222598936726650715898161621674430906272147098700461208333720327856329842591382577652319412583399343343022358428689258930148503666354600351229510714707260480295964892486025974462748415885396821480200715037386977276962997219370477799786133700752194768279837558241934784854321181805873759908736133619494760442919854956778012280591219328547490542417836047735438501448781608059216225510989187927385983471540077488826444577652926628731489384178680263563224177872567930386667422669932431199844434091081534255239220159471817724819015756496774806735864632755851693332253950328387227431012575330803579672019894089161869459625363223015968742088312323195031010130262160583339735709122389590995918973372460984473483040204151408325549755743835273513551995054852347528208354526104658029219311884609399025398831986598647706568064516762246871700199944209279315479194859886367858694284696577419028246429486196998795268049219422058296725043574904317321826646919296792266148884493508787080415513155600022515455365996998848916068705951907607237967607549959329673696733032681122972324847322065335103198898245150940927765493916833359564192798515563373168024307291825187495759024238855618818601853760279671016172811827026778112897486853471023207836237671869725186034921693250284967797848064857871752677141955782079168747957269321653636167448442917538541470614299328787465477707195731665984935117741681235257891475548522393368675167356984111454378207112175524314908159559217497795174632271369828304675174219953963678920117297624028178121784617637377899211831376373722793103421141712294247098100149857694460254582476731817254583838676932677858896308306497067684951567313548612493156774790053636001765971910236728278393077344325505377767442626520087078742969523224119893146286337737805087160598528549302835317741107376442019649512300082545494379717828931713241441781462711806136080969638232434908961144536502388168250174623371060436469193758641583392923687990227996392205468447724294610219121065274973677118984129732923658953153874993125872713466891563347191526782905117515561668850225089383346934527588119820351205306793445585728484985075633918782078892486647815261770365227565999299035942712523107078955167075501486831011096528046170886773950529911780943162857877467679698750008206947270430302136069740184811413753328218225652580818444907861197062937257473698026346953963570176240552748929983252246859467374990451982753762804503918107671189367158658296238917405611037001770963293973760999352003862674532485709533800574098427028567204323134160006532265221383571550817289794914385445328880512840310636317915076442635851939561335208616255133992575148946542162612260776875702034976839401714289273199338331299356362996567872570535438385214712784018610992447922635235572250589491429784256874809908811091294521001499644912268146743991353172935263993581767402874694829591077769583579434306125384548742485255030180586376786495643630892477840294781836360555250361629324961140965405264240068307104381010776648153009052131095518073415141522271817329349023803906421047506702842642296562528886153843130028175371423611367435364574756656077354748137720975244195156228675299122111835904347181317331792893963442563540161094985581054083950354145041065132941553622311158749019489167128582559093218685556616732212218377662440753757065018826696640835965957929746531830695194507256604545955365995210837871400816131855077175247366916081122243617248739260030184887439147289034533978397783020981867324543634930500253830485030936377066911124323685548815849137667605039241896319457645510308239745040717416091630687744616923676426195224084082533890703153277460382935313370232173262605797279986849466435915387875765722471920614887783686934713920583568599478518654537602491166192483966638550014315667541148739496179192192629176295721020091579753655732643490316575839373635428263393663398212891588799756102211714699263777948366636405126669236552812222854572232635732584921261158660389866087978230073318125889340123724738851912729271479612286614362840748999717492232421884380976128881490427812044984597293368326850519200277823867388882258065532725068227416035911431812104415754833611432571168763244981128970126540901156655714608871448482063857243729982446090859650718433956768342774995295989988265549888533168344298723083747725537898120884948063708211862756036673339783365892177441181188650729046139776564556621425941511441804789767733300063736644140820615877591962292117871442964126959528489472663893935726161241891804108204966162750861899761674985205006414566658028775964779427960139910850525976770431942185314257291654836736058920802469442461782570829578070181757757927351988813815322057360224758018635101838377919293867516549331059271790921490561540420931286972808669143580522574287214142824816757218465855348795068948544231456099342649318232218442427596515112594649823000847606180325678199218047922994235880171415878429863633365227303397812386470477611346835767666925736365820008827946963163572547643673427256406495606247579714187227867495856900418233075261425952916433782775487299460342104403447784519737958805979757682114570718598492564370757226085921705230650216316057302552686997560997679041370816303607675458691767738178014928745222783104759543899197214948249574338547056243275316765487552227578508241738839719865330642814935570980282371776410968849173895660929814398618200484395684857439299075259916765036203033843708277360577323522709015157436213366068342654371865601596528333758450235772486800667319638489815619341085846688833944752112849955769653940299900455675663620695607998163559118193962703606605947305451672014776926213864459620260384155265999648592966407363333520917931389873678142250725204903164649482733153938206943436110785082261466053986627702712089351443972608122502888764324812562182246259815008508087364535777709911033521191723078863607938347520082168265854292583651503501696043109267243805735727480179128714035386746636348759425439978899035162898760341370813494786288686622344599926495702259084114559863384359175393668644552739467310855396851492481247217995964157025179282501678738538031998936868086957798843575627351693599641269824865222654541483797704574290787611028256614930924682165639823441673123121266144278075741544779135404453238579233803082874314394612431765828622649477219714618910214404208694790812318485138797161758612788310943276276658886389531700742349329024960943031956035766874903083986065859696509330455781097757301861535442015121258852455099521297373723587674161939225014591567903015477081580642033413613255267281934994895291284894387113851471156157535832169374112528584815615840655011270220196266902829575617325079069770489823102889423124951619699894579671261390733161215756142668392821959704183747203682072327181206034118237664919460280836693729125322138546552301227173814478970729870585016585551721750585614924747587285376928974544411874389289620794437024152671165458197280121049462446345317055249379666117450989648616333215873973174709790705219602555768059797277639784629327989598143991558414797708939065270519432447872818427444980551071469755723782167415972741577409298343046206598101741254908988899840874391413677742420814156990975793517339438235805737486332185109412167372832874780722316174510016465372419562621104141568142612005283780633611088635507543576711466448422012141769158879513709149497040351770783153418129443139716218982179402064832783860176404002323715209610265997283874526215426794145275795695997131734623661236073707499416471866810261941945422928735048897088862766568129733028780871606377745081495229234624540276011503417477854505603182597698090556290835213110840322087881756366828234178894665247434884608933603913375900847112312014692996109603055095861166975216443225425068838479791446059130987401119786451377208949276012305864679375235164379661813339390255758817687863431542784566911814890059545461797618886920635983353443560332168528030351436151608542366671027428874093690046835141163712493707361891321029328672798562531636275658889241654098928878426814735248116074931937555401954632892318060872871917117179269581675778372250383956636651254729785750570846214309980758860089168383644287747758612144472386932370742819361835025705677498299315909815046356543252198437240058963435283899341616349738276678840385979551922779126648543003188425598976017379352613982697100086642821354253511243836567375817770467266762756497330906694832030996701978156323730362763564018360563581128427380123955514155563297723216881891680970433357386629235813433070816980084169354129811168062838905645723858121345185316613297166530063986942875881359273319699191117140270860105341680713418578325649360348337316131577845023818812330398351889348620996731263020333867271718652445950959254463844396739625430275840999409812252445417286032977792624608779350353954143827214148268353457276152575328556508111985340633908798843294804700350656181643566780356174329223362283834429361723294365669105244529779643013736892479635402195084309909768127984437058429355967326000126399162984053992863901291395392357539732702674122932521259377898954031387472046754722419045097585266854934486465619658374006434624571576848432006350652112576084593289628293224741915935296591764776798758043117309234618824588988059235118149930680657629628161785934722077635931314184095687661362269287751792071539431655239744415545787575366658304127632592424563136780530163209018030361381852247684937624778964264821718302539204311089175430782776832806997131696480703983124829415662207992161153059187678529637925788680519667430769019037153524899308307629861536999858299674800626247529292100063464669643557426346958873867024340212500566677344124239984087965493689145792384275526278595300844879436357400944577863900456126852967773781013898912470253438355970790003328019248690991154915610996416517336573635036536715262744076848748766442521061586284946666562317777360249381173422967574252261355300891607548833549856479157363279229775896059420859652910712777535601358066568125535847292279240081138233836203243745083196838258631133183693538033585333698567777308440765967004040324104976417125019584319692300853656232289368719828153186964624364195482250807031066773100881192250293784148201814813633129379029299304718751348012501544846531357499970014088153621127107191975330750753957881857809403307965481173404348736099894485251583414887420362230525770430770847735024044537760957329785188167046847132895302434418166021562652075520359015161225017539156749247054154111150198996039884025935845685070390776592356926406742189097014212863885576784406312902143745499742749614180580770212677898330776942248046626149829290055680350956953496548760017794261960165615162700038128964298913854232937865235486845370484163121601595345119663832635331827473731675448351207485266794721636090590205045732612693559444434673945226331145364426818712112968791217857562883113729916615421878673642644297288294798668297533930727976837344942416241373480021477937424603978589852062795685922637082162487667393582650352414561100899231212121081623867559283222460519182426157616235034557747467863362845735009923546639801472124271558522535588915028422196847792190237607012070083559411616333903611881725467909618787296319765165932981881372191877077658291947548507939264914689170112225762781666742102691440762449142918840782171253532071211652895862937166165426576642987615237501144460469496219555226567504882357754465681767745813254699226679175569191788719127468114263711457127877655879510817214522279713415375837567684709365572964612673162462463570701798640865414796588389256863816219266731262163746655850636483583342171412599117914150594398962089435301723126159528538137273962578146377391270074532714700506039998625938341067787057489903021132264144703121705732962489214503988473830381986556856411926453649441304886821567940013373656201772321894725013206349960223971685765177135005632915693810519948287589849426258511782084645894557210416118440984624669613847464059956568271837463219149161134039912333095873992985153527643846246069759467835956815934284623341340642777409414036784140075344684653104925047034294805963267689896487045677100827810837512812335720511888787180667699569802171063798567458857758429036764793892929480334131979248128959824757422299193570602773891078880818766475331002566996130445514248468673642831301795124490991803637615697169358923879129461474347588303618111659805105122332213971073558222041403185910522609783109692739863257432680645646049388535889965990887191243705039306932068372867807562408037463601781916708941449996602108889272958431692325644313231668605372339299956858049916055389795408944159406347486161805194142596991761217511773664338894906018074229451081111758346483078372728736295286568593283350589965976062665986433135628881189902585894368412681674376498166599672846745623333336741463564360128244408139774918802107016861490835647557329431529699858724465836235631803164966436195353636841138840448129504378981886870924877078549160914261738012808421490988254183581755126608690554221197436555112663781311680555323079533989852348805024424662747913225166062710329073537688354602953476650401757561557925935155124592124405136874420890555513771180425287849669173582992214652426135398493943323851594426290844110363337262634560162354955036812268529050841043093248357104345043257407279052177033549936055064184112989153293299768069561867771967211372511338758208123936891702882858149152904604862596264267943423900507507263538535604811496578803861639956134670349551772661667846582282795444437169630921071559932012345926774766921038085606797858959987338889469427234692384671933493445797690546596619211847896422119013399186661314023263759296335375243425168932179904663398096189216608434586607594783149431012668934414325834175335096264037701110756434732924623368998561554084421270955646553154444836016181380348235234006525011802562967218459384566162568423725432335193846037888939111512599102470379165888344986643320423703912201418092761722233651318179642899107118645026331871071930953970951194597673466473376935223458415648460730155898595260775806253423782977732369647292684328360327203149162927157893557448343760199647225527829263276292585851369470865908885763807693896629071310861689628749226945223949665972463613917455276738088915410501701434368488541359856528042647795444864827627534878050108641991156532359186745684056346558871640694523247273305186650617253161150301089971675108671889251130964507589084763105129108364632885721604033527331272272654816796862489925057686451131384039822036627305591508413084520089750176289518817281684363662178536116831255978987359796301707047521602492086270235246216026556397687548788481758463947532905183413978682303224592500989693365787489159954515456676993316627126429155562118299990389431498913376702467503289265277077670110227687357935953123569683839494758859258899511835362654134101194788989614360187781664212469953473873914426908359956933315243672169711045644404345154444381607946310578788880174165869022857712323201048712468458041970687068020125834894494536364126139371154549033995629706713221009983951278516819011270670121371618542154539462077738578298272443725336968363320313621416864957340373616273925162683970275225680969877257332316387186797527274839222878797553678672669471193915458240614264876562466093500823662247297624686699487263842832069747174734330856988522361304719162957165791959356571066336687917760602263739424915328064634282740677698804295477499767438496718565723923124526783500353096277845527644301319226681599627510176222282110457857973426293248767228428212339959703096111608183025476639672264112925241501444400628808980271093518232652019027630397976735337696111294896362444223062785199560752191814251645642126334751058348512366159665637182252010737761108937526683131576384812734383991576661450793859604436882810442254155472756575015777724555433430122756726129289412087144232887293793274755769597693852845795945430782858948220358015452449902383989312016618517801858325605840429551990181348619203847357230365561176691832928943190311362621811653043681594505539213330589714721595348115646744971224743814718979525444837632887776261541066381246376334211889447022388166059995728941460733263508317896988370058808685084012713285642099447709901412394232781094311416356839399045052040199927676440359342412313816440584420943175169266185921812429013609945920188610371653685124445981844569643948909622669020144348195763600986215761739337277596011598831596199243439636425465264785349505870194788835246571863309822596320841209744862541850049422928728879576907536641086466773305862124573874888138339487531367617033812434380596075401884346433721016788205209469182769754284202879996202309347604383842981947907182843586156487399964531011351462901355596676827285979004598437424096122495863936888157876682093535671220665648540733090305985792229196891784127450643699497795370943573061095700985922260934673447405243235532454460627310500706577243686565503123493365969222979646138976842716435112452707693780599268175545795467048183401137111361252993323715567047824978864668164411112744239729456714734186427829189593074315186247855441468374606917976685449939824264997118980162110139015575367850164795102641818728163680476426725105687735933933887645146120013407181992504100507648454958925113478766959944594065110269792189016309584598326921381798680853819024358591829330348817795403392491318147755698528564167414320944042482007998483351130933533646471339184937195525991895769469627429564478791541585521727730241143549078413248333561089994421552757874375882550904492187255417511458999862500673559513160517567983684696110582330717119149477118851956785599755813870154508170842951689635875473293072117970097782618397851298909492252097737712323625814190644370522881636096234084340735034173397778555497317415785754407940828298460454807985026309804076014605283574304063551835279609438839459112148121809555621318662950121015747464679451001317299153387714021362216482657173645379992720395211908897829789679784336427880847875234347463857916284466754236616159874691088880332795805283863107434725223631887147933698549884316918295517643332333383570287159610887836680063883217865838884869782965849919439803437815153862114127828551342922841179478345425508434242299753237312786831837399804289180825268875875326692960005290087446446826252073681269849812439163224318840278956535136064946265137918092591689477861724167888981589611415634681642518121214739566189266936176973992116311788717966103502551459519217262526202731689795237824560224064230397096870162134378864137593595888728857523261510816818335652292792001634739425176046586365091165522614553866380234794827903755464927555116135647785540972730071012353863552244968769303556508645434268403723159959087595090638474540432580257728518792244947539755262337666439807997966493324637771934354810646616515187787419214407303528444273960548149568354143016306562226375245121368431435647845194652636446669979363321196087132435019658087891236101844392336830485569426745829735020147724101181010355687329438636460718572064377021761861178886164170202619192011924202965714243698359244850233383538220801563683111168810757309304399477317656402525342780088902909444733482271698956060225966584477173535302552159722397547900971439521773138288497571489663190328952054055478727267824329036416100320465183721584316281493133347375976968675180842367468539512531145908294585900255464693445891906568629016789750289897519040616734435972220709259922596184486456554693384914540456706489245955587796239608291444389417354948455529550734117720255318955825467358396326888976764576592871505488087682547159703712321671577460324047401423307468547806744345011262568623314636640122994332855743758765060845032401812094246516891182972454629775268193177189149812235994552281592956865649996791659879914593663411167765441493735691608259567601699766444143242418646655318993963837976698221824935646217863414515191236068826342488835312438851316848329739452580461424926632888735798062308144884859124961567644679675687807965434617123181899800601418741540477744172152539261660614319223411438958452582515658199662389342191293828930457843203439986035712997308755331015983459767822344689235489405466465570915591654784074512524760980888726580177745473225378869445912473346102575837049838728163873465414036378751699578240486961363550946539297055464653366617026171479238373692107637175248417966525996545543755949905364639886592189165409490839667652395863475548414875574578154984615488453609229221738211347937435513449066186619883158621541254009965082806882553286841397871417903331671632438988426591795869868387474092881465570591004971511146612693688930191149568824995444341449016932669845086673730657943984374557438245072237485551483762052396958518960158532505054282166400532815808132695377998574375414719162949597918442708088555768245147839258057482783831922154749167437416452866451365683802461869548239695483413554563922785157623348728525023606752454295900694853164578768706296018996963178433709280959052602563679184735607495085317065168720337925587630681420697021993546073406723092167637006619902506362658080112606392963038425534484622762306325990673746081127868325571609249851392614535860095068520767478487583945730848038737986152957777696810248378551811879696020467912245544913099561638513224586790623718530553619642726929863862260132671455658543198265677193452631810311013346277568315627818291296240623702791268697395283193747736146399048618173292525920930226583853455813375367080151743532984123783306814637427162506555149234899275481355675307666088511136947156243178423442284364256314755133027816555576865359593607165423561672290681707060792577660813115645427330171125771873147686154456814572798805955049939434635682515785298329837443157246653198342043741917931265238847534843866445371551456672949531051019345733728847628680320343529885317433701757108702796017529551503771014451225205389428010896586624592455856748894253860859724867203563410687306731015869327998668845051591613573041645865407606797858249841656941310536964109688781489553388413435682381344874062283831754607995151259746260322012300671061889376980452862923526560178896533851665114657716408716056670288273478327147974493798227520215582029271703430982725262062554116628447144616483434059551332748668820011968001716488156394128804515630537332371468535770674984854120743642005651310291699839633563580906966951620792928483156557981024628116817647525985617582651517738824808028931830226598768902577059939647775011140464876281239001421619973229341195811499191295107037230645173008447008989122161238695927980041879681169738007269951907675327287874101711946151163753317648344669162998106715767411688802727201858186438885188493988863168513782372276116214635824827252683859158093518014586517872263013176795312468936602202105548669885716775767578491130092951355049877593496385433737551675292431988273156179730685822188631291563316737611616957310507207378070982107958514348827729656843164630694516742830637875701899580072441215090741359462671356718726843326069381463253249366750072913582494442556921463994715346564222820972520714975052852309482330131140148654778003470313559761943695146912273466249424868145096203770293589367616136639596462711974085470912152699405575362401611381950885390981936266191712576462119623984988209992834028581137892513815205939186572017924131546272994627285806553523601814376761530808603489615228362619266235839760628019631192231108342283018524556729531028061937797028896795641478675941345866677385269417235079300135901844619891215503656563198944555841844823319951171274318806457531047299874416403203725490924675495095093141604764742112830759336773539897421474386899690426135946053814642491697299077831579009758057112493596378773763419684752202143659677118332956014054050529923928309871905450679417740169819638220556353324649582667599179999046518595966899518338335828687727142689503389541773666873247554166007821894120208871279552305374642940348956045218248007932193634453274829017427881875994896604224433363871223554312959361938871085523439444611496825496517426232105878321798407025724491924929309079890136893957051636499875671849591883333611398963792537637150818844107976576827521305722650119936009171774141847644091036204915049812490597865437798626298244650446490722661958585519889949722216385737290633038632623478654618910522000681433322378099340962140889149068723481396635407653540906168793634266980762027221558101981680987892817520646070728710361965658858137559304477832854390112863483723367655648511974324672135181959294653196977345392662245539064298462831274170898528886251896484539656622897180332115058062056188212728170033044334325563451971274581027341985869390824960451918494294266845745241924966750308549791571055666677405555527645957011644965051653405147438191250615423738379222580120279818793143972645163814223361056991792144503354769349305816826764934220788787291079413253578837647592898954610621155124720814498673366213659416277419296974781790174296353863871466660775866574063645074084142107535511611932620213728988899497234508017185870802908703413180805188285707532519926921261812549782374098342569417578963140998763116498924431966885264914160024225062186467821819844264516342904292083781065376264699402996432426699964325197908807432831589576741691271333319494753430914535869251483754218938040995753682909400187975037928210490800783377342827151478263729391063699806522959074597784988797267344529598520244908478817984476969305748018985632619447951143101887530088602818412877917394990901017747353158992380394109540198949608833853794873087363608963310798922374372223823776604421427846650407729787198039330470845583089059215414108319110094337102789610911776504989262678128639383626978262815012491170348634024819451901706936892553260023807115747337946450414618718511253449833825333101365545988611315710338368214193334492735279668232165063532973268963092301345540779349669661129796317392880188009385018960003343439483739021956648088527197644317452091647677963029773152206685566938740810799947836199736668493390226811492544959297712970107266908862298043386717943372692225470817950239699782568929229126023096179323689826941313946813476723715131871927609214571024322393942547220457812083696486136271092685447492785195271239938008576914957857515424543433972509209712733725837481466372700294081928997662608242099219249919765017882741280834374458802510581212153505792388046633842947974500892513984756027993979461099564114056404555848648782066910180845257294216517412398636957912444499778630568873133082049452936938889547804996369689381240858078082084925929333846720954163087056450824342344032862850375429515854979355311647590105554804062277954483719431530226131197039036867445119474025662096878551536973206158191218862235768671450176243384621917887920695628974618825351950975243629417759707127987982715258850506413519480110887174925933407114186483522885648016315582718974841132708637874852687638930725754476687375341482470343764449957328464318979688570107603561061418165029261333881898306101344067773478985710446193926548040031902848752154735517528489282574886482969821465619616481875163721874458403794519388768935841856257460628879095493714750069252563425219549191678759544501969387729443122006847126461749114536277693276158725411754592940335538130100252992651482109334877333768601049632457354739487547185312053441263188505392313429242682341593851401533230554354426939352559549061809277424746212684993144697674502252184860834028872597326381761739500402395303039897768316992322025235783717303285772410878443442483677373606799999316599128730236492078447342254255599328372199291767566573088482058946970638745798312590579471333386349799232248730203523828672715680512529765010587186512036316566065740613458651321917961957108481082725515338904761251687384235333520324539472942324731371554964439707536760379734478959571414006772529313856179733912499051811272353371746505691321370059657270224161855075910735549731653211976437637592246114853058719905223268160795460375761918512191548736732676355237621837256577345486128391939066767247359767114174986610144164219261708376951750497594872291625767574356938172292285031523744988869135721349971081493772967226846633805881388177863391334488859086627721543291983930842578339410374563054513458426406594740539403925972705038800685004857638245159778089618605426726547570442822718889016776068184597918021618063642116970248636738390501196776077312151142251693613481415361415196022552918679539612606445333284272467046851432043476988361219611061728436766127129649288522961296735177568532233970276105677581169612143949199290636826114509415115131137306490437720675035371253565744032413383559151164102029343077892072738511891430127819926186886096855948949842871862677326600630392225021242411796744083384108858087285579169864311229375334864196453243169083181912236672257144538231751967903740043548536123258155738429132635884760021861784691074264120571784222397105916356086191365624924380265451056782637483831853514271477273294823193022315625717359502240013177521308836038337661159645872681542546337239971575232828501610659525734475879833775352128908824807550261004218628142312795157748946386364479365157022199401253055170597488560551481454245477189104164189290838967179091325039374774773588822696208101540711288666959193173965944223669111053691488756992811393347747980016650292344685813229106426351463872542833942217123343285241105689433667511664574575452173805978169799890109793673753127325128383333903480787430166742190013831402630265837136198454429688412554287314439504482423857536356883430685350512929722469090411945271315678934193776219784313006204692131061602339583344386187026204986715242689399734605212153778931160981032835149038244992488688379179495476864718399942025388034854846297827666325661136992129681168496866443717225952471804028271979140237134878938905340710882452380636937709464754680561805965758476951667270517504652697519685728259575703095137548955191594759879585889354846196463865766777746442688337949609876734758435813750818154130954368593879864296632429661707559506648087399277141685429994533864679902198230524614321759142150898141153687459421482292444455425378308059168376009686537503951302656782749248975103683763214288824252438784745665970241406878478175732821694780693578294685302971420720766460308572954614620979994970418603536768545442612011636116627640342165875035662821322355814152832316465158606278852106369081125281036998192951138748385116047863822294689307906419860605255160512930759273609778249819559447329939102430674767828526767818064834834269305786479802975645042639385298436402893743480899515797608995057664818565371827482268679837938984740191865505787639889270456115104126239671525920750994256614853288636183553607676688755823410877096882049943692928218803184577510650749154173291855936969891096983781704995721718983293160028544408339875719330349047348650252933665830369672142586393751566747633188011900565689167286175598188529595357300134606441763790672961395729838614346304036088381218746629959138858446850144665185721362376276300364381216849287897133876426669274194075755712708698570540685956247920493213816318508126548676694435585452266221970486394172589834947868579872538499813133727093552097616036381170387622825937798671396607961093616167845661845161997710768415118169241963498244082483270529027520660841474498786164711228790067173979437902131120419002647074808182738760589386828168853619003305966201243262548793442367453225233303502846513761834441374682850076279593061902445703291064590013230730559820310441297891732935237219067804258029228365206768587164836068349781406275232653127145350519987142437070087659441685796408326677605569344695928679289458813295569541868977116736860074221248754394719689971341528138187247315192984399223472107626604637386084802552055439820268724414950557684015718373279943421960175463714144029662658447775551269708301647654899558526023944594097437365196790092184906065448509805682601015298663325483621109688672422935248259099725837165116632078574128258449515446541793478876571637113413413192588465942217684930536737784902660462927312423382832463643663790566561463103554285116276493721187952769396206359382227671490653007203759910492501352886171481117045471675022297111794563950588458662717169258463621628387873965381217165082913725982092496208034706141851285695614148557730331605192312482436632769639263681601738655219760419241273413672290344755403777231894144901952827524355252717417313092957559478128495215245303338608702024332615658661156912007841171328624917266606961295492387818411145546705195338449566047530064497347484320792246212919494675341841571147177183983831617399438670866905642997462537080678329328837755664684745426942624975678585436477487471395878747328358894170130677612936848272729411850386324832126348225158963857188291062554997608278105721267981791916562341200741530258633726634184721935144003694267091186752256382229854035470669595120475713562756141485355023300604722530527942679879598332985053725179047782721688260580869846164749827804299447448779977903574799413775718152166695301642481618726093267395205556001776353509537596613297285983651401865640561598742427273744718989658706858729960642585482189221349325488786291018056103143953309308593265332263857752304875477995267633966848283428769169319065388523691476440627491974909139574835502261474449492640807773011806538405502786034338039743021280799609746874193306574290187982343798081450263309073143348020833517894368584927033385443596120706117172698186535843022535876938412511005322984106635268981015833057972973823339451084354218491049090657937802379472414330554737912358679398037702646806537807455869658416638945541505557318277137827739082320716974568777075163810660449858822324481137613909451805303224591477033731186356714848112731882110226286763423737546625234075291189896093369289443731428238494142359914486610005435643962275615039413152855704469351822958092908049494606329906999570722221980828092551734217642745744675992370473999935728368693268501649789550772166832832220490753795993759594396527159812698639104503037801751545309826118715494703432196032321005303836487938675101894132183211377073887320230432924394477564835739209333182175430246302465402277458361361888381917518582547596989647895529180874714925331373943924032172185656114886554126420786949963076162642465011952928936491797144332221169254113219027551716981709163774419395446937013408967195552475551295934610067424982114037979709541517779697945873060958164059437753138135461983385070383165926325095136765499252554462013062274205544488524208101151442953969112365478668577358865273816919288428848949445707591300265944233990955799181834637101181751865797594325184701278522223349165166291873635784131901886092031612006685141822730653384133189286914112869784238167397618443178331623164159616780423677879259078994035763275489387201099318934587968931817764274341202477998332155405144322265759449725711644221813968655882198488121687046270190044111971127489684203862578493336404167623814858216382974618887935883067741471028430464345734402862972419890105595008835495998037331086055180914794652272814930316551814033726359970965524558921590857686798128547419430746112980204193319430746399424780192783969433837498355064152332448141438895114702534764419687032862693067170940413996066837383513689553462143639146860220843288540364413644046451143768149433899143444135052378403614136870411682634431943968045520235985498317809813332920345669313776119016107468049637382950432185673253261912666724955698262263900282507685309559762700995817231468683646528918268945557686893155732164655347959541960084415627946365259516346776099162481764718581815598238431248049778101350657688242169552694046961279298593946431737160354920589052189242538999454966855494698730807914548898877216526187725672930526124168277899282566152742653745443186270207981367477614085401918074603888758540702006409931294313104794458456844932065620053695201905527325173429734096379976788612351375882733916591555185463591674335867465292264888668852648139128623676274610925857403670340767753571099556832720967718214076930594246532545617509997558793731963738681242341793098707458793434865349233628529649214290850483248095694642626882555086087960979518257141990988671938666343732072194541701546811179637865738214415796187763393482916317858369171825399853835791139435833966550824339572976365452455895645384451760951106903692697832842860171931613677593446741825514328957465653152514108870072142738576188351252581743480899458135865385296802779526833137548139334475615779691444455351980980412505934878308240961040070310855632847791813343146785325218145286906146099403846213782900464995501221130784968762735216326865091097374407841842439196461291842784798595091334101597083912146102519493488476391987134581167853210566908086079410063956194448918195455966583058953415892810472241740729695342994791256514048382505022944149019773269341816724549179400323731495289230679525611822651512301815227205288103604777030678454141986968550591495145526578751493063328416807527051469135177673662507032387131659344894033361729511962818475578103370436901679108198111157519740902787987217128844928794016651341119855785506179575349099755996967836721847519925350566898597887065584215813185259724794617106607417498989334183865661484279010959949993292108664746807539378166382458838649631680883941245997005531727518938815219282837299949208289209654355498650179083445458231184854770933035157323251771194193390657308639664588422886412655845979147988345341555864828397010583510515584976639053357419138590706908023642478706018284943699255735966175734471220013656189845410182033654242599612979486423147367789337945463605345061454190343018911750738894481599211208686727886371643686528726236076168631821697308744448230479326968293613589987758985388715464589018366809145188044108397589345092411155630186213680888748771914990083085063573248653209127585263827791515498987884857574565448447109427121829469492599988935463774676713793490417260809991456569264071653443092834274306274041706763800389929397635776675814047021452004613617594354737411876863354609210443632959312740596706806831113844099470621498613338415061091763458893464848044923621652746332275024180695490351258178816890183205802457466494148871466618173195519544340402647384775384628936216334733893859991029420654968338924877292846109992695774218947384736839783576972732522229528037888189015322734348034343328816538576565977455699792775527866494473556894438697099534213138170156825264582183604925951426926756635459347031193490854859795953335493906263495873931898256168984246512059564911387546452940521965808413675975060336089196555890496462638790346106469557954197245005343893751211169867555829626340825395178833627575825713645898509350885899871639571951147214230948732835516278962019828867106808844505133412121099834919652942372929652331996672278194835850713406163059522192004650934462203300376978684418256662068266182790851079633029254643466014044045486130864574912572584325900855736780970190376091671283329080422069431699678722756056988447350655425481186186097108135936758692280744537760122126955693983763801169424520264701628703747424845862746704229973861852134721513107365466272107877864310312022019869117765297233645517563447781875639475743184157599937456436775738757733272711406887296562620127860732920741453411860690636236600123922942062203018272942989807514454292020430404258213579398419427324614136585376040347526582061049653650245565286656392135875287595355745349948579589568341305922009752933501516867990433285352648925643491509477187302811392410640644643222848761244340304807018487755965611376847381132445615351438415668371251972287900484534843563647329018591785090935488039267462499345603338696704595894866124886737316763774015074180726037242719943641979513567269739922520520679158899836441169460013631105898035217979351967212973442872739150411065930889064604337384784574396697062927744666020826832571435452082525534192822078137330246019340861442994704337799658843080141070590529426885944592445755755397486906262876632236027493186036666137307142375064609303321350120302242418171206969083260612283571253884686261285279040862050151768908610920560682138723980269845163014190312394238068230789309125720618986473965270122911197630786590368293856526708134860096076216641547270753393543006484530526640742647728382785151998837943223823793102803962919114854434355242422314959396723100612098447760446196837691701918178373534281428878445961688139388541708584776095619847226347080047301653692526164162153950919990109519357152709763002436818721951732204243976624947523799566683192778562773533276877780294457250583927723622540802129690089823415572142320805941164877472961910534561977043618876661122001119307146129357015673093314996735276420788039251850615575435691837094830453093991668901531162623757610450161301551140462199100219549939520270988564956349618456335217079055098358407512837389654970854597245061795371919766359606201398511893494478463933060940827180527347671303537985398359777554115688294293094007260765631489129396558109670038440319961439669681259099757181456069409536293631119579164636536398371276021613862685822471505721151828293421257042951389335833376586669279149620733380738232238688440807347116351330937848017089110754146185044492328301610085045137392339051652859047216150429130760746151517364911561830742549087754464146162868490395228697749259341805932085730426969485109011121591604924949603846115201284464132356738433041896071496342671306756690113389118294300460549698307239350166196463661606312281628886419360845651146724483119456241295627553798582632647679773711999830292723262012481099558113187369165041745079407482673538999206943293569877270701956016123413684546133793515260664606624696647864652420131169509976399474604404860949654860801252971356800916825135159406725086142237529416262110166303452594618779905990525452085692785977258687868233730285916811732423491845884727845523358193403874277849857122137611322118964314028139319722697464195114681848314882658118639939622262980549805648855118832627823501184307459631623260556947981333342321705086047709961665515826404998331231985499441528250564425368605976766268991414610282891097092152445668956425669491133426970169946341076519713839343952174723439223172581963034538636451968735373961303285680050544429162196756294633911326877164125582012237401804758613707887615590394536264625691689265698148291720007123195528444286383435061590521229794608154572883440473580415309700476017396820987826958075564832703575714596662044205964664236952328568074443753753475564823872151859906670901799271507149022183366517872186355943812051644481554054480122393121603272083396065832546256655745675638341979509737034622388407192423270684914892915704902258578212272705325981686967785754046625378675117919809780987588212188552278771133140657226685637085228441387578292259864319287775490528603789915893706303976924544248292683527107498937099778156639110890468029348272142297763722169814242458421841546636095084639489942462734782538182124026639724300523043401857531525647508131855454687767745352893135244146380714176447921639290887630125177765372879542847694964428127353624258514180632347276858716659405192053524588766602173664663336866566987842300267442274274918326756873441274813678062926334272284080531492681644659616689803157633335573206905074011042608893370625637106438668512665408988129778585648611058178857849741283306757406676295137896643126006600375930870237554636356228601551631351107742842321905411494439615021326084725303043876355318532215260531380625266954441478678352355736475904518597338386986418575589747121897850398324409200922972063688917529232185834693597158454223193459474929551498838187147283051999136584003834994152564507344515714922700966863438155437219607322189484870344972861402136215861677185102289655520405829533418631832244572969281684819456143056709241015426781443669924049246424589206849625940755556566441792672694379778866224336919905900656857897349420239835329617964105486065391875332189522455793746939565174219323614271243584125721864505473603662275222065087354130807066877628150253170348602384919647532817133225943926253297120160334729896880129090662871408085354933114540039136534106130414724967671967037721903801956834086917377648316731325976336376014182079022323687550779097360145564266900437400460324251924823490556088237923825142440678080470431891999715566789143155912230471489172737939590463299777371894695157778219690756466985509844812820223782352262609738848615919365251758543076842835387954627807272626789943133260376390691748982998772614258968155423132650757807265970342342276520427937039569611485929461066433354472148089442878523338816972460646533199335596537770005595480076599214447514827485924207261431252679841739506634718771922424965979098408914549856633302989985713077575226434394926888129014809378403090582191466687912338077844701257752447380060149392052880523395442380561789304977738103332220185890953467036769601260889907470712316274281962828332659527944753573666467527115237494743774366153980041363216402824353266355198319529656335188885771645135712034251921293143925479183435381995525296103730221988770313920184332094755793405910982629394355723555528279321805899604794424056897877506528673013584622657844513900659321295666674577229875168181453601375814668986558364076435366742997180634712901419628412201350333751116282582663758234688439467946627884040893878915502346238053124689132287620156135345597872911615570697309647102824065767212309471419832612353992013764721441855810488352424235497110383737153319154310751204842132833179301542515709448333316017808829269155024407656558101129841690585339613077510977995297498123398447059374199038123227543251148959067987266172436680579740428156776123829245881194612679072935380691833146549898589895453254879254870188688908461574458992466775426140418691118072366110240624148180747070836339515255671172545851560786000286606108821856269246233147968942015362707580038844217209708050794880765221188498732083813360569636821921345367547494557992948652562655465594210898333465786563174022436829955479055466583054877561491922820423935747263149123734332938979379861067892115259856956913373390255069334013585297467849428492980024601243470319225338368833535958020765711268588283825062432952501626418911304171468352414632945104786398761361740740531693226073919679500589639035882600269303134507296343122280134304879670863442829776718695372511878190777835616306359712031425178141427205326595620417825307773030182896011694022936357334800334841722564708719451754191416586848200519652539981651589429965192327232605877974105126482649396723993319147451517069542814474608104906519411867424908468722580828385741805739378292978774942011209853482302337323523572739476985885534985536883596996856376924561407600527856568528475882026346106446418482792240134470378712533392894527204431884663181323193631655963068478525892545269432696731240199454390006705356026116048500291220780709390898081374904692157238379164956348479487644842851689550967988628810281621051438110723477995799957203909216524320229912740301618317778945593473095784943987739592757052831650173397532878257242959773598072354993352774725825279381711077800974331822421877406014250324720272989292719443161433326837493283938571123171490101472905834800679672560029794804786563484508192388372973182496360880251755547315339123462751110500864602826676434537287160968342272566137026451048563287558650491591510878908971097134388813726031855007687238281581961638913919639556131861635170193799724778121192421445361855448726090528711292307688829139428592796031795310652402092724221695605966623426368826037393896523492676906336224369485483687898132371002852668885598309380992682364483093179526243125798222918239903465629702172539204563026981620578929185551362144165033829947427744181531480024548048688872824196244452938548002539745105783554169501690841553690958508468710286401829463251053121040481306247440973711650423192438392400778153651830282994327535143759228147598119643880863003671999188529058171852880157840461818610067139762143070972835354897223506925021749717946661249638124234081516993779980896074720885264055859763151368719499325111725127740163376674923785533769812316126753422143038561886342479074276775594068998792550718903032502322366496465752773102421900527915038797447582744642935977917159276493074818442405695647711239577270081940753344214474589742555636317808363497067149862471275478355381369799575978970614171021559103425893467347966883185072421817322520083127131924333339691647114481251088228249808488195307003328996627672821823163242860413394126527202519985477720710425710644089653746759514338250358820189399797399007292314511586912984639213915580843808666495424709217269811925481563506650456812136739732199139323387390354392747664798766271104946464124199019154975508869697485369631649355226289213093532551615243658777633356189978353138614741577554645828678644442041710755449643236096150962137037242152047192654458660722130551828357273102814433009432002964012299045703333764213811546114139367030619730818848672953689889646948207715402134971067382768140949307311832955339278160941127191318580877223267555739078845320167245881331261235521131097194830336271254990150762459439095865594353368823457547913349949933173950423568234835340098446897812752541549762134479188840782965197360071578533819525100353951750599204311177251239391349483235212335808805883371715335261036885922634296978258756703834132886081744965271624561996600195110074492968379661804053644416845139524422560892878774205762458361155937170613841289405492828324167870127179283407904062817796396273107691529543189572835271992982705824879373408142596044251267985846760118491211062646426601911089922530253571623127465463477017210668301089551619009106912626219033386544876221217551069458024503313833586052715883833599868423993375923115874591698763280928530036131094917570259653817249646856484407753113699898313818471755674485552676687128062180753786846838456416624784320080254659332712581102754324364625156273699277464010164119399416928043664965129617951098954787519530859856225279111021392693321593612863668450526471896688387629135929764736309598176313180329629955511924146601950094671589414136013763324953484863972952371337868479853320575293258718165639446276560098371034407137030575817562155982480779069723681440051294673666650381029212342911813282652535997828652347110596105350074552564978779963147370359396266110519492899722091578424685249347363326546363014927416592125121899738611257490081602492376743593151131806418323860593126706319859268308761775745727129322560291949834198447355011583588011294002620265507593712255786724697791206749236879257495416677235580182825079783789234990816781392265510838215060890295582394834860045908878980680071552978199102885865544637289194888917586314232732688783980980858816656603845347491359086691631536257196048872430764615650898711220276701391951700863712696601815735997961783653829787870574040710413621989557211932954823517803033309737823897432592357792685721439795529814650550586296184592077573540932810586623527127265525924548273188330497457875877324896994396755455057879460246453565671100841707780004799511977284361672799275859813691213909621154486632727770052102747814958562737132210854367329625944922326757486477641761190293695805305209116343889435940890657140283729996121122749911112834912230129522835761359216841403577036603507994720764837734973897231637766584979618374695847934712708504164250715453703699752615618186230354492632036705180648197032866600358594902834531232084217198589133973655683094393978659621526951553401771589223880093931132967493284525676514323484874343744888310206610022668159496522715466651226500710519827584497804749238254778924819904416490918097880471415159995009245987189765467528858190542122013809730957435582765188536963273283441588947047774659789547260493799236829646289381363899139174945492371253259600478882148975668663066631521936391805505905264950084175648451853944938554055216046133265209087868245416298489167505591786488406217372964943749695272344821193276156577153109188428973947662254658781353478087721919302464882126488809542502943555077227474837371964820918483922038694787259261168331849660111365600773878223520303235156929527848498904168534216975410830338371962833930388837284215274374700239047527794643629863576655688272266458410429608118820965600933511090987380587549841116375662086210104692987366022915807777964791239879955161346974596945387617091322761883764240858447795616263378546274262211287975182894211172716760892033479994635163828216422897966310251929243383911172407046288404978795712833221814123046888002778784959298665793209327792719387002636342911425126733617555340937927705932653777949475301734233597794431209265557941215120126988495068809483688579578563601761475811335074540674957233077758140899986518896706193965327449226406569133831322023917236046075618856960743352533455883252828012240017992157034576781554365437874843554582199394152651124781034356786601606502478299142716312901771884700898958953975020786634634853845735265441123206560900339444110964441237946952941291184429835345409407261677945118427796668032063690852889533331681348858994448311853723860046244625705507051585770287235579560304428682328264499471307166987449252082568080389164106388690268504008311941178246360328749656350724754688264750924686982867546991922118706731455557353065144998112458277377483788261212595807132759538597690445678338982051446679902433112255766760998669399385444353591584137487678030293576675576624682131664886112534279932957749132495776134714268076435731608642262384173709517497102156833220999898236812874714409916317706302633363758946912753613220448171556034656726374366841497921262877663951689778079648484734445990326465561646769375696353501995847038147155201627546531237738568072424287171608473359710710418632172284603343822528636466566703412323314529911522004053865357558113209465444615432598570194496153964142406624570678835763248084867810697751947403193218609581990724297183892921379833908429728603766163973011913748819267822600564966535400809139829817750649157304975535194619741240862594302971781583812131018140983037958753469835941832896318898794575173662984954668519279535670106339996543710717149633134836897397945417499221749026734325682575467049731246261509577992162920561861428860741374707644295431755685293839322946614886930193775775163743375281676152755504669738132916141220308540549500501721548912608531987431136147557922772128284972811529305997484694786468403028574582831660129000444155258602782967489462944330099376687399880136215219760454829672810706599422296723143378701983242699387450741356610451780132938852538628355029123652243593673702947069109623174959472564316356274472769173415054462418132457671394608732103135445670767440844095245114844550761522251455367964408911121578602716829099976834814188223253444220988588245182023450526411951287071923591984933544443516806639404144525064544516946966466008490553422542911558250108494415846772583099271535169216614322838861683687624687458267597209706060884265717441084444986529337114744301940831203418394166968574610588427371683622215077452569114931688645877615363763645752059728022688556566578994653442358165649973319275917413902435505299494843212099170376823315225425696518233345093286717686104687993045840678284955823650498082793549006981729117117852375945673939979027245843383550284072223924173130323442199824717995064422010611898645378112582984668017277222484290047365793413124946505567097535841507957904275751972665471717826486455130077549266169670560556593845928035415128833135909688254826319548548661015141397782869392824164445285013250542601258373150440312821078422317765788922523333597811454163693944812467571958198391305277010171380052256871683406307105577101908199455981654879726450035077435479788646151978136137054996274325537558703968691625726166438714072705498380599322435962160157918852968950518425957795251693473523435967687076194262652201864036899974946997042082049793889299489651200793316301020235767479548397819340625281098223129726376740678646785051732036927393233384252842133109288121898706187546967690454620374758854568621170814701376481544803082564386553463507977180955582517155207030729823940641947467133417943360377591408855101862353092996198274715075119887066899625863235078478297808640221303417358282714441391467050394815127011476795557099685451499979660553874552961517010408896211364750220201154397281681602328456444255732871966588691967667472556032650960976457527293970526648929516694858167390918397761991089492124956395850884225852937601149929295433706312240743603636845504136556092438019118199152582133677934926615374776763122352522196696547255990415756511235521788795275295162809826805299379502789945975511102091506562979076249166334863689227708444012316610687784750395358808341255265433373634222384795179050789546174151599257110531433304788100522792454719580123125349273557474491347324740306900390831457653683284713956594488146022807784528835258437960283601315387869088897496718361080400044794979288359991657709195612367929613378704693664766457541730556105533132624575972782982268045071658109762059377370096396853605868305533299631110436180284506782509110350376798214266540107357552694383015284894115616827872632300939421846956515329267615644889584470154434711399208196499708523620540696712766756909102036069197804772532110419001573635453353467272684741096407174735584553892659291754657489528987652387772094998545446022635497987473312756291566400633450985836531695638731794716388284812457742071069820150282239531915682333321035917824793635391028854425237321757246745274559688933199216392101590878517594835619180454866371094631225077790037740369142523796399057467589472201062627038083833729273278426973313460361096345347092296299464325053493719215128414815254575921670948636653705690912391832092896392925462691515126400908680881459295330185490394117312907816639052929571721215348586679963576353062464775517418937835153415310395736208773504606746510205514645535221133872834210098786826607269185919562774039821881985497108744019413218894587104232128509789838599436063650812525996448115621199452656873631714503810887573553439255876020927926235026309113299690569091746929609644722170533301896518408519509629619733056155578848055341670883617574408623644807562003378734735349171363924699747798140522713571748733326409744226398865968634625277519550753735089174271468733242856757570080816879984022542184354565132131815447851942813469228248830916121898444416783550973653202657260960458961484665564451118090003368483806259570185675950855287746214276636148434684825287517497092349321282382252457655394446957818535578210834334258385300671368082911480273196058127969542135091851994287083228421741688576800276149223994906082290834562086659837847523460749384373616488534980670525738126998114742892878592842145292166996582614462175361615771419178475695562272586437662129852602123270132198593336403899723381719710947502418371962810384245824101195657603390235016871371194063496516319429758047915900199645023347017388813347946636741298423616625871139988170643057097910296433768857516777625983462605688762777472233418918052732096413928501353590860111562138493473844389163107566468920690833539882240287754523846075701223785073470766984407289173948337018449277152833892888452949968346717947619400951662273938236127733179310543392324234885917014548862432373616530369718073959271727250916062652308932769121981461336422239342854907448399485222387869870597637517697292459290432670259338259407647557723234112826040257633064899699275750408218156094838286925382890328536501253902650097777982063998196814175008462384177162762709925052519734346176141369135240276345048821827134653620059095104761052344801237766920887021768470609770726043611276382874542978413254475002079137033431765909004480982989693417657451945197695185050336639285177445748265515251662257225388606554767382187749146296999921685243134567195877177569177592294632890148622048346159481837252006025036309561510873893392045776778481430869460657734494217063437435758560215835469161676325230015482666996559413742653187707449383785529692132009023411941457515401678932755833740744383754244031568995575659731039577189427168922078252099257727575181023509036577646070334265886392154357336482688933762948783107642152156223357982411034318170331185651231577591373772115134938246499301237224089741827712416806281566741749988299912417219893325642838478383450860946299988919423152735474794275829689230441139011847234901390971531233312714817273842455578581636830886809784569118368521619796623070361738774145692501927604484481733265661312143059629314828145658628804386001056746624561476397999734286639603554392859588460515757481974283401762749689291879869213669323946397347685562224226285847326356949476773268422759910852469223025078270186327135231878584945348070120515212798173055356470967678388974100308016057414311062231124223306838722847281377156210195905508450445797111405425649836227788501430635252597542220900636429127865936824314139603363846672092441323448538617785165255289091664779927453484398288923641798747347478698616055596496024249132533173614295713913644777492158870527991600386229514066178882091351791979136602427762798411920005473783617466147481775639020179714782034691070206973697266818635311221179986370392282904671798259219369823444372407788720502567659513256509717797944567677109356272176002986567378840512998953253167831493368790403052116067855715215842736980463627592859149917346659377039830923064133975185625641750575577913204604704057889402474102860105189504999238724818499978058013055228952885024533409485479368836487717677133310056129581643647127780092672701001771292798239673566832986301021593216893223696653373423226022597734109131228832941204557493594259394394121384971249840856444431870458432828985998973668085382028356570699238062543154953919431597297944043396882031832492819740724192817767351595865793548024825883279408450073696873940298487896232446516438427626651493624470251273226190841688477115255682006698334243659333638807612132056085532352607630970844467065602927459526375552342616292069411531269383141255875374368874775522975781236355948493679599654200958780977886418872930617080498184195966546303579318552077957930767963049913061775156242852540580263171270173731121696381630440769305448895218971353659147166217585657214616174455963250115746816250145637369584119780496539212297811335154610823992150566849897176278061679445970261519899622992877314987476959454704788878217798351644821859927009021412159305273610413305149440516433945450304179431091355267423977741181569099997032145682753826022940270855208371113685098449455346928240014447404658346763578193988799123970773819140257654863412298533492366627000243014739239487742276246821147642811967334962179590898279239681792684048405369362168255676412767738579976627787804752719526023135577892741839639712056588701828758699279661602893421166121927762539848449399163495361500132449738046255962798539623873334625220537287323464532684758441046990502311479199640298878381122494452516161537077832068797998946253929008363255735035599068470199463734968976583454761464355937600915847511843340040812179737307597493337435135577738923115466264824922533956875255670214754734882735244187636890909155188741067652766822050597603484819387630130480827467695611659135901969589346283247039861226837244720502158327459751638018863198593671208811742585918016307068544590803948388481760982372611914046826327825631078103249589838492122148875049177862393573519065611551381185064110088512183483264626304513146271620245194206683353258186533655146704015781901508505474847586481315148812159274399951414257552414762227212314706546019872329791902960898851174472727691199928425127548608292081678798508625103656788066830286562873930274224790978940062394239333583921401700219908735557986582118341729685419650853612100147646777838387838240475469047628482912419113328877261560782091777564809698926545892571281182312894405516141996775926665434011438879915998399369936706745273638339892368986107998570747204280824987015482501374761504692859048029343767696722521231217595181225625911217572920818877496302164812017462317046857165155740798171914464816981998370771409209904196742955852083563036814558447898639498097215570587254316640454919539988958647401518582943026242493345289653110674087265231503415680875313919714047308174742043037294704287977156605591770196370733925823472049389217214682568772928697067169492646453763657084249717915276199103596088782667492546394801276635535025001280345502940421198121484350645774383336816172218334678237048234640746858957633783021573095308471049063188515821057173193719785305847680810513410814413775239160478969861683817858194910863855592134305788061607372809294273773567410254085913815926162525886506197417145101978343438479015959485950347299511426224959330522374756090439499313271011152936107264131787272259761714411222120361231015356394444960756300874592704477105638052448964254927656161363011745425393456987820589259533367008722879994827622786381074622015112259839814968892885465107527911760874499166243596726949881173962219559375369773723080144344826185311217629642048452149557155961908903852041072846149776295634971173505737480229583179617429454941988642589786326680209592377452654913699833868115066022995334520264129781208007978926316924336243786618826546961915991608587918127799586803745939236171590818348143978784113573769243957703707587608116354604001120770384224154132858638173352202631591279453494392310321361302970755834475904298593432011751587765394011704300366435991056283949927646825914598672676749760305116487916509721745246441655432196684957624126103179572527693500021110195943892286071965057971928899750082955643483887418948228276328173976239442634476943597019214469236924887174323634151254440358603147173578940905953532834283694293028841126779822561193918519658890877746464167430797525454195647578859504821795283181044364265850344652082852991774093617044252326207957767066040173557489572696954386579931759299113157353001754274527954835616500504834243684800249435665256506673908315457156146791063633660228460970572176885598142753281615750441395673009357169695925922127225764956661167186355941189204707322353149727413270155156470670111573439426231735570063993470939623624653351197277555094910708615859863488887712470599309763168350123810953735932362518621410542701653038081879718176131333054954880918110808620750333853230132215668390687129421373896025627775135065928258734837408828994114409606844255198145213158083220304574817876384852833441781462899633814822139743671121893503583661649732289156540012695171114402846059530597588213815016990608439461216736090832821811045243512082656976904811822294966686891566774212712939425681850422954535851374682409636901650965812025101379262240937416791324901979816450928543475824298090892503286761951719805008795058996701429647975493749059820169138738765098720577689094769489200699336467888614338099114347308398727421609111076995247331477840784051496044429599387798674223081451562892668596522855603220656594787255108029395274786117983800622114329949284643640542727259149078687485950069019601528240258438318799845878674189708207576252254872677219405185765938768407514307136492698983560634634935975236113327133451018741428714236912530572941696951493384255380251078185597593262004331683071770822469582080823824306403531800468532570641262780953346034461194198029627779625466244551167867098164419187566225479166942186221946668783407073223178269189523974445439187356309940322784141350667523735851454800289903074907384037590878975234978854914106483152599400769015864589817920894950055712034759650848854091334365713152314738228226719800368708909134664266482527086638562044507026821878379642621287832851478992858484619093876588381474982745158758885404106436442021974798317593684558892906459691599433872161117676468677512972815483469488224518964120757660133112989011663168882208908075715357423018412327471349475558584537225287577728812913888252970942394421022981186876300532880841266485054713226925740525173401826461445621832451789512246781330015993659281480074767916602734694962062278941271684639386013428120687565280783889106764236500853328713812251704797844727390163512879454083518685281683144353385901901646442645710621769921893801834234919317137544136435415202127295332886495378683652337544169798255726231978307506245347850532755458481036070510464871597866539913281342024705177293788042682191827475323204536841269560079503998264976933266541382742872738361476186191786064938251614296721814907573139094489421237328972358768915286565413513422197323791877751843951943965578849462460720872801339012348494535682759495531974105234350430698239809482137840098564028299209757708202543335024118128254419585310256501624080746318045254086139476971368269615952983690981799218408349968099999347810650637553871670322218925006819460384748916438594676846775191180312825894406467171403774923470362132804822143874822025030098637885453967359646182150247078332505351018371777399789097926223434050655212108599356119606159947369226786799866408487332550158884613509001095314761407139976265373631710376781959319104191305741358488180026348199831557966791110268095544556452761056381179184785304406757021187811923069597837701256285448577976126018273624814347476983511699247915438999699466498951023792141552278757647221777067268225878278619503751612816124842082531156141458886554257359925455826381021893511746391263916455685120617311616879468611212456063243844716520813562067942456877292404905817771327869059738865945555794114647313954374753998222781093504278507782685697366377339197858533570979966922681336507569424758365775699852542109895099682843503972248535500342828673411131029670319564767367365272102006352207382526499880347259399999273047190735173760038140603338291719288496762552057195936043456947558412428730263874961235486966563378533699834693174881689681192055642932312185987819544293477327095981106268751601395648695916642773871953401793577932719774177918072958936016635598704421363854173173306733556537749577543869693034319594338622879693421859264818769414730443780969333942340593134483229021389971883253829374473281028498244511969731247598641126355661704132549504519558371015558545294017186116632396296913291621876515797872346350437879741735960468982896844377117536715488061492061906358470766449713187561133242479359307190584363762245425184281393858851536349925484871334148567461396376823895206764882334618923323747175758355495941943653687841296350932259506659968385039510837393475139424921312748621746446556184766789359649129478138658718622551431645473334189987833650894878316578530975467995281610842525633618787390461713919534735396125347986178453300575426877381756776873996161347738048292176037965780467413698753014513563255006700046067862032173505426374264578991123998475924965187256979635162343294401027748550477221763804827988589335258213801571617795976899079778640914429556610982216382388251737561726648335362246516041298166928330569297612029659891663452474504344841729747365602553785216478491477246626373696975672935315656086312838931360440732649523422935128549557515947316754953115620168986876495245162851910047575423477225552324442202869326878710037300576767622963898795337535989008848054952744713280489821688488888276892363640301159073869890466029429252496828618981938635671534062103639833572572089600925850161097317735259966890467146347498277613932836401134896001769811057621692720743738824572034254147428922729250775322884669681639030462901967683299718373603836732763128892165448252739796218778060143352828256032516183254327551913591312054426190327956510752206927548213334317621641926169358077479151674637834689687887244160862225827377534129824037819213484002797926796756803189945783586755291584028871190478583084106694582765083949750797679722585081065129232056131540114428407015349922280024255293706388926958398472848583690535964044589330476431978591046480819797133077617769211592385622924445464574495725754709459688030968109498504474358327133866637472988405007922178464306264872428281953959476942993891718364840896219795751644187797451559167814822571487512501507378904475478283328586907673387469962451964288420399932531266322429186946811708522619496350667285846498510654582677540650996986335236800388617401586944193369823234450229186261524932966062699731144645774139363772119076726958235885673949912209497051325480217743941867948399720793098376894891363328972591749280302493349816222163722473791807625660585907655482853000408732445156257754318712490173876236898693892618393382706974893943307683318875427116398024793776138874313475669410117793321835421336405217821216962612919643096174428930147067984707069414108283194762097057596374104341296128631703246108379494110270700242503926590353011112154344812279728762030785600580451620522329570663884133130260837033807880585353539221243030693027133869808393182788621206225899789618863996366895149728743341512782182407773756436055201529668786554321348727597098580713582853754909907322898242971676056936931452747521017707947046415791806714293170231093586960023974298002275050909997037568061709687205140041284211219650419181920026818245634217547721669329187864919954420330355933096958755247477562586398709141243757949826691977665669975975497183308053182149940759084929771216565227087911805218281529254448570927143031058231109317901997024706622056274830329329502896291530740004641518804044292659938521247153367644145725784162201145355651616677827083748191698749799665137068464140901178151965646569011822240973719591463977491915209963169777760907078890452294976099225163098354419864474220163184884925484013814378886669539583403600091180966117450157325605315927027234450949037961088418956281335841819233918837697989322677227007932284052866619958592347606052977764499478828244273898683997398271214211176234320606623547104772833601936028596383183401005775364932556567935505097942828441441468791379138368292713454004259949105737892048371166163532343754279215599481653055464651851730335338828590326618118996404022023164237098636978255399049091403572485486510902107728446920573716162288589114940341286442156877681736240902399286716100896039493906438114224047133530671716840064606081535831658425755152286741386165740492952974838925317783263332281710334201223019470599500269785969525176619105680331631563431377191225671439220222235058161931112932654897458968492258244901811842082943392885628722501779572257285265136630378035016233086054110998756017200439083642554366197424241967805743266291537980882167760294845919644572414204638514098725085416522281347708784569689287426523180376263277916169166609774214673128773394924640989003090655515208793879222884773085538473773511537637015232239088937978093039739610893795174203597115509395263392331588146168247594784279989516019653876593344284350058013762282972183216676583924030804320518817308131292867332851617493830631904275485470318523386763724485428861114874887260407987949201178812577910959811552216641791715325793971941791211469659982874873016330462549144345792913176967193610533182127486242696807606851061084234524641305543263392605133512458615131752648362920442763520643066776511559397667628747469563833693012254121565733969195234164542449241599713376430647399890696019408602534223645287553461325609435663656482293107496828049189053434897771185022015980070028331858544485366132379367652601654645735540750739431357161057802535286256294131632088443859870069320914606066372325500152430640123938146826383667508338857648472450082400263908709611717752342703947004388157401043362326025685649168610217130774687177280251204948462366509299546573041177178958628793988003349654108627131246769313502687497626920356519098946481816875462941484742878165427885422694907013510264530799664343812555461789382107918400312017692683274853554287013159952716041182886524606973486827803738251623476766896889726687968138719433996088374327166263532331187793065722365574012358338538346265806914938544354958586119363908459749672797708737163652993729853372573277931209459297838958997854476253491405705345061227362656431206166127200640242296861303952084639898122473377219752084799735877469480781642214697186744948201029595059153425920469885288442711669735178255203284144828139357574895904384761498355828266657082574537193787393592635897695821540103526248589042502733769127949521692048735621712664491095781863737995967880170567456320845929166042413329467953734390621276758719480675749356485988119376150336058927306092674516459812517991886630532272410041041214129966522588289865881232890472308378387699044235115851107080987858818263746153821231262659395570624779827363751595469131948107205885787789222847921179256759128664512649746048197318659869968939291875689494507138868254936686526902036125146852247574924828082498983213204151883128385093892406716454846200305535344181424133537455722859222402499357373043287599976904879251662406493095432389123094605357752142615977462808488809204414516701581379316326592231573321920462623414329730218341183023921391733208993638990634593470173778949117975344782865220190374820376620292425623031428354005426483316627496440679438236124681024789738412231295906867403811535869492794050597181148195278820416609354892998012771068755618272726682669707677612898569995557118287197492625947274153619946068817133233957696836999861479944239321014177590276405245205248121725331385416370939952636692718669141768109667262937193346857789944139293693013311634969741444368528651212725193391175070551575534024972371767564171523011902212888301229833338917093704839653937313531615567828452114617222583522104149762405169847229708631861232475328885456429329362142386557495173363648702013651937033993405633919793416391363962220222165416086956225173477893669384664473225543249351724996431816775459074767741317631405960904703735755815268827324791798610794558915912877756156185826912308224037579832111254523941092647144374194168628142113478945195552946886650451834776108498847051372315172964261583908552420762889337187658966239854142751166909432659297528847726174256853515690618945679924035065068609557747186273290253376694408445711199180706990557714317362502995475473157390580952858588186491765576256679672084960318847662263117608097967779862119065839765930782622296937220989079644914503169023840137196475452446956929136003564067327419904767707492819450183576294467738168439242795780326711515890240231105655635777550354620133157479521787257415238486662840940467549758142063313443178193565170654220559044167505225945402457713213996467476605918259796519624273166261981167054916428087362319267998348791198774254839284164548338235577136763188647864398039590483214393660638093446074771987550402387778413630417346888015241810295479373119812924808722881692935291036188163472857538095769253624948752617467983060643592418130142846144523289907168561275817804314457575543134572029313475917212377623912391849071618375968949863468194965535816381763712166460682682756897982511206595605002143430561994127090280129955872051925425238485734090319702821092277481347808488489179582225426402684529211048150832923646163611222264806939189668132153211605882955398716892438427010967295653395107249746839484537115894377407867378814787833759178313115142275780260944094459590324814578092439402499997170353039553494954503513366813103288605480798636969252402561368511419913743743575459108096251657750330058917467882035779103478211362856625136334768497868904083666637218394319156826861414817638339353123402967616516576008896383264445635484945710863046373076568445845474828319366986544691276921416591770017900581476765995058599440226717205583881209726616352064859383796569885637903581797783317862685369716764066424334519765586238793171536496118616125782524444881688895094265984428318739876920269436474722912687097900267485546046686714472420377463197874738003942889770279198575037053885197975876189689156301888739425962048558061660751090631540446737821319462417234684282878167054939978357536033150118542075897032915168961292404571473526656175164943375670969800783865987372889564890469648799755947660653593270426879580310965963750129561271785021252518241263617785677620835161911261346789845577902019783158302925943630910761398345029758088864892314468964464403702651519836085461663299897378204384712545419507314423417627341839125983187643315254983466609367887424838562192954875996280019435385575563632290761394936474994809885699399673186740633723075063015250631517950576856956650198616188612357588455555786337969209695628150144357418933553029591503533533161299168561376598327160009343141323464428702478985812518163136349679537287589231639298960294368562471351492374211523681274862630851664633327395936639982749283787561771464480353499004626015086703963498681556138797572065665376119535722357984853248596815663669593737102589034424281412164092983685425970526079271480971582139052999184289147784592553694549566940535792078453263549038016883918597379901467187646348214171569553196760347296322469110538493614777136259728486976957368369323233795512170679832439122725891438243503822856646741527653534890795538194186408580867590699296257338428731672216896145466085115650899687745529472249137525326343221557087469186476349320976818070039649911792528366958359367723339105307640939487742681367332987257422539557424603736974046749098668315228392035804453752338654070650711386257707667519395866045287758539164308334977457807849158698046151915764403969819822826198181417799783520114768666107167834517512778894430372579441373270922675026105216610923786871889300917843895814748381237563016253320448046092799969734289221944302913023595029700846925194517420692717402042100223376891423060121895715855730910822942732693459692048189085340998583992391695150370654320648166912617627563271942179184414768818289263174820664098679608763939611526942878876532372500652466014614454728007766450516178783074381119677622809729261103319726321198188845367471777858799409128890879406732892234182988065657161037557629032845417212045067124674856925898345429863250448393621032977841667457214638498768035293517311854176400362909371413434538294805595228824529671688478289344230658545878341664649977597789160192555466334206328386890746318986120161086362975706095959770486575664513902969777517310086285664363614844797049615742944113731727963568104618027411339275928231078578403476192085289507824476991047749425449313599112481890484764636168663985618410073623151055744749813538276016041604611755833153191397809011874385664875528505432106123328316474164868664649981256695168089321810837872909828585428221996033957354636980740665423067794234279172316034829429839335610421837923091275606569706906274811284852515831661736419274874147442751936499244437235903113111306090099482485074432043491345323211547274847691933707408173519039854643482550931026645706491817145034719485113724471318611005888649987681631140793523767791268153961132345270225552149688387244739515251624470593120425077391546807593608764008986561268345493779297967357914872069304663497624960216283531598446126168815525971135603467510561186191388666444782492349242513483997236132353596519156139053452712232382323731309538611066007962935194376635723961706929059264559315230810650369368068629399017032056121677851148279405225192484946200493142761787404602198766725874549148498606661096674650341171820433475644275244262922848156026694472200806628400156415530208835916160588777788813795525195566476013760823378146406560482317744129949332867814015416130057911259256398243591566780554499246625949323463660543913163958872478292652711213029044064436328386974908439076253970304699962451028327841219821485733667906984742946865197230615060914744828087376177678522383266913362670043623588320624714031688475421982673693035102908469234683979790849957363103645189578861987762368446225466668661692880191928795809840055157074920716908349873638868967619662940594704730734360921306229995762725819801065938931972524643380581339636458976980674997610831785731650790786424439782292246995772619927842454441988788863615684152132322945884218360221764414031201581722739599995122911408998619529298954044465676473476885699583175337937885736049472631256681275696065489143000428398650296698559008157963032408343144246229863466405791945982336627540393424591094736562766816031188909796184689964683865213346150576278494175911631952800965476869456771410418442135143945854683385247869201055150484525295396116971994765668319853995130685590365207342269108484263067229326768596937876912170336638363634949092028475407571548989863955305476110848251156956385934601628467064774273394831436365788589997618856915439492301109251394712234172118271387167974551080985919034273278640956869457232130584953283142924261734810501735563184312753424047178815486954698871945399699434853749763371412055123823369258911319397056847258260156363341088642138705285656104396887500413406398894029778446227868767842989215825776837623494789004294774107759932620216865864254360027455426831032794397288504157873835279316784080707331547700962770425467508789536714616446351715251529570704843035810137336023685451146736702383168843972451179510902840971633247745788238849559351483075242584511237524264101313761932454663322952242119846417692214289961770538460643503831281888771234668209281960610356549197094604999088800136220244494874062806537435975577871679793865213936961654496116576355828827422053378224936586608022301373235392317165848862268271137850229922923186288901783805873319974653665420838253088446329749712896702612627869955311783937593540819113736385569637716241915983379633655787712088776782069183350436853264349719274284029801512198668832655145334818511104420300867349922299749784879231233210210700501474190664839101734935724726340499206747515267533235234985415947337518765860988723190725589490864856143132320705593374880378001898161154512991858465103138124549006632573552645435257892752547286018352434433389664313295555038043767393706023355791599030343006873322612423058340685971914531987916975484229276445711411818491061310101537328366967934864575706618738411870556798551730400166028297487435981407611837888935590510034286964070034984901911319141594132580291285851320549308302513561237097816787313275864830878681391484252561861090562661531721391476165077692709378832045455188102619027330050109553195883953599323301594977869343599621656728396025096758393189102954784352827002644677016262763490986131357173667389967926139045956598916828367721501066472573827242891531738367587544485673523885172411565040703766145362998687798492699204036344913101309198926065360183197944764508601773727999367915267582417080404612455451694644622105187185863807459742874695442748978949596548581203115325398270264595924221378369876499382222199556055248015684219015292917108896693608709169680676751475543796586344036660183826775272221522502293446340345813475228936393237805184524916435750858239257298636021362928323896388081479339187475359714312493467682231529602648913797302284814299873169412330054172361646163177731561777236163359718583090182160838363878824942422509395551224167749578957409449062043417664755156939252016134299209891598713728023607564399108075229862238982090082916143605351543374957040513053811121152252997263327892612128545999044726479899562217048377107886322858162657867963583972497320153819637267838657297841636126458156198650695862319198834173197731243078605247226058121421681799758017139548703157765305525001353766721836898389766901480286083684432922739736789174540709301185036946457941847958866048562758755710169020346902282747664225683988376036233590321309407430826211229181529535407863190359890523431991738321467632691537630255029003293388598044839770079740964501561816883689947219842907534044128778114527342625410694916249281829988921433872630442759885100562446623827542558245581473829638544996846257641111774643389849947710455483238574842832719607685854938897536829854504775452355487358525468130533852738471821371502196003624492511379444384560817806598166333120695116260562387746292720442950376026527863871691453964142834306207199360831346201206354219232761396984619912057782557779914110985776919097172199545482162188362067958661787361134674213163447956255724983255516027482715111815497302941246459074033777821228287120821263570221069866147610148432066785184218537412765939219986422897068587203653646423484573778161334776757365224994716384524126164235444535780878847946665899464593219915800732183131220860911030976429722626958818937273852365282423632314425327689186455434723439663845954445396995179297765282893277927484791517831502675424178858049353714057136125479675738480275958432177672527638233757822438524622290753642456910264997252633723854170401964099690481642612229152388522422970903191919238240066221655929616398047378311442641318523135210797639170755571443506647481226392149533040313771269928799027428654068202916509677539179759611702978212131830755914374269279285321093851321599514449268032688998839857813631377898068402213444492997464505476274632845015554756516734124039532848117053819432551357447621168486263567218983636273988198480536972137704615754275923001709227248309602875281426275491042280885074947746784470599611183437928845366313616502099135267528164755506872429901564163329228115973574452637359095861654273171974454909396062860425511718814568998887684897133023839758482704631901875445570515131737327479015920181091254329124124873103872866483825451461698157689684056711949681743049405740109171135888087153118869290271110743296092268575684141607746900956276130869300579589452445105157381296154524050929019401543090233289658733880347687263064311956837852408023695715654964106585179051517496437325703181126166306788426863534525006780817387767750243586621823551099268358719247627786584723378112869461845049166787688296109697387301331641482452244744214259060506370541784095896479993312897753995079519766932836993172181268770162372307922328658402811189903901394193711673984678273395716982590297582724428721236644641288651978933503880795474137774385560913882049235057860998859713074355238570936847562336089753821754557202145407525384866728725169064061130444841595111923115309488257246610825390320880908722081717012631723493128868103285983734406643518154034958124262904393871633052891478431815478555086020225305694649915930174422932916589942924959396770784707869492400375363904961915750847138672118873446654474223664197564555421138321696359147580357793685621451409855675066380251452484108999237636520238597955491282931128428182610768432358956271712342568745376715420510928839485124981441986472659526083466988949396176030976867866819743227094854723571846896650978419575450247511726221513445818839210091191374452413688633354399625930261904227073251729852700442695372483535839321518652718784088649289268709946985037664671943380471137763245020079052213882047871522209714801451707318913983280694110463435780739580592944602445596156128399180860772980147991268612540136785668216581167722575789177372196392556895743043819493458349926100545123972725575945344191416101083568820809575624255832296027298536475998852642111288182787828729775534238373640740184945750424401185755476252906573503397884879428813831707079513115952109130664154573678786486185605903699599195504433843381798237003087566324952915225999541122635444250063556589582178252577019016820294761189887969414852474267387989853522667414962650268022373505380536546169455682265980937482718835504526298232369890454024486667490639630487495793467345829988618198438633315529756642745808589181460195697685568304134734372850451886248228615220954674146016322984421609320923620655080443941690441026453473853161392663453743538496595472159861203743333068929902247634830116429139757048091576429188253455649825531349054774474874420456597632080389631718863447893896635947889382465803138364799227666414227135235368083369336335299395617456244023273783986363385156861009133071418693470746839128398837370949433410241545645959701256037029676591871178842677332256512455137807665625794269691264863132862645370128018276607359064057353193112661824197734844006409647108853863684917445192721049623746285452843255836864323745868208151437975743310277688909110729878243751660995047166618276367517139869519655726273214971972316191809261765696271330697728156781335375762161735521249952440528738509193558682299387288590858699022443826947239636432424649184045729761360574718364514988131162241087317985518257344503585270470581729205360844573363999462721014241138655989239976954136899261765184265988522512305256100188838430053123710291219388632469707251079646748602673989765722199489898729164699431928133120479282219478127847882391601615525198842089889798373631941919572213251355893707811387822882988324352565388680189676748669050625231633336654160517797666913500529130319477338493907069733199914950198276476078474445872259746178734475004142063409839158613698350921787818518048653855934763045774279355110057721017313483137187836021221202822372906246372961812846920982413828713441041045277716779845718992241800757093855668825835513917110838121081014216592406582797185959394977657364028991897168890746736141166846756317813603454841765997537218944952862817116081060888567657038970772417259845032614199275153500183758482433894633985343584575175268549101790684864890562903658992461943052970877230247226119581350303379775338836649189127248135729144466503928034884594664345350127088132473338248674277349983834239003917477926029759873354417314421614882481846337659780424382666031524289350027468827977941233402199247841032117466235357113493303756769249065502697624669279616611134525522257760957679584674469241034502750433814925700647919501999958800531369299520991825335124563695919321795875354180904332233981894789505668960411509154519002706061175876586477688290721375570442640483349325467227937966387525693339767940626239651026121510832550503196746196484804193179148615107139671139721224882674226565262900277219318943831086428679449473219257660900237045252836191067203217250292971100436661749775603857002579658941737696667838648756227578457222116567161826321583549828174754055314125383179705224504562488127413454490572563398727987638634942033948963655508969583817996226937764623908724366254568027323161852524897532332274923362548648341093846833886905450716088584130787266063549476395696188249310633297956140093527623357971142844026730017114371786432440854551082852984971280654352824371235521289431209093577588683596989222900152193911952425995724756106357963225778469288061832500157785829223214683362333015523326885780930105796837364223870493099155878852000458258871615611973931914387334311073443374828535843766724646029738311770437357537723027221449841257175176870654874130272273374594041642051416378105660775694722424413723734497731779443531767324876948342424599512746557392792642952396327324438127795322464340347788702802046784640862219954761945820129392043026326341685893776838569663525857240943951997104828499267107410226208882193395939724780865860705693053887888774229421237695516767631325340148492879815986097835142964807169682533204462777949684537006435494895027250488457574272959750134957506688891308644156985250786530502096133165789423628780604713191578924328457904391391291970075707491357345539521265926509563927342770883417402661330508729271748930925675451716922469592423234008663525482897055818693303111857335031126633395480413719979754294168630626987416684332196543987122018827609942404345669384047093315484332129708177942663574214077852603933207509045099694424230767745408719556676263423149825910672791128896855855834445312372856608910901881537980140047680936255997893774487372381588480896969445118250947235586273245912827503780906855433231566362878906361768321234822969624165104294801926563706480842064283488406562670388250565493966147205741909757198305480331263941305517995590842257774901108931212507149484772774795957961393033618118219177285618542116794352426621926850229299334714988953727540676338813526368727146293088416985939551056524971459694584687350673311358909290027150498137627807576789861980983203229888086415969774533552558078963839398746511063880170104713312326908860931138957695768869633497115549754071799133248483288240395897945453054986911251989343997787485593392931631253888981886090281026270782617957901592778902243823713053129867165219834743362194254644871328406836455633555979418094898453107273819937913921162764636248360039352366785028208867691200746187870596820291552830009569445169549712438747864285434541228068296625169736134142364306178544317461675385884930654486826250741568367115910226797914867449738621590876798339588452892728273238762629004658319644829325866018370229099711649788448885156755514654815536379565041491209739733525341674679702660015825698719921672636674676478409289045184309512768728419702493075345141304727837539594752781700991091172031359838227805491203271297909313257867046388942371130328590362778549796258273791279340389720798358327428367814418321815118132102933110829931881243674670818552739757675738929028075720119318069267426265451027626890629474534942796680350688512054277783783121944292404178810343333636471183857783820437713187794594747432792207576984485634892493933762869019185055481845135665705695481962493345923614202770803355167329062621431491054163590413937490146467562128847011181541379167464330114294248017645929386239637830985851936836753634327516420081341388599592065922125644179446804347811618682203531089776973866929573356894076503607179105869633048386478044843675832426703737026379775379445342898321519788935955333739161771078392695343662020580374442629436146885208992905889003768788362486762547693186491556144901725439363348768983419861575177515346190249727579234760772029490337021798781593611519942974410631031660541616180311050533367600894871432890317753533864321682658553722209936063682041822920941438382755094472950630254200791690521531073329429734344342651612800295401442335673055849778192708759246139021805154748891096918528758347579198706300087554411866630944779907518347103289950197217459307791426344972701291643979532993822598413430975760794569176164413770389562174576644604747681525910234506330552322466952146973305413347637593826932865226365531661154821803151158084777441289788527967926482800457715112684692153804809221523381873918204513996748675336137842312573764968429317361195964452391225583712682423867292698795546944010587286458418792160829284072118181855933183863388411596245128739801289040307706029306718594221405587155785709332837032839885368088845827842387152152354494728299161994851763715335463438551749875612376174382645515530334629778936505001622925504187465079655440716998538138279982999683925799171221865128810192218661594377770119575573543427986937506918408563694799122048480789337895997742973351164761712756241315436838161764831928469386317956747690340353627631717475533126227926806951768322215258949744792025419545649598467232446173579286073516094090530820814896890296713878007373455457335659852278918132136379956584824834468824152537065757726195299805520188868810351836154271058016543329924560810319988214542576427926387661511788491564431584597237168227786762281429816420618403772553531158376787222768177589809335654163821479276959990821286056322215173815266786656827895007292805820446382445271849449608992236295117420850448990467727967973251654083724979814381587400317111994590605941451023608964098576101578088712637841510350205613813356726792605480205353332135248102358702616241439795567972697633142931109583374902306404538247364899546577778124373172221355696128444423784679729832914856221879669325667491707364492852845919737938593901949335887266918694440188884513717022536344922161893941302294951462539184623265458405112451874263415422728887995803511117430289366361366335277156250633517367553399848018662587315000973212077222868361276641719666386915639792549990457802815128426426926984264130340039417602785545015779195196355126633114089640978781021868375045786961970587125749474490792532476824468281136447166401199496742767035273228765678204720586738526713201891674766358409335667355178334669737539827845006473420929066117655344574618621862348126476183794150625286541039441250068413724984376521988112640816465375674048470067191257618544255494547266786499186921126321807358756908958490630312941814796367364904715831803808498688581441485100295352380632028239652175222241403693978314162141966580482338292435824749646567981709582879474975223270962275806423698207592882333370732732542428826833997892172579533389306437232661328949725159329655646599909285468669589794347625698116792136029694811363078533877622372549480185581368511972252584746054627611760675268257985098772212663505158872735521588269218291616161983652347368827796220223492445416842584313712549969962495557097682980636182017159426874504124668681523457600355622712445197681863693011241290222728036952680855494975723920567505801420434614336149407253725694331375873501814524297814812685427382938166714877274396859188040498665410577314192077344344883696428432066634991220630110569957933095707209668075281832679601886258023338460819833899588699539657923520445479595766975652388802882612662234005786014643501262553191833071217988793349253977072877205866518962156215704966628368262645311095220706749440922368752510281904358241058623420624998351820953703504442070523126051347982721050627633721776185552116185974469348965326514917826792366950359054424474135285490475533871357505749738721886602698226722294026732758165383738540982296472478474692287393641107357934335541057313877626308543810775024191499729802765573227424933522098528190424375554869581908569675521673574739716511258925452079989286202891060329179422011556884701393668200188714141299151562183541585549117564048594334501182172405573551333571314699154527023675287619552902296335584413573108121095776119034713360988454293373380625921335059413175033211434238948626324912812193628263119470731314356241376382294617169965934058494733731543034772541717422374285640822090261966910930547382621355631518749058253284480309046480336822681151196593615377344099548996620294960821607779535359451970178560034314888993059036357226285404763999934423663769726156863326114734102575674377955575804889932696809286227577183967896539744373478901809684236941996979128528932405244920622607350969730622913051629939401974619784061421155597712870598702585605814459725139436238927424996262725047421769010633789619271520299435779086842400253221055703444326312111006442589764655253180752439585849089064963706247428055812700417866993793649167922692224868129810631941777818632585110293943431568498849263673510226339783718301011237668538201774609141949261483262763753683457132335929691238044357231754824395354647356262816765950857375828506248150294251306463529881135837062682533263797256845703477042657614936287504928430372602106775504754912968423755978518886588416689824415470587890319508775824675008476183295824315573713967123136920132447860239978946733461624913964908454204167131405324098198278145655365823180529714312447794506263027456101769650452028304119314881938282394925449937343497379324346586618261166879642286689699535367778200111427391287735758435411799849567504295247715984349290335308909033964999879652438126427091364446752851045711426086872724471465305372542579202080344163022014422851128512220239964920912024089264852907115355051524293359552796990071658552107119619262303896439930213400285457670457313267461020665287862595977458862364075603562168393307337160566149847236349582446882366892368182692256337481894461455640968058251198970624356697187087191522234544315934677552797658561181869640686479986979180298044632822970219681379420604348933859925545196778308734156989634067497492701252426823149095041138752314370780588622626185724448390377109960602372896051583772611273875760826462582124850501743166730384292801192263683812465605977408450773399996453958667180218306500763082259412165816217729445959529877867276469926152853032478444731798329237814988943243754714445179316801056283362253748174133324987234456770019628272078761393995518434515366018856952393846211137074451658411761345888603616153952355560175034680445470458016675759851415038250442101001146230180874978172655173473203991254679855986815441045144898418036651795853845901285211366445347528883640252764152993321248723373644188852518649560742784267525984217816022129331999594668785711552147980132391801596635469419674126685217135084814511975527739338029884215071774598603306112849036289459703314759433798540401028772489940386021358186377903091879755181739341793426589248814224429196234049830758856389773601635838033628159617747741680252266045125325853858557528242429298466641797024668024477700457795190718530721991979293277827894462352502732421180932997367924907954158667048751240785340526348280410890062247943398499998881051284448894905308958501034881723698493674777719783685337010416001593026192387941342020644678906894133718136094441735770665493331089838887240744754783847225113846424244248570666108797058815342853932467155976975975387588903242954429889525174257719196243358926458470330370962860719396140757744693023541504163198737176160438929828964931944186277854760548345267618548726881065795134622664252930450897659249638217224264271674184663008191823767387422232301678829594079026800177819883319677345836494268884284117383131286251734420787042746217577609864222770770778899937196231266467041528035639237327989918818347641831573344843856611771917755373793252087321411570287215585196557336675934908652459952747335916102112058136941613313582149762208261886405425849967566419878618301279667162633118608754893449614650462229474772418863972483556560202646031186924244872715048514599038400563241695405100173530751382170479137946137640259669838507239471096484306633755971853491221616250702724798174942736528955999617857049798452336728202531768797396971423629294577435529831937969724347175095466147169369175573864006025278390482364431949352780902146895861370860756507998236568210399178139481773845859420985851860088577566039777030341891174368864409542825977244946869968136547577896982010878112669957294523596498538518416703547802196853489224595226030692126103691886904602519480252004184538993930208419255373535055474251124413549817351178989123653812076113942974246762731469492626443271582064757503437035254464354925659765794084969042791080249997834148488234693162880317933862293643194547970807639781429948765715621219096029706904450261894537019756753762319468744129675299833811462552591082393340661923495256735966345458937017710054701616860204447602133338319474667234694548529142292150527947733336154599023095380740217613497800286185338214381892551847460596144393785428561325156985133641218633281893363400101207633958855170623548965129131663268626501363079748761464667882178021736226793323163330187535162478274066137686574656959267355311821662710877569514312266077897147456051415446911838334185555860588220419331657899172881888488719598340823879349702211827647753969791731437711409544377970964719314421350742136127025332520135013783902347010585746601652555537120532043187552114335642584467482146878864546422329298501623718507386703448841858460060662051427539839526598679566437869388479250628637656219747712747188561980603254594526083824106225383994382158282668129945445923688313364739792015720605710957575471201037928716974821500321429036626131895827651961766969379259895922641708507193516137102985301167016595139510930736387384237555912505185942841413472315972929512946468689609018131027112319295086555127624046751727372768242403294688277271878744381454076576937791160173108202491856601638025874028739590182321101572940003372054390521820759847034625433960584171673342267937701983931216937126048361251983629628975667741986481146006480524309738107413631006010153433479151653287274600073291446495475868593650522558925210429007245487363669761430560952146775713840218106831366839820742514244922862395025191616772343740344480703886272993025623053469851601945975332924769636921544225282251442279405671872777023477432219745394196659589104648583831889157143260494727178286586278914983627191556129273044058832078043765348735644023747578813713908543044234188458861494177919428321103618299044819642325358114567665106413864033260249029563571249909735887871433868341371472646429604389794012103567193838831355409733604441302705393897460943008953340468871539557883101669450457348282815437661793916083221979293881137225901398988434826172701467883612573070569991470167540155274054376324105579853202909808115940219766271575152181424748584948879172581756697713367916484607655017429343972832670448235417418213140833590187102769851095328984252769461861828629024463427972825594287382134347304422187162367117689829659244867827133201553166594856873751794297475241845616022662653675871416216110651367934260314844738327678350216429054826611406580084543331947643281383791843228206963369734837746214607248383287919431484168410898444219600365259648105263563153891921824299138702358232881582416533194445162468243393216948887634609524739124869310292353338445294740583620048146523271560025265463595441878383029947344396422508494935480603896120516394277052493438245311229416973777127140991796439382470722253993927983393977259751153349674684159211277974489041465472214533734811608195272967055410096558088663339567733361366538736425114034313544854260118602466295311844696936920539851313625883560623291085345792849876916326415241536712986144281828599836888223072300401495944012801361923653495795821623519516756652222476157107492777033854822600406520474536284561117233129044168886742756344712035413842950987496546987338917559496278004686747936915848772030638592599813097963326433675817587187844909749259419242621415461784260932631517852221299041276567364521076966421607433455069669632930543294544041363957343525315729163436262728475903776479237423184827913466776387932761218734689972720235291934014543710420819975878290258196106342638527369491790266534782292219910493584536114147488501938218018113755000731244974048978258928360468460456623894178121658529297394136190777696384338032747860953168170641141276655567788274211455798060588071273949537066271285928318420911334558139794599563126774847777762508962009882849538121133450835406368375745209732980508618226959427017758143212258021886032066850726539325189097775768007296741697722278671035399770872053027321235925905766936601487104661127359313025374158672360627580211424766084702850803433742621858135436935893403536255649850627408669384917713991563531867861162814980125041547017884114188988224125116874922964806419892792257684247727278692686954306926188938293116536282258522347371078680638948738646093154958297096106421912571663175311472188432796079851206920005626166806271013899884121327442209956102612475441494975557225978438070334831891448168111949565636505250485509452356249883376587454423211494868315396309573842564323238759655102513854727564195361959663138357065846585699364545646335837095248527581516922171514785571146231853844089848521513709149557510943908619824233335473722246241577701934357461327827910230252925221454442506253528912476514606149129837654861056902609357316518143566149002166880392523042718765001716539158632188466782064158784811705533143704981537291975765815427742692439040383127628050462415889817765236967766002715808196195613522116890397406575142958782358266032446384710354663886243335278023418963502831255996673720801157480986042231547841103772855780551133161258374526472445976980473577323122836821006485329854428480918702573677331743541321523730727648508563090814169675127004530897666921037537172395095631762982019119897967326070653535273781631022247197685311240958028523459385922047113480406528745568875612939628310645998019391345648967814551677252311306680271533489007276421504127311893586731152197236119553923887396978546444661856821466583685172631829574556788873926123654052827115394754133519682068415206925072828609722335367635509166387439166957173755359237680935512884679621671870049127827958731924045329103581275532635441899712969761091384914025119872057799759294444553418944658987957687257949223674266216673394787767726674331707956146371822465154223263669098575311012064100253309380962112737509894757758592406024771641224391679304225933345651646895756171529811943305427797334887258838839786339992584975863034279656915218398188175385128777215451638848823313918927493671023990205269137277234127610124936871566505549082610136440347838550073946914914938717153083977340830328527919881667958583508653384814384388194556926012334656212224948701762981117550181144065703721308252155732989338720924720568329497317456602187999641899814171492126070460542627738785760525055314428687917208907648160489379941110681592301056134640354323154277963996002004566827313668400450187235072305745957017062576668692447942996277017049354236827866211825515000811602311335833478086052872534985307564769013467242031037049240227899910397685639930712254083176542377797716526254365168599411072278398914210164288100097902742824170112246362888975445674316182600143934924311995776684470857219240708604312541370131742452554428431045544967669753300820669413744035534897527868658636902945869372821810807556151356736132098151558649944217501732225468854050373513901297543591026133168437872601941412266938045975611772440667470775822189809333547054642322952581831709833652138955630271473035198418603647211894366747121348914220336995466687493436610378566886938848956231263187684677753843246482846629127774432096215283281421164173780591761918301317776744192449138167373142086894915207806434426994094546249024385875703971305469289673784817895386374376436846470395317866289852506484025134081922190394591632702334509483316018779306885890020827204995928014839882753731812797228048259096583355340566870214825865261437984949724270964603863694407980785019474851171915878821017923528486726451722015447700515690563986465646634765904291934017880572317079491155136791058961933772529671636432146003857576747862188611526799289137262831513138424316265780189683658347752199327185770208202661168898880791747772151886614212488438909766049739782856834741583608181250492317968875883310291073535250873731086279622534173001376900772577808481207581649802481716635504574155000212398610886277622258797763424488697138238563184343614432616854196520662352883660742599529140538948237781737946293537098457107710683944216794790821964569701098301409523930051407380794706292022158059109959681622423903727654944877249116286728300071380138463641726370112362944808741917245648812271328406238823405974750659027701499556798876304616786278401150419149749498116510331388075464262243280976705930686538729487521316089859249348877189260934913341581828372381365829567213351211445956347924894796934358626780727532914552559017181168370350857921678738449553571823845240667295503278513575563160355359971841648254209925102421079492280328673815382762860881134377367940381329904188633797148255848496264748156339435522782366283290594544796242152844382677051513969141931966159330038731477632531582690226106622174376237067838558763617494308271894898298989796542071467217564262752289435099684170197993123393329168386053056213744659978588217623978907865322911138205461607815903867822562488897127697926627952408773011441727841233894085538586544043189704713624691393984297962560521419340782315194694750019286578457686022130610608168825497736956163081763291482737792975870954740485714591348431834824997232148733384821211818302559910599270373944093438902531398553917416836553070416381685284077226423751168063246042605237525743779607211046208583013630547153993568434991461717574388863056698649158830106727546906192576617109107388116452751176628276657567104717252706351473027111345816088678284510672942430801611319811255476143754799146936431590790552129211033858406714229111553269208426953316827936237379110907070479671222505366341437151135904750809332616202656963906073427404906926235389768368664660383449320936715352532118733124110542261187993057335775957986811539162917848511378002131771458869097256138027239569893870423535557611623774276576703310693200131045077428158953696362453507636246548276222672334791268419092668883194693397318674443150949679444501645687973590365226564464566908121367386387076507546327172969408286849008994022915421479533391450097125608909807154483904817330477470154549834517018633993976680098897872958524996395763399082968593285403021788663172777121666417836225853085690334752848179617284017943545032060938868868894227379287545962539737251857171922028418351389887708554693758028365945286704242874966428478444133508318832366288399380805418558086553002257656458148698397540021213572949263186970709148653108255097067981584594438499909788606376607664035264937053203048158518262105848328744779816888698283669363890713559251662560658072929057977076513445982810303800797434552211379955615017377433355208763499491182082398525064760954044743371698425213341510828338246878810182090957789982880206710548024986162410985573796264816322168638990376258267355612340737498006825928363672903384206818023866313651156746572051149262753893685021879646780992968230145702777153674369181153018115860317305512301742463254650408373424029040260547967644950564571396621690390497662207151758581219371326036042362615712812908131051752153235557022877894212638855210347431722919512059825528880970517827187440367364001506456186722415221346338497831610571497943621080806419317556776430392828416947135086967691069668902096638060368799418344862492393420772374153425406658812451940416679664293231378688935862201639607506827696498972851324226154096200628173117131414954770190813938198875572528255008256489226827961345688407109534636465715990296662486923437742139528217882768240192766974941407559808237448751548592278838098774389107846050370768538249456914909873819751170526818912590662446034337957811213973284255450428431445767780826615121427191008353515645385845258296969991297543533321171383751934541607518805972436574788193507316533349633501764645415937837658991810751965756007374185776351020670471618599135706770236523732801961644713493230990895155458010733365980549167409818361422703552701912961912606165345913858910931376783909943538294711966274416423065624770525659087987885486636846959426071552778248443926070758952589995922554315491590487116383292821323253105097604614231818657822223504680970932569994600113156286168779289116667653981816571801082944597162864720661754162246473764606018726403823615829372835782827023989813829715840339278235162589991507671980834913042669960715659482424169272032960846106749361680135876028679155485669233573339584531511753726959223053677994619967343785978675657986149342257219579008778434162175797002277276388068500399235646672800551256126391775661775920937329575016419031369789123138803022211736782472958456274288692788955713273637737878695344810533545304769422387510242064976251884518649260153490166140705631981854475914885902555715190668162688412537978610813483772783674751876008590578744068405482331516284545279947042534300487571874492474810188683320442474215779106921563527195797882561828479952822063569430198537869868927420084057183796351485503190672791792869160350666555095311562990167775196175135973016936860498477659727223771866141126109413609215726652820135900745838239615781364918614669805865616116038306436716015874696617932492012814130264545757416595876316051505304397390895905163183263763549669245012348888629574958226164522330582300854803694696602233551061538909904317380360443131004786668727581795406473971631190801079098546717164141238310609221762725194959102599050558405145319042501455895224439690935141872126639746767824933710893343353260723746262481791402038708256945535361829574349192973646893488783894231071818205656731045017630555581287241307784531353373792717457064219626820958032711746728635035557301453644570381998430026668781816169812503318250675106373925190430204286885840549663896039791182943546866733085256758064830327505825787779370615264412381423555949043431398634613161984867745845968305273023474658450588142536543155174272923566157954306291134255480764673447460367977441528721242513659821038418316135225751834739814046256367921891269798222082360117605688850955744597803311854631121043871077736647605531053140866131793659692956362877390407504761557833711118481883146327589663404565054527097161575170832237247214809250938634063125706473071129644924342708732573724128044187807457141668364185131958342422263183884560337190268121861993703688566523547598152581828963347145777638803837744088749126291271237447207184694611728261608495870316325319336179558636724143219101077933059427537033687767350270324495849328425248249641871141280501645994622184631993931677088097467853623972914113646919569270994158682216954704236343616028776600225569087107103689093779533466644330128445570527401340771410949568516856860457138811223803257237651937529383625430915481764743637407913447509251762434753388977683852496183603688956129171486498638976211198292569783160785049681724714466938939086379794257674566790144604672335074732493476349821694175906841189919349961420711109187999196303132322902544266257273985571713026795927485238114861311080147640327296216428504860225755158732283443055352137380933277868021465512913462868019591495718881281317321704061242553699225406156644816709715469911747065831911068665522416131556215805995791734283515084375639871042729330047598764668778211576691293111896343145844248442113783316208381895411266167459177683517087921762468167005710505196142826566654281333431085163581872968279117661853504613014585334619723485220382458506728240139798753934224844325465957116819097772334261246445256955632836591252051373486427729043079481831772728501652731578881858090553408811712047654852888488510271425597275832682590279132015223662941912524275150729155303581114163668763358210582794101984377242309587920819282114518864738716364332874507167290385976038421316947664677780889883720993453930481144247853441612076316151351632676851118421165446604195605226844074630933426224185836843950914223382834511449092347407485122145530876915702112819686375118855601294087422221136861649252880358470031602695556891974690755222248987269181367432884362070311353688409402814740629236911446555989035345756383674556043390557997053183558058135731062284558293255957967616698953526940163314814212772222128244464709345946545036187896825961897985089970136678549052554505196426431219428895630579634836627641333878494276250952662335142925033138742631106588173444088257569067383555805144260746083928187238768838506885087941821321454806848026521271476129017223983976449012296417670709582887247979708817762129368037299019690149904609525936559182326393729908234207330734766521050737409176331497826437700589578480286484781911187077432028888624234057016749062884303198917907199057950487710681561037529523061416582880433148325692836456736259871779085158792283398740209983197637975858345974166430646504674422360114196739306283132563743158414269524617252555496796620850662657769015316706915094120855436398071991572044587276188747562284281132514216235307133358459437694040953515254937876417079041951359296394710386541192196068080480972562676758487380646922226268606659557724857490964489209396690955195891203885646266484956722393648280777669355885827918927233846998508228172887157993147544042355135364905771634000849429666232379465913254034364769641603746576890538952022252574271178880427031355929344351825002250283362595647777444115871845486799228862390152527300193398479592241217081777362958915450040819989228021452858872605183500737911871343892179376162069675772474228288495633775598616751217214905655620112422617275681456103620957767433542452914015311243591151602708895946430868992534249200821301935881345445110381909151092417163646588546780740718711492653230871474683345385477384615557695261330547951498847833201596468278655814628520647098087824282543056309374108196194427551904229789802455261146495200702175366963597572480037332760994402273318437560511421475242463456184846910784556943516460653063194037683562836799875569408387321821875873624315855309096236560351861048429492193489893641576988031912777343940248881369075964493130916899387050542383853934097750245355901230454516111887172384359293977747611975163296093074779430799937043031599563099156591919325736576408644227246215423241614258224184755156062525145335508810158601741933459946092858954614242155464521134888428436843525454482909312045246072071841748860622695788397718148738617784821036240876839211773364541498034987903295736092899862871175174916292613358456487283979033601324532870596052137782896359478528632242825995920564445423612270695006568642395749617494315103915152320542801847778753666754134248551983682383864671802406502914352824655817331552717287772591315732295604290386582561171055615429795048873953751111399659426646488186177209129157921233678605197354758234230867634694631374303441611542312990650321947825934664076570021675655992878073873425616677939211274606872831909430423491070878615348702256228823795360175833875335522754327144991688389941334952805738713769768739459412557299002135211871270168274234168266048443411193144506146191511985164624864918715114434790043690908999146393001913979313498867189181440770575651191305961307267435664157662163262349775112698312781809611070520488126914408261924373332441032946167101532529350432118714523222396146964953188284686699529715744459065614748230913894220192726709919623527198811067146769313376812282366434827186394365350461136571052583726194146705004147817267231283473442963010027325311479490121562866075527390992282557450844748650622715223631953274941596655917988759821589728574278157364812725129244011980283615663956272275931818113394703261865456698598634961813344869642147785699333064724393103144287183071555141279903278131756887034852849274185882757113440748960105757671717429427677282523302106850400113122343976532589513370082367927833612554566152747866197767973014364581562629774939424036135746409170017427989919408029504348219955082412041624172227924283777035941565720078218758804680776366891979701543798604558190692422816125256163209624438446305033781432740528982755912136521511917682834238713695989193195154949050777223404114818552218580126014964132314321215558662819384374333828777753852981346086577446060470815891046282897245632955793133292169359864988050600545433372629109769428657169690066771527408714331105944535154524588656660159457807812000262576204669968430070657985123716251966476084122841897968707085240422101276214540098895779436590925566197717925679930948784617356357729396546748954563113375617748231155042586623483995857596726173732567221764735355963438434794497300010794013749129509367998043435843251603232834693172535632606906734355980007184132075257729814877315618811611539524535728223558658616769288276051634185907630428876250737687589821591326251659160381202741180146570444887635218290548611710922543736219529360189746492342961866480688512311870461759773217702279468980723654647498238949319947875944589834207753200346751344049741892134594641890899053884774097649338163014703431262242532258366489240964077604946551713837490016270658189400491628083558415549546800847087098399397183033698817171016873361167310935442410893371634681653013636637843884070085087709338449681408873077698194388899344683836859457648795046381675281399239693935037348582814793620398672823055800490601081978529546414397538837657327833811662060977992621049754184367879748011362669666005328018919522141683073944343546164693031281395170148056747288301978330228711267675234870334201311382152138241681148230694938673034497016642075318956358740898134169058759783945177092521465345859167795648335285982682649051688132071997697583825659628648791331477888484423855676773440053822616788482317928959114045934595432056683484173697143429101945205655121034387427496844731858683738789537550427453607279318733444088332765974233941165786241551794766634673649849901403936602119341493739154967656984692755193520525730868753322369018581577099894417720406171926673121768505321042075325624107561023842293704262957799009819738907716545541044648152528329045953393699791275446699120237569813881410904811015348461647325656132525331973710511593825457593108771718369186448591815385774159797589367851582340543825176769698719673004858548902551502282469847947497591703149865735522721494024973036554074907640228451194607266198252327395503046393616793408708771451914420015027811007666782965266074538395552953948279968711143532431551748321655535864398666157467884630599631503565832320302308022243941919408838746377593848433651037556441202285875688142628574239820645204188287539886745132679123678849292126288194144177136398876110141174139258417207842354555694957490362610399316140032663667411225657215555477731176984790551973849363961628990965692709274555743323865968771220259355136021227149169994813549103305743488640009420857702990844478429257348550971457966660816825883671329597830138135648943041364709036988734612299717820768831037466994702626432615656174867574372017139257261421475129794684069463072923637119347827746537459627710508940372898658999514223994871015984992567235951530011090959757232969516423220362785430174986475296308323788360089115688594880736211796957611423833182135776649430734679651396252504813970028576240309448299354624432792378829778319609597580899124193162812137686985916997082466646465655019496439085756145948653517653509105080635928679943964138175295012730772838184624758013535373057870869966447321486185715424264290524765757128320575793655689895286320635153261895914394333429150904029665156459764786279383245977217901770446505664781131555525795099799860148082173088661285196744886837280203865451991002786571556797498460545418787819459618826927667463279385295454393428032540332698935203407424808245714359780698625406056145025920362500763835132065683343817709147265466004577961242174611627381485156968959105459316880360026282011050568207659025453836472647535388318627929226698409742231140824639417374647377254219264840895817876122420781183265925774957491336438940426956997166319551841321583802955912245685321379218142570308805778202639163983948905568151779884388719981454105495389688243516818489472773630541157715464472570291631011185514304491289968698190591784570130025331251063744281928066394552215620321348039784852077383294291415431703890612568652753683768303004888975758664707115762736442945216492796746994658414961717176799228493071099473918782200749640792784085333115216884225832450672438474533888877918108719473378277116294335332674294290504338550835155148506773447469114396458765076935081659936362558329025725662949073729428326482748510873762607623521158004364991457836187970297855436079942711171258498317564142512916521816718439408608290687296769778014523717581076950152537300638743718609628080044853276797190482345646641939638775714695789181297915333679271996569202471297297187009644355777860556469816415314615212678407218447218110527833651001071400851269282499516607524732716401600565482935705245301939598636366231138210842907459745783169929871264362081700524515150691563142415902328255672754139050119715748130345209612429149384141315972447527253576340614843499174223188421574154971298725683243925139592191654843076530971410642624685512279525645955227549127714046016481460078100971691672215378151445472534856574253771869361311235916716050680159067978503130389798535477409547256267558125370037280169441761758860483382203284858422414970366314250944519889069416125144660631260345466544367870922528842496025287125685275172144588193464307317130820840583741271831905083577806537965704531635315996688537001846735731513873544686659182303550599898885645193802216434097114674696384031740652887226958560726052571542790722766782424612725739983903424191493919729574658195745385835947471718883502551566474467984219448472182999563941644144492477389207839378431153567248439746341706896775113557003699647583781639799666894743514293592346656497868309018388052502182916134659759730854358843227175110459214851870769259651997242684866960856946811613512673189067643968529784147559340641884991331162659474054200523107536396838464185932971634426857007976810764257809988373163048444710680972135154243282814247173458540611966388685914722454531645820163236709370506272624081517709913384353664669914364458570848716868743882805446435432826072280703918323503908264382680257577884464821158091432444272745216660528933454333057592549936313286793299892542072769860059624087701036095815279440137728894718581386023106660072878860497170546288342654292160906733538613057960989959736885554521863087949257234772154638737778487674263788218776087827852471699935396063837695240878508358025561859941999933981908185991732125154022785980351821713886880494800841198583103287260871523443343563166555833130451226132524340325318988473890691708965817013782495935732019184747503833288420196523249537180400150117506263785799729284344482333109236842274934174510844229110044259614705726398626392172941513167132118821691162697383816921372375971581844795942410853679418936176254206098611422468349439003756136350581694067869970473986647628044542492098394986387648747896757246493723162587418825307194676673478113353786073444190816209072924872689674814687416937647084070764333807854058885438067360758967864807161138084217566538685473590904324484685882127726373485490472366650774917877526951486987481557740656233862321790817296275113436873384412740551540829775187581139380302693329159390452909864236637044844443773295141136895526220518735165939217124730311411418168771404335368649524759259707414318381477348751074747646815264177835726056875641663435618776316019076466209078477532575428074179772632303156030138655707595491232537508201733031651999832976152542982384208029512264329936186233766653559965606376447604895433869917818829867199781920500880225427174287647585256827826689627739288400433858806831358065424067166213981483914239268278305749290908115891410860913307904111560881179403322797458265548977031235537735503098201312103092745802247521148802192131620610997149547252194939711469565346408231050399338655547413133967715048818352297177182057124933692462376565894032199488459951718910874236826906158222960898993971226107761019416013095510294885710775349518959778136503168265643443992671650163789974992499226159949984027223959115087723183574289013452246127877787436358471313229485640059188852971238677867149830052188486344887556154409681076236888181378240589559991513737435863057481423136676332032956295713132593599633008142884491279534894112378906928587886056977836691865724809720592878252936445637508873003955324793084060392035207237762174884202508344369326906703385957090358669993885142023180187300168841838166833244349485001581583032546145711688122649906347843819384450687483292966864518266203128231992671564780000622616776144799019613991639292159438684240787699883711311301139144963974135277963229594328969098203186388172855881545179320021731261915727865546691161259749755450131986269305797122940119122516415003828646310554598607977308144329642481885713275695178659291899653355184659617533118957358682348108104342379304985846553529853266827878841394838124583274091906293879941471197744811503938729773590591383011366749268191139164020219928287242361605798029319174700202623616014795712109974504514862031571851845341848896688069512181112702892682214742206742194592675471568009878655840991466344570314297117194760374570797445372488516741670093275936536244297706889999063966702717832418692091489280935547473568179866000535811742373988851434088358518632121353439492351888832809496375919609991274372955474262051552172707469566452939318219659383478234113954504860823771729763345036544154644699482401761156497828694039137216676372114287255569051070526650797753284023800085322477392834377481642083689221341416281769663316631346590902484378179314462987524540578659016334392762547831924490731987980114696559021897484924077146134009557079616199377429318513253204545219918791047276824855026972538806844253349258501407179964325311435346814820104523912387604542339302951238487093771881699551115759149452000379849586466159351086061848523233653374174885959672117797521875961218169327433359754906782877786348731749470134446678017810961819562101253771014401215719588498869490682350925982882271324225830858375592452240339284114750575421138719247868273464703231784524274283778855904976074872206985393873894171501178347137474384517274658658053401829318438607610494707895871259476662276135253355843655232683326138562582717892302874127291757046735384546128834822328897203960773373414044720898716434215323669334774564259680576232067431058846219017397115522196562599023735461221228329466232470304390496190818678201724246987477395569290450793645649958136903717407232949072216311392205063729218559924245318673738759956136214842049945892778094588873376516972498824678891489413489666893423798197253155420656562781782113971600262204872843919983563764450195081648436598255591184715982652838586422076732923891562737969999519282514888650995270963167503046864602909395890549109288637740343851167473366177981128139939966808466168525452778509128556489648924970735992779573194744594987525439624153751083520319750554093899720558277961052080558304413042495944634947326841530669921867187531674071268128271402732687308657441719485446842136754828920417661329976829887256871881864132375854316061274035176356565808825743941630997130619090474168282626688237493152249099389139590832237446528429124926860755637841772157772117864161375756746665136496924731466466464274329824982837068396274543619618369224867955729681490563644924017487768667103978638294019188871905535663195203660430532489934452311451456834547750431481295380893631726433327954289492536311327575960073643778360059192447158538323299103213986289608605031719514537439921491057002395520435119989398805134157386074189840414286304660514585675242948782742717209567058836578197396815502338142848864016014346638331909162873010424542365578536391270209342028356930611217656988122636524505518066881285028972240129872368457320232280795022921299530856725869282313913734827131571635339817125728611498164551254578453852397281692628190957513176074768343108152825326880819494117855957521696562470359345871688843736767160099262859832058852154791145285770651438639891389746635774896326776756799474184343228889135095832887473520871115881485073048732563388640564585686387539499420285239649598328753414952030913423239700389081348762009954375306944197722604839583648084737195175764346931333373948354488779657548777773414853651655488464471066146055954432497222669965751981336872216870372759457281087681483006686026673389153730096234727355888761937139697546795321203670847531178339195665916247731839268244431613996198574450319059025477685577714367545494976317219351532664436989136013528361694254648862011937231616943536861227852350117495695807493163399267418132933265612227803796278874289896389506387625991898777689734109242818587389219065855403195063298131654341138101621562385978423752250836116897558796691848400458709438979473655608128836831749955769975179121762527493013360166641097086289661812655629606418523920213279178189233163977117340691100332264555021297137957067662101443196384747672187314172682049630211509775297733865549156308374272002143256024556601992179758863627184315746939813607029414523675691025167965127772621893396189875610957720288166492850274417048150789100863845338896721717215837988349139482312818568670815657438134244767524216200257658289539783737258998467276649154721321780649406923326977426692229439521977922592739523175551038383899423982840738655638640344610577993224054431308246074431204532657102863554841830111598573839986387094517842383615054312184690478832570620376528831594299622902148935113208822893853989829024371597720515168835847913836615190062687841553288612841129711446856847728329919473461819007567844671514601311240574778647509900381276624508344595203158773663297885143688366887131398245109870075091628714253630833120191149997576841168287775016742990184612212302649002258257587148748926056387286110833744015584831296249292187576870277839688058682436824828579261993256497422461789430588102064636823079974414293932947422482849245369095187915487297650491422782036553534249006248760875986773515842588147528951270129572658832361251583147049342454165743806902974069208653083738835510318267996587805541887449138742221977129071629597424627640709775879205915488901446194672194928926279025285839369887064022390700181387443570635754759268911100612628458525434284663614189691719335572815814775946909899497494337293290842835823011268173170685161794485187288578357307207164984141166299002586668048170538869775168573489175296195750534386592074033599597942622631411672129828733464969568149295529848525995402752452472029602580306310984044753076843852138676548259872024448079852566496808113645670066112062613232309079564980651339789942915543296189668138519774317657318546944061087986675639961548682698649855683153618051427069840669561279519632113263412122041020145863381707891251489345106195612432003327333609188141148485581605975089962468572817648682860285086202966351802335125195340081628647888917550094301041382763168390493214440190450906437987783695283642869081262756344016786988366716679352146596052679302131555424971845846179311322864381104380317417904038285254636957712432930354857963831892508398669639961545806822137821699468852371987944515309399839580125469667230783312874143564533396322367668178290459309954343142677434835286745129033644949829202321727461464412675508401209310041855127749675356246726967879114454411906690725662375192492607050864996461199282058551201900899205869816341182645688788325799631472198551277621988684764410989244344309587934553579025615518282918572441783147172561376990418022302643882364204882921462109591608676289935664157223169174656639453881883343368365602189751064772532001503386357569432374159991760838125522608310398643584048912784460025968148986184535608793367264381852258218847010811044919485017885082605966551425341824106145984424132130288208698249609801567508752978379193135999067113832537113156020267437902453316297139426033228180448187343235986944411804997592623468654570938353351931644085732425014990646338263794189952304843552444088690270256349891755373089740809891682454900525421675031892972363148146178979975243553774714832168657609163697474095712821458034239392589849254235406156635189686303719278016598623314111638173801108268205305831492896268111559493670819340084494392401739417672067112685126316941244651631444889000500304119788171957197389406741316113749334243799372202303167450530377299680148253852163472750347782764458932867768032134343990797954750106766879369761821899418359079014905067299108279097823561733199444186368328821934438965370762905604495839402074630912008974672446922132694202199244746929113372316358753194821369315522242658639867900859009329766420872999724762314595727218494159250032063777117831025056556405890442329435467501521599528599024489493872724420875995404941532358404143345500265323721448172268819997978959316842476143179749473985668442577694159028005191838599343050141108494667010820886153672318622487717753544658607817170743336764047969039594950196158207240149959428113016342725931294469292818652971320567694191858050501134901686713902622594856186243449225570708804935764824855604394858682775447106618590795171247491247585610183780019270196656999291950976012607582242411956924291136637605386095983596627286035157179656556676997947157509371331768304776530369291074301557763357623358964038680410817752116715794282519418801447254766655160679449607219654867287575682234455437391948559354124069351221281165058883054180906159798964984702179799397255906814293304908661006853968783835686324018853220422823199581321835943082930182609776658840372239266826900233546257997037980616551176025698004159185688812473830752331909113024248487328912806101530460809295781973893604570189504018156271531142623218119264772129259579498697602334252926158761073077234248816688147265806346296584215612312719623117812439243382236478193418246644114408726889929574832672875150166726370891966218156973128420744764596281828417288885541527826230158262866066979543669128956391951028476961890579214620694863239902436060264341539537839775787336686332897114698509438127690313543960998830341552652199409029451653069972013435665615384399454029435377828387377561621572693711185045363343617284379343556269578545540931312652777562115837492009729012057576604144568848546437857421119639707706382056136195466930397398972644160075215678782608832630329412433699348536574496458898314218686268261587774112607879143968307591587621210548414057957727694978798061321893724783470925251621985635635770647736197471335571953567824920734792121226815318047499617994514295337732563201749921015588612408900878342707751315862036327206084369621997420785985016097731834974161402874172595593036854819143545694858307242051070645199975017228945438110659088421949154487586358531736461472011097107870044705839358138096215443521801579334590314104789565365229415733265935512637493742509482725328357889509743889162131068633801721282162267311624907412997726239269321477843961307972193845694429780034397241559466992375008312479415444685151847246431536359012650858697425000798961896716465909359561763497512895308479877117420504948185281149569925450578974543863846238449413779867175866767056117446873854670633338120674236242410543886986484757599169771976784784008417299559265985443284544468049348324881131163655845580036816137193279804304797522440196600475982666383471649139094277171321077721089653249701253848849698099532304957067054124060247668089645171924282016397365670523566970062932214705963258565142016481452809980571491103711810766989137681315597045098793989440998435233769969366594207961549122917742558014427646574216095212081603651211621018577777753476816394992269280519933598725157248314620572786653588286082899587294669037883510126617094632640335601557355976752703053242448426974226427609156718449917418186733943293749446834050279332064027693143810134611712247988274225433334814800171387126360789200078465211151400843553177938695719260270278361314331923392970601867810748834693795997493239970589287120022995438424149461676604932723174051276561742342823653204221113946807144887024101521336546104651768720572115213673951657944399478343234831283647910366539717753657364952189692764545844228542500685784336678473555907298294671137659327629102318170404576384703852037571743193556456276527495753834029114076706938471476537089695173907217700493468772186847719453660627958220937455910066324228647661926798263233048716283791452059867611643157063356259289476344694503261569622561972549538362239517839458406104068794134726505097955594225893843677811768803917628215949445992509884668242151812653553838231432325691854934462022615537985467738110163687323180990468922778746118558926107083347674647463927976621792345182339749618688685069486132457607307325055813054410167546761873376067387127446954914711517083173907557742432326616171677229681364542762075577323982992916895591438086347339108129456427625154831238986956013413263243320716362588391171879997875004684736428332950901393465466322606331516585383477158518792156752788929207688196514065545236037172801499941689781197510959544413149167811064713683655838611180779921667835962726584984867066177124359259632217304806974982477406588887043579108896059603403858469851334491659570055983577630376522741354273375500373743896155533221177764929561339971267134533699350774970644848107775225299751323779653435343521087300719032196717979523592962720325498572634089708807196342086206636477037723435448686446379947930978828946061888193700215225495445874292363353219085460841155396870799049448384049649984203395874019941543402905523557609628017663234747685498515124431155135960344435813850814232037496275678291195513945261073723832685642925349774744851655174523211328572145563745537663538425224782310521537023177931609377066924843872022334610438276728499717141814485969903752019247488432091025303453535537351089467753079583690406767563678215297412168393693120117671068680825130978711386287630959011026650228616231175626941994619794588969471893373844327786777888928620183470205792247323245474719727832939914332708840110435849537104029895515376665974096382674990739811792762244533646121767539107130792781103218540983484133846753868110087103671420788239415635835705204890630622559026291153185180858701542440271570659102228256160346403357486748944477372242648813728252354227542174880572399382117514551279052472779425845394262377924374567081191335859818540513506425417254311897460964043564621207040454261156589769112947492832946008283311491152446817276979771245803315935054620990219038526327503278797357177994914995993351116307219146778071136913365592748248815724762279491241777537957592225722844224941282766465732414944664015908611273736585711037748657279592529490641762774724318219763912846429652295638184111448929600533915927836591428753488445280457994761750599617805378872185498533885683488576907619625689696001348329359164544747245713740599884556482231746804706535852209881004695520439314623301507636139909326506225577275813190267699853476259674517733458475122296735288136042222245668232899284376864874037018361101705138716721555341365372478831376957457082657913287670690259237789422647909457203653337472044328637860737765737033568464316912391048780046698238911649258448154590326097444590017794012694684101890364092963078440576962134728514431346552746173411354300003040493735419609696885673407497053887756165611898270981076815986517145385903525693622233713389135680463002025258065388344879261855535516502427113290518995672416174265277404432526803514859919115984655626406082398460907587880305694629364896461695470886569656521554968960438196758685537505101628546202779120467111688148592176114421241882512336433159979882232661989735027379266606439230385257141731774997486248211711435641417184409012045588386266987930489923334920386920185461863941999103411500789177985631147855530383582571476897599886969936609277418852276683543434716303720198860057202316659386642912836525998945268956606137164277162324524237943174571122512289371816479445010138664378674101947609271266272335391834954803836721218178427243948045715843761573969077309913051743195511098997120130693983790048574653294857077154988665397820126850848850377228645861197184474428528335874144294485466115792281076342546671561226204382450235542493527077719689351931343119763749718670652118805041429021390498134391420216233862824115138003135052503286579600942705727622969966565862242678266930627877224935436529374729180605638881280084602390523583175932728911052623175706019449643794827286655015211103342662346761766719058122288985434726810348824975000415490532812094432593886279384752984541093304247931937204576675370746026372568877547950970535159027974907506135640621504047915351853116812906654418062386573203362927927457464567815753072079963220945670084896585945348014607997416915784535441562953316601256343692515611533624497016945653086367381578524178812115108328459323657777030126074527802320190298762292121558171282816182489463090237779576204463117635930061773883852750895616298313859576155550525186492997675753304258568485457486391946056255880913332115586052723055252877309887655661302386465339027304669199751527844417777854574327974958171013520461301315497004496848830092286254258826693087937448171834580129108358175419609671613541233351614978327592131226388174455740231028767582229780812191289849974530797174303612267670618768823050776552773638501585857658583166858145193827528175097422556478133748378849953130421788939002466072088861866720231098268082542238626922579353659238435138953377788975493661986644040170445907392845951061930744719834074057625141222264201408313221545431142224804933943583137420599595937027575713777347274138946071942028416538700916854232770478804874521625381536241091795424608874709324979600647071984776320898721801448558355919184790317870074172489537652498483887576723765411134418778229191357833728073219840949677928843184296142291367464273262946593967175314188115009052576541754091161042762668705899744336904716852972272563561391276701386972845308430558054700777625553356630254559566249070115021497911771503351233945874569785005051151650953035757190781764981680804273133071220338302651161683037357715775287364493384594485835827450804419384106553491819435603677597236566407712283810292578107291503925544248661966491876860238337156856320892771086310984113211032682558306529986345231291906830340722958633082578926992681182735717275475366948623428103593117703904795743264144682794813951725638238384439582130071082726404511341295214741046290443170304529275682212303242319993118913841320843548858343511582581652634862989480181461138487271222482298645022385046034688462383294391164225263282984426513782926801137955146484653952254754623063320963508494489122291483939728855969990323186151459674913751204081669288261603389274256392755781475338666338220187886741392820313982475712136969395155518591100184195778753470215674210558567475698314463041960673568374058967618087651895951617234601331412447976544856806162294270830644606087237928265522204742595133338845677468512830786854027794445933700366255231837484837848627893228062938417770625553495597820976527939483846260259093254519645128024574487660913054241301607431394238839919390285771016201457686162052784737013885413638720905433099889575384427550365907404994674832274492216308481401574356981215923850415457912497050598760367350471620150892980960845656518143218301592519021310649032528959652093014232705653714950860113223534005091748433612938833262960381845118801751309578934958550223930465033325311833820717047691352742394951494455990731151118752378113189955269540563370349155060717892606293476512513789186529329705437177970986997915847102249011641915607298003418651268669799145611301046010145087930667954411606945698885028602884923774363096117329938714410620599147330082155063969480511989881397592963125120334156404921514091404318660745753423715967287865722411053139032345145501361596356939951810815473022429751252873181828617721885853189222643101110045674836174626916471491983330006109283268558172012473503636031420814306712895624746114990788495856854893537033141152402492165942739805488047865422882327181936913489987974147783440873895763135474286729644304426986832594291564910247916383361349237098669793775546425062935429703371380895863823276968786943408915218953511259958465064798532262032431081559124368552147573302605059148202537069372067857598477865398280181766806093994583181459438730409672287682342978232942963877867741786481324547773011175932393856888172674785429392003489647209134454904923716701447075486459387796080296212735372825961594403884263929866653458806283478437004316814178894262554291237667271606769000747901583077579463074166222522197950340212408724129006772388538025924180089400661962797873327291065356477662836553412045068950693247098392085553601512485247404199319141655181679299804136737823104529769196977151279596983865490548734181885116284210861883530753531438566995292839231734624794842181604812725593201106229535983382952727632417484511199658670650824153363376322776265616027423573219841714419825915580980541545478033895047902751002408995707104134927971705597636184164223631245612610988937477252725764230581342321277166550854622726650985885313672409481399638149578176511911746725321746511625822281494247377848221967590529027795125483790263116351647154042287312551281690663881743633795143970611513744361097635913575326186596587669468520665880689727115024599847907184319506522991236032110809379704678662051408853826933291662274645979843665632374662737633151476551315236363705238298810879151951277361865670482269687394332462661950404619738329176871486781581502864762403154362291089874388466747034301144431726314953349000827247262074476735081355534015493737055377630843658029896039755271791635390353121002826958762521915255449217207713803753248102050938422127120841683616190078892459190257963392493955975175269979604374133685757323449768453170130210938843421399554324493263107137614786602756599296247902274058165316448267515956781579740542241911061185968340838965804619446613321242638607128587665661711938909698024859523248131324966652553579945537604751508551535136088831687896500439051513375611422839541385994761060563024621312523389415164326731008526223715615912904757641770258588327100789736310440081718533918279307301166958790323532678895434853223324662199377467127564820755745456713961340541658636136490972878717888207634336190998904119022720756618174874536514136273726116462344983730841950961991377116904612556952088584895245612747247984741692076199319720382504368847477737513357731811035808313008894396301176436593993014010390162132561262945531102725882989020455185190881167403548729737200293634521115481701625964344664988212279189475853191623139625256613281301912886466061316886446110624370878291719915465618838774762961161484269363115728972076945290756856623788174289871422153808607594601999444105826127680858722018652277849791531758635549647259967900346946341339383486878974797089767309802046944221534455114797011647783573698050756160760856169104688423378419363636088565763449027052949879313686082144844403215574989859582636784962188445087376316896748250830798246291692749132874409126688464049273421850635041053252738425144281049422812555607349007117461862245651182222085876164726171612526111183672288706381584446445195999271683854839190748147718233522078729676998514186819349821152219335036750110353391360574309249689194474170136102700897405636715325099950108307826474872838173108267932223906310894914342553715739041600497222833703372159171949894762467161494778353343214642111924842494504302337177542426206165307940606248656046628966308127073949912149036590887987453514536900312474840859511227280336981200990712973713481530139498154720040761814023435074062945701036273144230153109130744119774465293212705481050921754658689919946464794122738447594043415129601705070854855227171933920274487115617559618107869124449723994451810551471667422164226688747671588838882086858842822400940411929485091348736955338867973593987813495788536828774881229312007181627704882219057152813411997018605677884193128805261144946488147415190317350109702035575430953323545170906552189212922419383761043705316690579533393722586945990901548504994992065735297784373387063747247353210833444995821588210813774375736115384872520322198456614129067389799406480134632305108809367146963944300849331356966089268835951773218572043444769787482294609260543618094239225493514202183247937274860394730562363539923384418142550831674414555416266033778466712446632767585364306273654423267318293256057977035752072837388669428686167086770707744608357255475716677423058500497686974657143101303735992427606308077167736588415692088483392462583612105177479375240676294032177522732015846071478520035732436410442823458307240520932620253057473392393243204170319757224456791799825506144650959681502773313973114870427399358253237818754217403045073475865816387967634253813127938881768336377657467380919007384603981847151847543320215142513269240253474140831024680733410123322869847146425855527269332408065127567296538565566187686111563116227155518740811336305999696500401613634130198537899772342573220358956798189191993906793486969891499381775383126526697464663048384954847727221669416226759565698653167598747482913885963718691227350099457262043750670474423808756494711459655861216765138354627726127111043092713771484953275902244870414979316515820526945334898473796914039282267442026328871358891954169939685088991676626177065872766459372123624796207872840359486395446339647757583060777470751201078317193109258667608352767425369467002169271621167434090913442469807779621549687324718096989475382987631060015051133243208418723317485529244530261260694990880198386238517823956889884167363455489473112475576273564747453396228908861001516248306221153287819689348011362944728378044350472646321157458847265834102253983075565896922262385221532753476921664904234330609658849142832674448374220951113852036689486877825107756047816117542085381577992975372245433342586818997671734454241877392001303091659753277559251851830207657971031652506213765018108591909326568250752662504846512992321480497500277651029512030294774843593834434191224251063760429872318085102324882472683562392836174717165243440993663651233178373496244744936270675701099518215863249178046938592816435351104772226859957854117212810229856415381401016714480994335725633851032497657488362024930018373427041073355555655981818213594909231334299362277940422087904003676972367261367713073312655779569842745738784399092281240536550772180610557090914673662965510136207148578667570641932679940432649001162432148637031486487711264876320088474870874793581507100932501257652236178940999488646609787332714795755416139994791357876414756478241338059986754484739054610881609759898404293993206712660883428554865391195571057435844167427396869737650938017600685313147821536967455136166829947849548891677135831545356456482052167353658371039880939614971031312436498846951013547862727343829873127076925534468091044581246398569400118965319377711168749603486694808301888655404011170224879715939999754606244759816283421248269087984967543471844170514908825699259116089722908518775244450866124145821344345053836153840828078653023035662515240572980499626211115356926570296267006864814265183689757108514172602070091880568805728257383304151104468672925298897551899550257559970657178688555308859279010349262168525093940193229838817551561156366541666187678785691006625818717781525981313089219851052105531770525115281833600174676183219524648619115428098352959123957544254366328975686067251418087390713275895064553162191802205135214960785831457213446715585970221326794115361888444133312713896950313537533746297294151377362881110495171198447975510763450786610136955918078656788673314930766440844625014729531221121195022518034718589602245221382778707257921399444228687646116279431543047166789232198031147717069281914529559979775857980968341631296736686475120215188193998286419747431280384892349930431457259492499149988894297021824725353518257738948730946659930789599305357580799691495824650966822103929440023695612594539148395368572135420796727106635044520455435144763629020478566476775885425478818097152553220854347586034844487644191395596155385592322005164589942354434675596301102442703127207644976709954949262579367454095226872352965309497319373956413584058261447614543491723895243995695348932268364641497307690384230497832919433155036965241342889649913627618183097508371056524555273986455823347036896639346522342833426048280874152773186937570887151225844895506395048447052672071685431666156872279931268510038013271379618617870980172125912894614533274294838811691003780525106844026166356105912395322125512229101523829312520708498791812533606997063712025929395234041898619688873683637947674647057224316966321461220989850313675556787779543148950587785143539423875302238657830538120462972720862071494456487204885273484388072813475376841045829654844631664815365729218143863841979928689738478700409789294742467679087585108292366176717571426262495141692635272175411496100537032727584949813788126479357117281442255804256763393193925776535255946438976272006758855857805432170761592323313979639691931695579386735941166568941442429653228877383996381161136024266415191247572848099668231563480625125563817008297561895596276313011327218243765161572440777175112072455513162110895773971928097817354057964917821450288533234308519297948961699686183993233529552030004133696006292610740451093569413980255522158166943584539757995395532761690077327986996092852768961228118959580928435550928334993225537679602277611445843425729004454361798179379852857399862731161279236164396045370749271939994767960554266360466744331748829968155425263585799115930724727634334827767636933437498819876935457619357153827190117138969762724176881437251155948467949738708440363769075165979271302092869865282465422537229693244187233131367790171174443618661668627898570143224267935691681296322439102993017561541296773473514580977362220095198206665038530269239049559823920177415955528605201638186330967381845157753162801744973663532739904983560110737888896568319335909597207290435738795123739843313611015147887342609946960802964733290925728753994846332340412875764773758673264875076359759207732520914889329208119838344347450539489515695315689126436455974123607149019525526382815665473699527072492583360356735632164167504131728727689642349459256270374984662376807038430122869892065860746065600202643914975328601398790484427304637159128866238600331535646217327614142856308553678509180288715796421373708457792637029827737544713388660607706442208963564180168393514133348982557594511754599701938142417953917069743226425892871739764296981105526531149420109964906422085717512141443817768602846018471515623449360063576883526401122942858869042959104680167641270905487799248111376259754426386846906295771739439239088547550119731836657592724957243494884823232975265025789660907902265668860614184234580809379742540737251137437656942200422872088139442450623091436404767638904551576488283247449959532464109812706451494431137168999566293704154684616294423800382152074146683317596145537971519428226792367562795709280404999526455145282582790625160808459862424927139236390019882674638564680786506534787323029142873014323352549997264406222320154674797316574937681649245837667938695218492108162108570815700450371455596940124686503645907667570109732655026342305181965594475345165582358198123664903136935096284533331191902864123788832540519246720533273426177435582183216980380224417554074249503707931813785839107427922798843466951603529142329903142733874119365757975926459379041636349626064484840807422627851362627034173423661071148238074437608408681108861378045883717120771306729844633158992709578840520350782117074785841935622101664769596519808997189727105197586423805451193526656112189232599845727122816071346890612475450707392858064015550305025533492321671377107971393219373617377952560784326927361087495180808257909470216221918150589178793812696297659540140447223270056887492763187751054147196560473636976643955192886521788896212015390652327785706332652850755147284945116166854638919210843223721079470715134268057389916943796475014564076076129647605492738486147682416429178885142695481651718055808245369155592425825579953722258106421793231529205843024135067716916744238558238341623694181777343974256562846646022568737647338165771373875177860503092082879341240551219260895117381473412456372552083452822584237065922087899835748768596772341123879639529936269749787628657343711458282993597475057172580632581570594035216005110848298945376379784091573546697549332998635911580758619124124038888018309172487202670841671734905762325505197397389013405846557969864509343429248308560910249298719844334775135006961730010610926655512309441138426806472315424955913566558953712904811148525552003975623639213657015265015806769074256001881615720928956408733788756999583459690521067371840286580723331513293602339234574096012120669030039290406492615396008214017426557752687685474549752095269040838267301902367914369064707273057927716541661648167321364989365967211887971377883846272877764317859207936532663775781927175641307679347373375569086512434544210252149568515187035981114777317188111047914390385018883007916992226574622214680985470827966775290399463530435681234688605388047367431391811490156614553581253451557110510901450181880739045506816497679147640473222636082191071485842011900877536179860912305172625525994261727631696602604411851739561858709024444619490893215106812016834686994252428918128923794853815609599072698787873662625257563922395448222364527175764026131650087350198351907677984090075222055843710961266788269295944608265342489803202516132450432102086764298426557293975587682759581634852723287241517179219557374854491186739256286975433179724463619314181023895883875682509961984254566709611335623720114580997513237670988449744414567258762496615688702943150523277628727658619595793120964984477303277373275128892094493217196561394998221111361434161857498443727777922649529075321769563320761976189434395589987204012703656962810979177951683243378986756604513951866726086784249786039053531295599443978707511979791268384724329024614907892454540650545691721175579669674393320517025734031511509804080997958206675520959288121205774609929674622107831998664578903773132332053368136308777832702676922875896282160034239593004578591685683933162938138381540550576194242225164173650367002670792267239134415406078516397289257688752036684419991115870922244410865378681296529410401629610425493426042324585552818995576171672790577298141949870412988595447755140849563726671026288596369777500192711326825106665019702059851564335018666849148069667010847570009489721225586453944915477314577840135248857972861267646129529601724892410526237121768113692293954486962170296126283180570671093741489990176418445238649551104038232640477959964697628704088744113543177827527660465275874999481374712923799138048216763299150660509758118063621516963694881789763528275303787417024436682299989229481206504684280436574892451441373037279494200582055327029481273947052952431479937156628114995970278222689691240032532697815894083942526045817857173673761048951736549667147403242084152830931993966451388342092239852527158915491894464653279963633625812933366804292363341547382781084617458348484920085009231191794837421689379885957763873713277928197968409823994375525448863598973695958562431771488716854197201953588926971355677484469997536299411060318258495406964527356587648468247720437912002771115822367872917415385579844678468092556744755436166891017630294434938725152956995850864922719759946191167879950032056430621710399247632827708667953569245897575658193381959438089955924180957867472642527269947274755463691741878383161278162998099299135455845607907171007924704759487943953764331918655504937934149852998219194563902879305041172921287073976336262273886000047482663117447555746588649973242175814241932889575110690680454717188421855591500516656910833763109283054032600896579473553068557809894551870311913379290103280467263891422027995433923435472922371245694163292606857591985686324454336685359649751219785269704652263484322220100439139384632969657291849218456477019814467181968654059632853237869680959266802805804640518690733232417709515794158164628649563454744192312714166888145119892933492247775791017181251916324074601786684933512421588593424685586194081803553698494361061631951237848230236326932396184317921227592894516380475449786929282491628259838334552545461105332376975858624375431845547065983199513850784722777856307233512166850452546235510647792496661720372815667588547826520350905810631208063838432279387374033883819084608560328939785268387378792593983052846618091838791691432702300666816614809178523608136818055791249087666476732847606835685411186602373868418883021612333557336225158397632665547514019955509264329761530107214611714869577226305740587442190596940495857192277250251077190459301815363928805125798825375233631861846227777823025474903156179079195194437029060909764231866428709196616087464954747545662117039716769822242856024312781372740193190309623990164564929432586767590715608393075900656195699750262911741270171209988655850241674543838062879978539609076760585241781629376787469165686969175897848935941484207274915806782204953923950208995386751707410372204066452346779885495292942642050213489876080542615266804044588216134129452950519792305084793947052558532252877025098834486594954957928334298523949519244364859008730310078931128162527757124627572835344432261338996759213978839976783773625684002929044247815609833693464334867911661413413712651773638079339656024181118773625477562277031187673698581116498954626300796827112699398526466263013836983419418348694899152175403339767359253293656133776318974511780362067385952364069427439956884111094777956805011189907251132741633198480514935987586152679218062458126614854949772869553275776545911858278926271042835515127553902065583952506439116833800127648970250669445550052810959556009077430338469885214699625195659162671533081100645614283081950859055958340681633912012223595639631363211156792108738872838323862761995952286455536104722548262096351435114521719804206893135917150749257190054002169371510530726191439639451682592773176154236582456537715916236794530409745255671715575655141113643498757998569408164537437479634867044135489399370076347391297497217323779742821277326179361781576686269026782184242221056520142921760076162330333872038315164899532097989753134929319325848894939692822238801756148394414247548989756673487426069205626267390252389986032961871930496953862054007919691952367424121638822926185757765842378176854119363091724673913874596676006283068634577052568126807733871827538660173371295117421363370515067441961178412382744670541452075230406578517391830303752028669788721552113213615606238464379460629134347986994838293972356819946133780262424942146793763225016625204755281561448244627902530647592518265049442797929305453891863949321920831154735817506964556888429430385388197183611774258402751843889382191977775558218891992088429579603738123158908306156907718277628351698989824956213114175076995931673840788172199936250183251561644494316747275969328596815036948274878435518864536658563806797012920285363911881814027876422964965247542955381268521717628429460828282743837537971856141673061738151422369257233994989063880961340118103844372449003553435987975205313588689464893318830707733999240778397897806418436436064578958318969679666126439974698797469181355233938172102891673639905790215031100266660599494374015272613056105920866768137909434654967823038704882508751161488381853892544887826277510246388183446244989850838912866367578718701211128991309401187754318396869950127525927249406915552861884871637688357699095383498612595519112662131229563678219181244599213860686787865399635182096753716488633681838924868398254477109309185227934398399599743328518878139492548715960446262450597182385209717549429316330329867921617341419287574908837869041412478593125985151783804518522861643216983686301453944542335648061035261871384694544860985042079487266935353516187310317506480131152518675051815670371645350674741923229741400878890926362612242746413970781153478028358433761656564589177856583364629244580574715724357777388963154781027035657778772413759390366114661985129306035149017826741469583051672770468370828678380656333718311768448182963794268442507297162940121459292847179567207034589539544257661861542423315322267395517655005444294353776913343642012548020658886153156511741064796512561494378105317286798257299125484155639736894996622624275418718221931229896454717483728947080515765379023997423565509929152734532234717310450055464472123821536271073177876189704643802617859112294426313355092922882227019903988035612410339411443893917902358452867240425609773123183901627564231125579931433334980592926669087992784614346811901139967347856918413639289357371073754084996455832971927439974557242893695947632953017788986635811264733862755129113828400209222364896788750475325466692722045285181444753384964869034552367617325361482140565945152632681165654019784697653289792538098669927398435569164883261179442655541284221207799082797216264788210620207344642290883894704040251610308297194709453893488018081328737319794714997712706587778544675577175961383092423642058519537885062236570616049411534874658000141646580783846213427284728988759228935993884596345705944438241535789191941229305948519057192808885456370849264717234184583598987374167641993180957941386488775291466678888181667532251991363129946953649829113583074935581446377569851642030584516811422292313727370687380181773485346517422154336314527971723880712534164475383678994596140971680619529427591826738152425456353192095405896598761812556488075979856928997129320845540279457962715886680553100118758651314999334065290522869229151979208953343265846591472713114743818093370417486139199834690142694452760343733995344297359257952231280944568285656179647629323881250341472672383781913986477928991033128936573620941638526004094462997882568577335726880983114114723324088286614076224244466006738161674105060283526547024338843634366037940145876166337499572586905877074950731824303561712549285280344412419664571702171435950610590866931334268625388724000031065396802130938416791398197535354422749832376565160884549825524932159018615910717608237613167275232287227843884263440198692347949751707269027535926645862438207011279936858449192084315599105914321586333800063508428169550549897487188813682985730347259642242832273294196787454411532997913135326431625067660236708361264339355970078225203994117556664114989028962615038894507525484882677296742067347356368761543169273098390366046419435558059461108896970472891906028037336536113726964947655450115729669843037090231326035277981898922222451456994978925294000875551703057947568971861536545404877372143272843601390630842471287144636804217998960123126995437025435657377807008483020985530288884426018941152231175082622142328181949048684112383646529614374792671824411914981925260203660371127568746538641229849198469082215054669736102852499880847179908886718724343574146425067892653699633012350077574649787999256403286860115391898744882683899589596439120276786567671294761875300748378584873110181789558236105101324086565748794283151282314857009356388599353623256246355144880314141821492329796508406970780681615672544219274755397710567497148726449572792307673246854652551121633377834961715841025572343879795387921027791368569577851262494879094629615316731848642935361187158559684274966867096443676819731752969701643737812085855748470949833606704248595590043881493689331852395832893170283288120751450388323935573013733298799576764065982907284042451957975776786152796131808612684166149039189574332447434860756925453250665176717349733950214185388407034069447664915158807678753943780321015056692989148994740984766252255624006236235915976716196488668204863809033932232398965852717085764917781140512595442880582389829962058876734688738214244995366631070792420258417489501856622697190217455243178827170660929237280908475983593081294291424844645061732315201941606763964142261284375093400922539240599207758336872665882969671356112739720808665417072588221477046087327637473943127854578524679681450452414236997127577041766010451678103997916301972949778615335783192926860523974143007239128730944991513323775314328332934277431689094996203163026286740344730553746137722597647279360127319466797254445783510443356564211382460830732308335632468648733241340330479678277731346846287042133734347296520416215941559283992645385651026379345949008398567918823538580548337545857551337395896654456168877362559245237025674121755740594120631886528516432914076452562187768123934394918708659518915725840893229861849853647562668377051824325382991870039636144808340221707410424382089667515938115239749144493439911267073511556656745935163486925705032634993250373608561172527305898828514531177238834668904249977631266422487897224154546508996746788505853795970648307792989785744474854571759553779319921893841144428601512159551091237725211614518060846823020543864608511597897568155586741358697081237231516580637123452677692692008405816200498337392863461175381306871147308095384734344554431483565849518949261750697500664427982956315161202228481400971088652641745775141840166804148631215583922035474090976947462446314130892294185186120182292880961357534278174818153464544875903568043579768030884422684647470355122673231683290984230956434862571332380563472443921824414968497900659218530215397323642364013449552751157228538121286830773838026211452808661959512531851936777266885924871032270632129728290414834428216523201943589363782494983969047621620661931573331943755972750949375686931142093597358354643939219773720544498662717219324394909126454757397463590283237971798622692759611059474960843659436657122744945545145820413491374311064934551322059878128224602014858392710996948027032913550568498861612245562083666163193839557214335107528919959159952319708068780626137383777300598466117623333756981532755787255264279064730570186352211517993498894102627837300054897289747769069148567921211097320291751868351391795524074205122113220327836566203593738426593018182548663033476253976244417446775289178921180938579485655025960064111174973857676073426381358867718021999053554090637292002456667372422769855946757362312954528271750673613662543484475331535661258811909925973524287624151420278366833652784329973088846762184233835297552626961965661366539655769565173842290414840285509774173616815512307711160849835501821191311838724774208691021800233736436956853324729438127198735449222072125836836665693074988877139075900350468908881707955236801867867241768208228510629293192991595890673444662013241385315585394361579141831449368517445778659146615425478753894501669982342937345503689315472332328574382313893565873192511745327882787828821653857168636887154132361357036496611535135955817611844200201258880691022051192966664261909272160417992540777291750640847606169185152845836438412420667501570038174966564951767347915143367831463883629802512488180896133370871913996552457087462505796430225057681654878881707923223387720333790439796816836688431143158008311984031446580938107591934333498772468230686261938010127282758139004423167071091993559812512247990299662867681130423791691460416452304385764541350165918258316436113010352479236059223518982456531834536945619855280679611243982015141444897531764333049973839133158505187377221599441962852142592416812938767388696049069694661389197369148078067267557903449105998757772764502877599003863296599157018554496176683963574969217313214257485825489314954272182249099839785603556966343779475695574356544873136264178926514475395576298584580984144629693133575241919052268990399570298664636308157319148726903424123109737281997726008641123102509496373399137024846119902866675226608067701743278008163123243317445125394891211912194651694923293165280605624511714830426381346217805932714561525537175463851086570400025929295035567932935677224523483977654848433514246145187022396864799417843871131244616402472280632854893877002543499251163622734444192187485033623172356306527531968855888877966178438945085967992448743575205619375593989560631617418538895564333129820736059455154104777534771374663168007786451644416134886123039633796165689890570158027856870370208534027463456254190856350673424451773082401313769638300487431837513150396948203391495343761310470001611326151520023794490036237099583777868155851648322283657551452071724347921708850674846599606829262731248573077612127372546259941762917987249829872909228390970943396099148193254004266814884038735886574261714980482323989291822051361992622754349010470079566792334825155054144478495359283732599114477203999126487441996158834210382198421003197217605159631144416415825533718805939998862946776326178885038804909529181462819621616733810368992677761280234019925347024237077279608649086976874952152260914376078185706603909537958284890832479530046294239751849147647212705856728222657253003043741622881574933042805961443222844755528251334056292648664810689704332215354613118141334768158583754252093875441402600805085243895678208922061832846947585596658667732843364341744124638924794976369502212565707773690546836348508352186403371467567667203235738158516364329734741396475045895685354099312466288367892084423969705418450156622228970761690775828452509797836734550473975848222447698077572751548781000153834939876002768371049354378126904044610807305137006396473614437908240201116476897183826603084328983297687914417016666088869602743040300245572999991430740058929943369523655162557926240480077819942554266495680951394385093714693403301330231413271434256055984375794839648971577042204549528169421071433797363155493406323737457994804442369731248440021116540893282872842870493923737566796170484568357324353290237012035624302489372241164124662082506021999813579465235824071817704013648761553336233992291564034028555751829605673732755944478391562147500664731406482487464359465119328480727242253174844132160271356839434417220539395489023448824086191713896405155419973577455077395416711449545531449483402122710515737340205754633802271334542816455145382429323938100792314866258687431796943577581321981370513915172562874653820310410124496783257698172822628791647185987127482455378100671335918003063811371738980506942361686941941586466948105479569845538882610332062785342278013108426193205633263125237306695533477768863539444807856528760128979094196551930613289938198832864752018453014414417016966906682291777535592718497452357876118733523819195844853059451418617269718901897696213942062067119667268619863369884162062022149549481424274832390396788964718829838562429887076291960886378530105055034719943234832322699963134078990102658139460171555896689842543177924576583577613675614811508861700426559355395058433212577097276025397263893508035109298064090506119386250821368107461522923849952164201774400479716555522856323211414657962323307725112341648912665895042861242587110002192230439270587045949017931560982163459626066566323973140245043258135649849915636277939894487507396201528815398548079783019914280439999587329434116306034389691425960735729416346365890622752889463139680901252052564091849973954951381222750678579419806777490170515848272960872700836820622451250495727250257560059156077342280570379884085098664915659556937581406143998904587901532670067683452744840166548350927857316708408501133551104699509183570110319518721146396692587779621988833366326849351619815897711992801394757955943617782845196334722111766814953814329488261927606337143744681347158590286207284457186380148527735966435184275879737277115035734173000246938479064308649255520822787837816092352577607182176154551964619518702049691632795638333748787234937488877411571202067794126974678708562666369705118131294246580082295292661144803812567218802156487705381986866583238492386263146553090383917229848077883834554001537650646789429081565864208624789127830076382574013885628374990936813111860485687670895939656209350646536187591118659821516477802743572574314398223838201223968506056304381733698762084350166644748585858007167612462896806744201429456218590720939976636589032871494223863030305197357514321184008263369346438859899462438348491914663904069688294285182423301614805747568354867506133719761982612918788451390860796901302868409035270464779309842287520172235453270424224212145124130937638033213852280473994150527159716643792993572158198992766616433863903797213194209627859567539405394682911647579767392232914241176159685715856539111187969258385466165578537910241760685424042418117912061258991983162532688412565993873424189613322412141529554408012522177203661291251496667494040502295176980668011868672625916272013768251600888055295002614929653636466966160750905889669198999331777616982038756074404629748441936511829885865888163417012269918773832311726647266049935125856987141814210609128967707782779878048527049566823136735137917993326040539742578791292692844173185558933915339122532675446753880899838513504822148279352660314563824383771797246295244869752948565142405034901381181381941436431408445988367259279674369735530497265319907990534151760984148627629420571507794493872590708292966365033932239539830116450487091984600451689467317549599211648942467967454524636373842697523080739910395012560674373145595121514271135786625697107519662957417330380396674578939198764874092556740571212048844601444249810366952143672931717511326329775362173983467531906047514316720132438674496257301526706175779865078382687881645811344422496723968571407283178966234749318560193078081132884969641525303123110787185379137719367670653705559283806339963361976105695641341157567370443265191156840919506328203303783615725362919943463997556358919773562275610625478594429223341529617360822124756471353660134675751467436152223955972913256651532641772117305157821512594967238986085912791792831425536437129456075122580387026971067568193017817931882523417986314681961077224375690317217464856830495534878832527335464793264627980565919871315158173907476168311290866890967789502729029660839755382519893234882282186524702988852977701214901222951712559864033176896394986253445532968604980098578692235390724322910268054881459822522729721376497491126910012333592802293896409639261313754716613626670020073377303238351615172064595395207845948087082125287356910475595861808351552658188094612033109560624180895428953839224874747459056784731185925891429780545658731107876516790152892337154414101192435319998473289879481515439802843311494851615979664541155700162461644535728922968678399455153150545781568080024518321344722996294281966622953398948532779344768574779775971563192919775615911428587565835757022129199767145086838683031750313503795103933914586576128664330682571913267690854188392428615184083309989579734193324381384381418433369693171318564320902963979629710389599767931531789151629535135792807316175880544458817024576166199925685226541672924426259065484869411409598855458271144617793730481713549357456971512212234107560914492606626735743914437406413322163311484979041650936781863640208611986418115906819319659055485571019919124927965405958427056879248794409215756096227877190613009454691134114615269878038434619771836869344802606552383614178981781342213694004833054954192896199795065136447707112165430409002800169729548564843328440398650943331125213306195542159030982571237171024575809884758216379701969603680131180808915203914074320421123969800685122240256469364852378472861124125409766327419580089560987238939518568297655386317843082531585972234228956386221402673780419944235311533516784773493051731964837353155867746972135114334328380234254273892033637677561648142276255757726615244320404849065302295304855575945289009485721723421969809353225190489977849951033166525550748244325200822393018320417273361059549081246057257186291023392909204873778274082153180574510962966589322695867856773561573455866125639891082301048350187023036743060895954155739248534964086577078343085059199348127173967204857197433080383173651802083432489516194658823244177035185652808361855780392432240003232876596550127656226816588551917796159355335815271707972715474014208084111128595529442889771363985315340519484446134611329546477481581468653840429698534477411290298359837709750277259537904558575671833311331617797042552853576663819404732420160430822661198809920257920074778475449754400671649110851595546993747922394729993990028193046111290905598686671918471221549137351954997952416037811389475017541784637329065458329195539785049555989229150427069633011679984191135014519457779731838227055372258678541073600707035478578443407812458691127950211165563364778859862822419520999910148388377514678921158192599442987239281064688381987766621565288314402469582666967786535343205583096931138109426890951872574956839875248258626444745383547181717927594857470101723261137745066400029967217068517050079303203664392174701066246284826751794911328244964967375586999522928707740502969102961769780883834921441890371345466917133975837133033102166207971662351670745701933040628684706497678774132107233036427948295106027292591988918598616189587121524001143860483557602482150136598217204114873192843518666254969364677578113872298400899160522861502262713693322526103302750775813886488526019761420138450014044366957211259201277703122554868312244395434079554961565927186411526868688425515183561958194125552063826898737214534597294449863793293534465966690134151272110289234917258525369724207804836446225947437331557596277108934414066853042270475686435957800266039559432321359766138948874022991852793891621746664523412651622236347089605789121151066350039612048418761771164123146937423758565087428027508699812708452560865805637525797395688916912210601216368043577035346351783267624877255175640412260588215562975559644541567955842967894963211622055070998816497490603275479657930715363658476424763877419303097754930872515717479686748594817500193864647289017772379254015719222444028926523791628464523865341191119500567399073178851252032859477837837802480452457311815329133754120326521888782226212911726685293757523908085671044743308506390455634223562681267612557669545882381636331762833349239629576210378901526365997655412985654863682221944252314878766027835949692645713088667449448396995324263370445390472077679399300629434532988773243413080090272355938766058776888803751675953467438538548181311947256746446869001970999442824668147920465494190155902291740832129999692719678418345207161773698278867176136067521756427833963287758295790809279718846424259133264937820772201577272328235131260105754816893682726663536787979201102138884190739163274911494812554191540616102221716193004045610928492244664488829839192877282837479776458047455210199296387787798341466923318237265172242341108927958370911949161330077123817877507340148934439239995710880231266839186461905754451085753459079091084491087036016148468156851366965762705815684337517216606839476625557347590667332237055251185373404104801286458090628412507556643354258311657397439713242711709331335897892454743676176271768845092093221756343413658257382685835901325013144160821535105443618706168649699140228526285217369600362895145064092850955790869905593819007493355796112268802096988632099836735957445556177751939245478543950023586023463241069550146389536146719523321486435335451526963195245639046280597005620031381366232510103934388854722407454714332308056653347411847922783291923285942189322113743237647089237932433841530923861184473539979154187071470995416158787295640445653082110884447868546885850145279628343636796013503407828312757480014870442689272403589825480409526496884713062286995277194162962085734593635387619816615063504127532579609419263161514583637246877957292263999094929072017561044298428472390912604906478354194846734307199484220958088156220400663181764357746167031982433729544877425461137564274481868513857866811863194527185331164820892598868546491456205162683406852217777991373563728144871772606498639681924370174222837194977913968082119308794788335981067536011824589204255207435879074701222131863719312624133748899401257465268123382975421932497184053558104879139115993531805487541617475722991108755508276675563139446031370567513747986857111853463384539424266056645230743509958962877798124034110536961047594473828661164244255431896122587411599118540852877278823896486193546312880421819044647875982946831897826657971718146909202072581169183138414522522432932891239897109491595936368802409562052867538483328782988931382864559640221429020904701147764591709775339458745177837201594177614854992475387293050652035883726758414251117839970141789149220303663472504456740524225279890868898579980793546405326266158505109241857334135807180886311348209531111395261712952575302532885697939102703770395541560898745136306925237667082003863487192123115773553207621518484626625050349428707798023462443782564994581195028307230355671824640343268690734193123815993511075467945578675945805884659953867917766024798704324185274042310134370956927886530216383300967768497416815976613438752442651153109151759720393920422743857926919253850918916230678922368046421411575973187312502564146749853211888489283410242983202595825294010342978814688911971948847145181966863338414104527546006590908111103668814451634669849818226519743664152890156556098042732376440304650912038973198286998167830891901980229597977271639238697697567268559539057157700718853996535816188822914437929131245263295252608657236591386538419651618152648839629289498650920106515744280336572094460974874525824056061691190237637283732588047497260853598193184013267683553633738026411250859637483033228667137843560464975983229386056937232244417867560474691849105648698041082286328171770534890239922270279578324379146914130956520514089063036464891362129317745892464948875365868164059888935059975489128348454230313979249041624212367806078015344999707251513416991379960689101058661690393606598176950726122098182909573639463003469077155141331287067705372392139711488953063591463298174214214818915601690618228315522359829140856473225654155513870422019203945443522904696345726512280659314414053468837232755744967225900563509669688026270572645478768161936811311407919738873259270433926416129775021741283877839563676173727767826552276212573448480091086938454154568562999827412146688691416252974525302349298013916682269374818490073918764231298981832639147797656178499055026405481501339537538272906030398865422403623051336398823661826346686362097286187523697094330443868153436916832679144634993304524823009798900507427121864613985819122964042458274935579271764741044073125149437231746838506366241958824116494519086803081060961898856333498788230756294706411961867652503183649277688241500111243530119197883152749615421535919483458392999091432611534495173854608701253058633428270246574241035707964882865633911324874175137022677214184129990935764772917434613843670967535602419641930368914822006371233295058608253982166196476900150258886793236021744159427530137202121601487170825613092835079027582197273186701289294839584453621095104386362889224762104724314278222135262967611146722766596362117968668972136630954804228489452745760076084289276818674136385219870151825257429926023951403268762539488067182480516619727340415535007144522795465734184047650056653121336421461529766866618877061283498767624707203169996759808553824728616571742610103534948700472728604231150252654196797696215280742276159437686823416418346008376854660965739898484160717178227443431471062046760108218576522746923441237444989434124658493287866148748521782942616023590540751379071978865846608073639851198339345913025790530834441982122330733394416089133340702753954119464296964734948707576834460339129753655332955642364968046793792831728967330265075398561872134597452630244316834895588796134260302173137954270475814153676080525774983792248086180560762346350184968049355284948226324874224136740778219057816419847897677990790083362579785448298294099624624159570461735748314997971613388098965197289719417965983648468989681216828839213218680392393803548798861502563616811810294402718614991292990909844000722463662108799427056733304112527059102583121361756257832244646828291342113846851141169419676468131776573375012963536584074902170622115726552748660394864579779557275282139254972590813818660623278118561172722457883588564465465398356377685053180713272158991399973012132146808898147377917361911663317983883054167869926603879039212802956531014619043217248288197782241088027535745986456011031582795237835645684171722879859545123979458282499614516643557449457400210749790662834570698493253809091958741894465153644399569579387517716733924079281486843472716550548553145367087179411430896874912624055728933392221842783548285061706471140669394671006658867325516237598938810193215779938833919440388192291175392414774803602425099480440161797061179316398956587579859424043364793237488622212398755935470874478954921349636868819270268246671172003711395277577696358071310743928622051574796925779112919674442272389654576374940087964067508279918438693293485522304055042914131803498534048894195059571648537483327715038517932623032841972732415497111722296073846744265681135512945978785261172154820199863727693315436579366388368395707019245624268590926493966005886072908974084234895406173812437131813612662991697898615871567835591816750131148963778249729297983990241024342874184127968978152438968878238680651799176931776339104234336315266042929318254581191952328814530183937077946749678540072444530313521169221061982261011934040278594023327148758139391062621821365986852910731865271080494435655224369374489903128045956156806570144356615109739357494532293993254624035970259626444874745322739589681123023524286480102567749521961974309427041371612523389135259052463536681869761817908919938258854002451805140553775738569484163261485596798588327818586993280282078928440211613909988365930815296284786619401807660244979064767517671200905402014754946468045558432086410416102051499377372758947373754357754870376182546406275412317471502343424596414981836649496749642282983494772516299276256174515637707116149592849339542310761993935656166461322351005876596555967240981574072716480562782199316172277149432156760231264540114581816935426997246978386915692554112865313867484068353842124719737523158311323969778339582990304961327212261697952123326814334612421910423948701974277058691511308397631222308431920437501758219083418040693781218859648832044754196654792397245632565890355856678897234524825386754297079431235504119338122808767612186172058150631551863125111268078152914847233508792853177424607099933864820502083891729756702490371021938708706135931793928151783335062164644324541241215996506589246130694031592988565732499283225940436011257920922066236974630628221445094802626324373747767486487685966969196732969449493464839443355190011392561530304327215665929354630385668281263024135888049657525577307774917929620235461832958249274857270869254521888171783012774856761859175344605909338048846104495913974448932817559367067282321295546111201364939316929418761710027993125529779432141913360194443423857080043601496110272633667225531635422682723066532875905620205827105564052241600129041157492761869569816259324771176691536521695241838630524405750789033954599211930410599923439133300345544485983995578373835692268122392440969775405217364953332824786256453425937637235259117530458679955584650506019025258928214598887421674642541534739409393700873416850929296135334445663129950433259585254641013292743686832643893099183123213695581918138534050888975009382792610617483378040295187876335889793820057854898676319216861175241828249657326059214882158052181278599854981148315976970764864864555988071868427804287217732503967413951603637956271343953441764117658434344933352816006512925129537132797484230057841995178324095690723835752607456756412916735684409126692120053740515623144202707093176610384685556008398931134332336514650142533898319860072828567890328536473552290613629493777230074368737988563510863134080860822259054327478395138882664778815438193569610669603907264259580831880331685758309118542445193817665752327688207319972369640160622980571777520069226635267513833968470835467448750241634736844038659453967734301538632597921287668753484226923280331443714320327762848142537680239236432552631228378958749638298476723474398575436400548967185831977097961515134810538025322110862929625337530393823629999633510759379954424103719073624820094648216933468171738952331391642371366828862296673464806918230680950733529887338828396432705328148297373304147448307125348269323335348687745559844059273421693468169220113594825946656738635892883731435656717728543169906570163422021437053173204079478991553559925192850691268933030137084411853038693973148494586466279738943597929460205748580417443107347985997320746560010754376932132119086441295883829570487812015320574312512197605508958238553454934587592120045804147196335353694595948894585834118035994237117636325075296420347746871909934538986621089383746046895525095534152636169713180138487297455365772116862053524765076322265526487555982036884355754139120160835784819539483379175607707274013263764194284864178688399505738395190273595826749507880761596602870349509111627096578731725765128720527540124329113536563413773184921300656547763624191999537799481936965494320667056331577637268232732079987757015515920463845689756353765348007445591776668178041288511848380590319042768704519996491657539332166130339921421616585086705862319398591534506962487771457552772391795125844666463584643467962275092761578251360817623257220989058513849814997205818624992343880372627470294468534149850596801584115124083688277126410762743284582707264604142001905599611442599101211915350985088322042190834805648284438459281018335345126363527214873564107473596264089824522227846373563094756344541693837131795233352570007205683616146417743133734477701903868823230544077238912530838870195476716086775857867898966651730356606433954949612897772518699856529268524252543990063055811895854681561144915024337558653342100928262127470265355895967375051998112542928975551005747897186501835068796053603260199302823112696689682445521362371562941695090294700836467017311767310832105104423239123269705252909917323148656341442824351455387837378419242678471359362404352724464692870524855746598242852985748349644502808767712064931471561225834553651917727085873241051157064051937489790233931679636321741143150505233905650384829697252974663426566682929954553367664332011362579639810613853247378484246143802712454710776186187227750199535106299502458944001983819549722517704553052921539198134721781616297237562050598559877022817101659617200473752905321962514704609454026853664578413042912415822985901774413531933427811942803222412329095180049408745538064971624578618540479302685995162503195109399761194894584751042541757419501328230555311965989456188344555870473900622435435280486061160435232633714185533006465444639155276194863772295653956557414046639152555214863577547152218521613098874972961394795247008313835249536046236957322616925903515986176671043159084257503002812482799268454468222356681085567298963452292941626776476378745424982269115182913379564787973549799310225863854999122253785248546857877014057551587374042339791116256076696552488160389999719892524282726128224439134825300401242439338764133568781700903032171262310629733397400773136374917108413915625260477013283476905573834010728548767402995543346822101347962464716920336335359533919768598947390576862873202393346961693883420444946960691518846707248161969763679664079852587766121137388732158254675447368270830114329438586229562231624880531389576388048344660964954358523535346634218858361547661954479654910190655854013146365798750737777287691058095780457807447119951503001939956909677875223768098337933846914394777053762524288889054565410940413661959768651927532297184339802433151483862809239376137362981381100147083519205459643631184603190887440404631198931173836214555099553127049882433751541418104738735002617663562288030979239116251840735449843102986420017595848727235616348458912011983395759165682198084957035896983085137770666217974149881076582279886959909459891263931176896291519235106519428193130117442449955874976571458463367166321969167583205798901236538739751804462745614624010569693265832733730421787362547933415152675211190456383314357949534263494836368848770574895456081951311268654195872122299595253251821832805880378009279524981993297161309903989022894203487472751993233321771861387763221048698258901432119985476271981555727038755358245396895137849271524848073382684110768548315838797986621988312410605457446942544954310524988055094019205642778113582884608015814626605058662629122588781925571034355676323095867827461701126485775504345471520368002243725202661961172445224124786994995596550081663914119553654482713185139975999727839144469469726395881383404390735737587525243527026933768096367553104327061040368997895009744929124640585936522704211474762732175161685636752149483294217664865652440312479668473076936584792389937583086283637456921561969032100455989384799361374278122776921541749003763161763347874700783994289357267160993043544018182319477032673253816979073224745542669707954512152723389091473158117920503430694704494514631536670980114975372876647332589939096889898207153746712826753465056748266361663742518432970273073512978062335697219581695185455164920330899936223217797715222820566808402061978422784847714797431545134395716553585525928821511388558625350941806198148676424367127467901119071265126787669648645656356071038986234030969625366098046137054524180171550834581416450507602643854067355365336829253794527574990716535958525481442375658769649196162455765589748551564525303952281525293211311105910659881896913878958264196055866331959697336776510129035449357373371716312694287417429408073063748443965199511653147011363359345378958147558191638485997293714554615622240912834875678887661245998459051724365191882968747887301731761814688491857499317779652362616873131752205292074566241338634307067344967150152665635291423288148093921809151924922779064546213649092612058456383098625892139679072256245601127650264171145817783580987315810682964893865137749059412117580677829348043861676731850834662421856445288237879454886153345012714341831189941738358829451743574131191169452508789841651476319075206515667239134585792499003551669269967275738155881921852664946739033513350197843010498637712398193752690591763794205887982251770494686300199207393530597213472520750544375392410644986532808685634962081387624179274146115028006716712910531221223805505510272684348608222512658729264837599307072667593248105221383196459986695445410120979151869378437472306925456414405382475814851895896748135620178931249738777322673263744984219449374059855725670287176568518468871803299521097412680197088674965382636292112744467515857696159412727547992646640891633863559481084069918732933221755653920482313816513822039271454863165628550283651674917383265860530882705467466122723404290436977729727219016879653684699446901493549910990146867260921667079091301641956751841735168346673475034245070684967225069639160715670297739984221114672913757877073461852037163585417998217420622972026431230542154941566586936968218878460415506851808161044580457029904872495232026799464273242015707716890698934041932362469147687657328596658083235878478833508569519561230298833645531438646296398879975662996316711254869419293943256953269935161585688262698784458248532165763118320204113015826076389294660497766612770559068101214124595054224392769815185718835518802538382790072516343447252918865959785522049835717756430045637959854507980802565593241740193477687737708687750970750758862999190872537181768202033747739640443635010020830822207645120317201747801812171593161364847771662142987463199119263529872232359180210509564740775992004664199721714064476218586729124303234518868808568231403892566208276288546076462298354598778506985610486325128536005985521546154570800581806555157844252769247546458968316988954628297113614313846866519604806389291043248076763294251501305488342485764326282624724464206629718617641696216877394545866398379627354914652613539747528280583780242281213120193868427443865240156539033417787133520525972393297735797040101653170095880508737656348617956421565827342674757035169614286777006886667309557819584487381589689706980267620923891740602914915265278557215202039770096190373153555265587724129871981457665606379930222387076721520096637536831667354963961860496044772120225656051250699862798931452862826188458414637688396096165760157444584699887323546285025349508851412242513253636875081295557856000742939217427976841531840229441514502652613400352826325955653470272920499143547413964578769798369234147615903751539070907526157402688574244653348582538513893063917366677047327169809978813851315202910521128741309813697798311313491123563959404426744710750945121316020215208854867793201304802429333965220001255688314645673507388573878336184732699612852882920621112057753367713026641960466731773932939938762372852931533597571468592750533631174587851468645826337179423773540133376558372331488912399668343823087324434523644706375130401436963624725702943959013711420208696366812308562334249495015533910155252479944471942847483918107224376551583015034163134783307387347598959114471017646768311492716963606556953205649006014815772547354464753216285536333416641381934064645405514212214265184133098327347696192475989630073047563435928413844936466631408051181027812560984851444747653785573185431150250390510954411928122257908472471634466727239950574710510848934719049501587821638993687128908377636569312368243031780096849558125829350404428496464925666609419196725229233763834017835442001095695112336349519256376106260620395935041331342273951817152636964581953091367212310490421627238448352961524613513570494478111525930929035635737101535819651232378462754663207456781541596236242728784636095741363521073296738969366554022490101096610464957256684187379874953272588540971102372243715662209030401546577367201324027269029726133822927788523306955249036816724654182531685840151712666604937050984884931448736361692830785405632808407707118739827159502899843921251686965247848046479767582608731469837833095942998201346298276279193058933635538918327505936963094575696289687403134884095539610116644692234460627610155786427348652109693948887694558016425768561313718667073381410848513931930159476141730295242333739556192958923874870051450654609697512176938061101247689474565246733661144902540449169981849962368909567692543139279688974788158481323646478948568504157861152862919145627944132621466093481663477625317729154426895961029208151059985169505534531851047550043527576978471901494545984279567959116057895682505911578296573312166537426787264866418803050669790538242384471367622366549817049221316784840307752498154216229015396062457508250293951680539869897795317587341199508539125146911097960323092982234879844468518727789983643753049519795113874472639093538292843323001627902572379364406419114868984237108129513415754567585546681935461647518619322478932589319169291512627538429544195911455561122592619241564838642387889139914772064658177623273982335783660155994818988771052133873902276000787093372735156509339246991033499851782953245393674747269471569419661471889822903789714049846131358203483283155018732171385524997168161486856813023788202918399612798606925579906477578339526062153257891078565896628899615255868978030480210560708214296968750353456588782500809700924821637573371873629350265454752024488910895395920932871553121804018456740720469584961662546398264846119426106537328629999590170581395907723039727652684440125261196662748136419709250671607747526657413051529217904838422498082583199158931107991528760453076557812567112417170771455491695203213518199425763434364259763755501948778692943751376443466766228372535006013740390392158748515925258548198067432742242736930427264568380037670082976528487958851499350912883766418328789916377382576095191326528015986197531419531723754225384514711600777239798376134185124630316489203966320652962614843653742976031855582803681478128072150097621592248352104902661192675443144896429261554192568023958134674904426986885274711714382035114373157565884392330754725031447159297721448054888453895733586252428743650545949391878471299498498597996617479258699991837176189735382183481123745379723103738085071769597584127946591977173686242333379528062585374338524586538038686374079483457585155061267229924545823284032268732775355263860336844116259939820513332417306557014622912300673414774494818474526854556367939091899649327393803838787353941782141455215614404574953521621966879283624475116009462276558004780311911855722500485249617008239111126873675616371121074748091826333648485234158564113435107010369397374274812670394949538838103759462315035572025880944475622536616338384667636264850354255114219601061222052886957924938595082283951278618662991748471540783682498950615695183957840018352818754236935981158572527342559869654799529946961655287361082082634749734533715425511882726111367380720016085614168232545577331845478223204692242128488329393635318137514417745786887904129664909835226555195836527705499874973386219307577273064768507522736923075652328290796006577153158696326661113448438996852119589340115153615266280339393055860571239938155739669575228714789352191134291217743180955038624457001140971726570227791909174538050179448426763889777468237624931322268655407719993732298255162354977015630157716149129576159176640768771936383886633990402408391305800955918317264253879316326143134571653782365257342130604349596278365804023306015944914656947356221192887091142754392825725229745658745179947148991412932330238651752989053176577119497857526837153604909485322635249144624634822932290516996642851150072053366772993823157737794594953688418887519014755209974943088069263907249581461947261503558721100597648018097518950958495552717628195192803201799021501278705718246296474483164155526652997545402797134840145342505941377732768212194415481004786307548601686727653763899169987641615856947100783864139989509093686425477917046732649288718068831158093488379888911999691024965026555453734723747352155205828018463368692737222995348783117471356902304847202550862667024071103546651641587023382980993273962849230884684955486316321497189915422456790241888859670238013777180960169094953742980566119338658290885834914171550106872029066921193112447944734298451130574532525079655790734586182138150537674717384648154470822546179115728955883049818325733745697781656471357489091194905910433639827318115949851311994567667319926537186719721844705731336362990626066585801139109288929369375649281645832740239059549673499362914466996966397527471685823240089991651344787881125800317519011701948749665349970120940705476943410742496542050983477098377209119916255043472985309588010594585897279913585862879045712438854665540546691809472817243907036758705371493262402443625510420359915447886275151505264549286548969851031032876346807615053935155749397516321111382261762884683662553310876041952760440591696329710204643048338990857889528696091877044918199777245213308431128887190133546838284615758967085993129398570822362363268592536529710769045162261708876464357434000640421531536368168818705329733335551984623916168368271519414714668867934022635298168813245037228606638983736424357430273873569744671630522978771383695422376678141816311553367114255069516560870951265119701483259336611757338227797103275570451853568895149744534203281879270417041613834019422828993436107566791352643057254237152350605388884862477935942796164258694609896817261481922094290338550501956967428602643372915780771393971739338255002679508490556438638649901240619804856227425970105517589980087758299993352643374276391885042570276212334396663243436702120729186764187587027626286950259669418703698355384184991143344621487543919660066270520441450950551723198828058577232813934326620392298758814823646574728288551157746167213275015079493227878802420778909437684538081675181448351973445889535533591346068853979604718325834533217497596034221124715663322434319419218998072952602117353878425186923428825602010839987784638775415217016144411574453792295583649277520315070791351519244430898788964131797593196923833511656894766959985378411799866912993787746912862633743263713152696648262113719428376169331958593969238234530464897947939962890506182814802673819572459788371467323893627953635318067404728275602585704594004556056334279863691062860118389605961424579567286795738895496220783799369055972680107391557847665889140843569440797370138986659746606832987451542662542999554728428844609072166892332117389556393218685738964048368356777000859133794287439184677861341702895938045396379260739422374779647876293204144706370462487560495251449129572830946474646189998524450597936892287938695509684159124659914450680505087809371405892713302833056928221756255377889277406197854255993923570491537238309227481497420209483107877990769762127074014377708095991248315165558523915788369618986665094392709496614973904120291546950931785535282500620157994650845177812384029432150955919723811393443377338554221424644385870701987596060572230060849779500130095950261854193179984424143624423910900143146053294514406798075566101866380830897155031372642954599436126174725467729816418561003646442456795926285427266929965259146334621856339884411359762513433454188319865344673578845616326381925862408309069230507109550998884316936085168039108916493258103949781935649009201211307092872720848529253427402848658228675532383562210751683041494179725152393841655488991862432090470882746884562481477175675552407497189165876547093197258202912523824442863237647042048375767346305436197677726712774431071484078199586471770458258010405956005991086265562248510546346629292376670649121874045829221252451491848240739727709222781771756537976862054673253929334117630333420340851515229056451565322948573586647364977494966403530527822981915249566802487487084764177315444415750646039571009100851544601653453369748875265958529788415781276628904990992878881244341857687415628282333313933958248163510902888093631278418456055121263410103470295201829276172071212943473423540643504859288592292815154053826261928797879481837460612115193469248473540911902691286002671359670723646465931537392663412685452974991730956252268523170468028429590291741629022629633203236691565552619916163317433527824010962791518078172962555865998256788741198665706353249530247892402342172895666372376312288959526198971771373536126205167755380598481212935422872165343314321230691682018645660316676261152915380141566356575238473512392424206173879946289165896322779615926931839242573191500824156653059964734572953228306611559520446361130786357491623933966745826803241852139237115200249189212569452326833248128800948151093716287125916392158959738299799286849088678932779577568123967627125491899730659372657795597821923637164601482949191039401715345179697865427061921831330861744503090012401309953086815898751734904945549047810887992407131698672514904739267415354763926113177454435411115597556120143203781520547439399422306314350433122610851933758415802290798016207253986825383209707676820247138666184781743089854225629422598732256363681275294599184845376346740583462857881998140347060308124222836340992209381839413334649795370219632073677398092037684964074409653772822918023834605667088235943207558545081363606385818742374593453527552212426285108978446566137462018498411685946997491616598521078126519809361921986875357803138254661729774997513353140547601193055799072941438784411687794758715709842322752392654185335666640750218781649482737476081373754098530184880476955962246633582113965015425510327832597681098376507345747734290840292118902618104217729384221761797533219197142820541107246294089929375197820591110124453162904934073432492927677869916207630313302983101575420933346512847198834806697883033544619621135660904269046309955752779992563243147891923127157562952123042436874455521989603541098119171994286048576925950189193370378630031789261678098645206212946598730033380415359767366730584377277686070832935724756641368724939016428929718187249094559244926396921946363589092815567619887607193744433614412917472849477818433104991691916559446819145653744965636260782091327085822466073730890137089022730894578197361004490465284725333143860063711939821296414047883992724569649634062643982226742817620866492785777830334793630193064874620498763577363604160046099341580929471030095937858922753202974709978787661058053665237260162997391562186959186144477944670677648679972478749226447516234755860612463558727727123479696373787606427919524510481574105537053826280103793939991468158507229431998726108318825669578883626678486763862151759759531824499559024595889576361163367030647285754338211229488124837854813752433132423171954655442221946125887831616425418168571747016578736761508856563941946415137016225583487469903301536603985086787626855210571257472177724708562623744755572984951423314828126044361370012264005051787832687572953428878121684913307040132797785337915484445582572672857431992508230535271697345591216830718621840356939936227836428625870281333061944556286660682952545457169760099973279043840551679302991757488798850643662734841070420437187870919970538165376386408619350432398052488082211028298436757520262408843394913546753826595393599371990601530273987639692045282945836944917254418701221592449656990209998776250193898632003676962593328417615403473729440338281071906343381887179320211206668356216286095688445579765899877497738792933413965854416266761718323766927753614984059551593955186431966328725943766743325401402430081049274174866199026962056926625629140070532278803806693974168125394900326391086112824739725188895711630959196825335508135486114425542727236268585221400757502367022675524843409742431919473688457167039965765524261242591521190781431074091102413307858646513485882838551079037286179902882266855264210468850205356351738836230123912766282283731171262840457432490855111828624644079529743074878231343135771428981445768351304186799176190147601567379566362211966461208195335163947982280960372014871129736848488462219967545737619372338626785267918149643581316624137284670105620742677589154459745303232928351383134111811217802737261257903313078125946604000120740415542107263489607046830792676391395618628558793494867027480380747738849095359932765288856531781391520076209826084717539331743616585539522146293151368623799820821284308873018992297287083425721685189560909571448669098390536778032956788135938301239724372290217232535327161486098493927482253061915349445022510731959874910355138202254388186976536152775238465158989856874478626802700716556690108500557314715870528625894146216989130280506408214339310213631036459617808971936645063490969136848628026153771686189461672629331244567843110594777916445736789532305571938139411856955292314274561286771764451383445930118257446820946232548475454832206438353673367239804132767793532749242548131260441412886965220460236532318432223939141455979279834726599434135298268335066658760597778795118636927686465043733021412584500453040783734648247211148485170196967183258015667863663004431726881639308505755916204291591742115953678633155803295883505017837926565652825015419828427289897882856754123339858770372653995185478052560854084349828414874643225799436663315831002953688396580706732463789231825046012317351801804334650391672439826308516677576373627842788667414021633035459283985619271618546857578076862679488883463014324677964351919876803021240607753056177872796541643359980972702559769776813157982104072959319689025061275489206828082671314674360631689910656615428474528994510244119002413576301683419087775933628954824072627844480538868229813334973671677080483594971118898186379365492811301722778386135083722224871422982868091802922368156547761491515181559594025847908330278207564526249236770212286750455464333886506261761761026667343160660029275537321214051502152889811176296018516468405720722207556974359648467512611559255163131613322569443832781440609718995732082801466768971765996438562111775255592496313232960726856756540229637055467250768200490555582097515049590266944567367589782084035367349714237340168175847168479654139052641049388643104256191809190202280362613097592920854623786055552595077214546470947522464676884871068835515270230563324729048880152173283591998064401255321657494903536343244918559394941417428177584692141073534289571275328279029036690191708763486269199154021512442521411595249752488565673452662342676623375916505188913883896847124942356026802735938224255405395019415487538545438452832224478439199219910350362012976332362068796829717621457498098544711448957997473325892291050743904303659776825253963753246236467307993549100685672938042167711015380035072473939623394188821278760870478974027118903319240830556244166083386800657036250473929498541482911506965957818720575992689332994086441966439503396044499532804625471595527628088323454605473900959714398487089775582275845978737771685446365246141415850808668721199726187361437402133278910654657416615420820463269072878772334698851215180423105120212872654784482156612280982410361198054746200924861880366892064554354359026147336533049526272596233178251140162996364475718826231038410736641127766248572277736914733103874581579090626939938856894585045290925025540275643576364746553492182111347427341643557825166332906587497941699787625260917809621401247231232793527379545608141124681144563655731289324918390815106524035618597986945178728003977633330930110518486213544553333962642169119114386871954799328662007173634569506420536871013714830949262673628116818151115914094837525611268987088586519248921934453178056831189555354441728681779560391940223666361063979316403676262141435616875212504748029245905496349170378912586876650825204536105862105581937126841635216621346861657830164674048914849122979831230757929224460784553181808593113667712749137211884596969914963158891533426166491679051937902257522075274724138604859908186536471880696953282325844051118723155714377852684395635927167490952906858668687168113243726306932541570386310594667255895322258654376994766782662999791816357738990047760265782629026776379178561482946359394141623946996918848281314459968608556302201851534954906321513048820288932195163758593983370871682121915482735029873701366114944855288165920686245482381729145959719510263420340408659894827971141071071874348962810857861062395533413016662863235002955891184670603672578448646554500190005617830359212907979047385903888384196946372642789723176880292348881882916822023775453530232556214328271065667972978255325959050920411016907474284177304106290420214323856713469196114443477059426654072445869190719078618521159892912464037148642281198025732464057405663238778789386441712630531947493906850773045656183919378309588281164974534632092430327929030922922820565999535444268489304312813488570078785027312594253214655174369159253209868224966315128939799019243100817510748634563123988740372921335970859753175957445779270211864336327502823397159982997674457276882762377236938637887540377894258703564481897759224125932054284734917659014107053928684408129710370772829362882857863936740763702262981161170832073885737131286199298594203943150459097280484146697922970382942352691028292491227621253865199138029451748822233551416700811383586780691656582958641830213410499822704067293424312309947481824529992723278422345839985851090786745356795837224572431960706467228854454597747894259845633999940530897278949050977537267932562136315943655462663435273743470461762682442460154563809911549774735678785279384668505248463596923217005213748191192935654484163821735924823945278703606150589802795722363307249892646784068869054116977060850889782564485762859322236960715441341856878932867014724993194675646644555473795568238185539364898844046260929685613195286289173207614577611237519758236842949606833499359125455329931461045755644946980154985551142352752943782278268574039441014780304590387990853064663249461235435700297950642004133142579130043039974321114966871367238778194210295818883676729604914322722028747068717579792957628591813387159110301891594992262998732014081134164933977544405273653318233498078289129317685465736577698180499647326848023264605542765786680361092196219838814199829236939575461375925841451488305742382044027328476260774724555476814969443171866214357465125130866607386374130045253547575718347858537685099955122340076121905627567470155559045602812678412779096416600432545699878720380892584865393724154306173632370047094906355839414340795206901154678200142856825171944828027766032819915222967282357072856870744446741337099769607525837813151858706152146632256607361023593463198227276668297584422372737853926760878672487531301349514623708470225018366952405862371210231169786936520234167759791786273343136586167125337101956139095888194466403888694642473178785748278447461727984909677353265083028556754477601771979864712836392063267726016923523982893974480343578863966152854161276488073187754217149001757359801245828984433574722977604891788513359043027079715872999599923879727877716898038682276613680195292686094108166577449513724494791581838536085255655646049146739883174613764214034518940131418589680389170429889827853295967578113201982341913694367437058646955927406987496621949024087582730869018868008856321124249591201857471495902766197124869042620839943693730220479821425080715357363491861039888671067775842947576456395699293164383196674169352970287421936298105906732318263974728735579701939945151459346495684420954184490645218131165882957945530148297911011975026364394635536489179854679646527447882253355486595871755290218248854445814560504554581720115038959643719803701484143524463983532695733658275138055822656547899718444645508485799676358650314816537422319776353882289399213589549906616810245419789526522029901283309460983879247722924144471245632841679312417379476712310656124034002927756473108647242265287378514741681412472585686040211057812258962502273958297160890773765480914131345656399237493973658863848035316959404612941910597871547857658919954997972898726487321847099147176394574181991196223474596237551928384559555993434172095357012233067780188934972968501792918732537363927291752298492903228327512917307259506233889417455611062327736435399389341755760986018951383128732179329225969944998168465755829028748875692726665758859649658374459674678431897857469884042757924855161356056967706035488696348175727754794187798391554735564419909684423799573467549551338519312656040464916208956168759676025865439207296277831899906385599060680376172243232745632147736160916649591842418770281802923702595915286019294083691599309755551353359515682873940717437792681564313381177591134075394263566805739434048304084693949161612839796953118509096978677098108957476288102291392413367098529265610360419917183748349038659455072362433591161804773541863371570896061821677562689555048943408257686508677085177790469911912186417700415791329634549554168957064807689897937197241033987226328377838822064927087646283680986574458433315779001789617780800709475327427500478799646535436239065289899744118699338770672115110975615517783368234843600713538314138320748486217117092078324209879652835875719064836134920511672310242910576938128785468618869271957745863413496444703041610455633638772788440071474977285151633592611243114485526468678479788352929278759093037069221267875202575598137447033583815995689159481688190152449440714222687439212354713161128712479849744050783379787556929938891973494542520891544636063498803429856373854289224725231979180622901764017176969904731938853292529764293622185549995187744438559698605776960444123459282001245232526531318719984319160649296344399410789098745141873164020633404960799963858008518584829790303940261682564197946575521175856740814309829812301891764526717949411468177849619953207672768913444244508173110527104166472672277887017758746065968873279996947445507325881151995832879710767957633210641925973829214714637182656419389472200243128176627644219543163209423165361800444847424199920495192309439177966970202901611278253630655097351073335959803892665251189267921336865241011327997675478484198235021192941046759365837719824478866015974271607020954772246590147663835333372599158425971192530054874554000792945243349576981285672061388980642512452184183633690725313179112908153288217385593380229515723239312948581952997791852372776393750971054284383951663458140503122782208943589356665714829945564200288816335794949318489217341159731881649650307883424310268924100032129215101872245233429924397764777197797127151839399134891663015157868083835399781356155858243534375295023268617265963116646935304991962990560272065584933072530493990177542692039556736865051363866137607920570278844500057650418121482669932404109629674807542244575687676965747902422898296952054525770111631109758460145787472364926408896678432616758034895883772743564343147933789315836573715614180616686191512609111931494208622995015401979302769335774494625624486955231596382695630452936885102668618171375065434159245103362551235019523532469571823477851419249596107304812163735517528196148508447281103245898528550140092978782731234592521746889387642752548988886785080664896671446187261963881872068723380965030545769805031446315951706709968916536488084402425832455497906577300118296824744017766677676343477123791639656195302678618224327651594850947115692470034224453825462543171185977377044640212135015288748497677237750788346410523307844870965947561542185315798893841791603246796750468350642162135376119820711963960497085626511660111127867952480042862776103175325616369331059581458230286389391170724843024594737167956301222889946973315945822852651115383270644560146070618798729554510390949942138625534983718011182831235631293529336450689135933816956284506911115576473225574959154172609062528133921513230083361377541246940072975655851219099451256184725181626574470799386192152936709665905556813753779516583167318332500552584306981238247567634871026796895352882772940950465946255466201922852897035761183564639083214136406328146729363205348885202657706755075694196579120548932782330967122865178941919952421807773596337681971668872593844626921631127335652342776146203048244537464650914536624257414905140409618423952614418819709615254688281540486512079518800980735083620039569245434633148784462108335057443976851468226427455898292214060086895566258483698603234311654830421986190734122388334564149341414923670278538939374947223973441535462565632788815653645547557991376957182118155791702041464589868864459210122961067569922613801788992998672049065118251155236777880883532079737356965557466348213804931932696391212826757776970229172086987041099654061564668981110282556047593529227569562407496355466741263285381134675732698335449058324812378485473083420838081930042597198361210619114112665971139798049998308141864819635405418708456181240418799890215754547628289581092949266038900468216264932960349813869665390092275827786269649379863603932825184846989568176933374785617110961428820852865595046716352319539980181329112079686664815084413623699171056790816627680797389442145394751333878710646191357290500510446817085441894243329676828340295665893715471249965831494633642535162205717918783648414923574182739351469777069726811330987228337318436233722257059011103057391104639714686231980577572641671971949528703612056320889856689401951891481636283667755286162526257532039469937213925679314275789312114209449803814341875745963607424019787230306531682004320367341954349143563814747914254755435055722477764690145968379860975092686556955274458958533378172225598671047488708836825257182064831415836293298107762847286873100324921196151277831734476380681174725807944367933497623092039621314227908820849638241085486473280081857715493734307034124850536737913044472880803464284853854357312971456749652701688823196828669631269094272656852159714858683951991815854831695117894422430698565641687516677778000407731833013729588936539765424763593347760576663352402885440318742471697715865334677477278750865061658332478675550156318458621919368509662075575946872468733266892189773088676250906956558047715319212173038867849724994277606520513850965903068072532045042185549959717059655209984258356613429281576291385193904913629198751571382893310836095027553291994227345964367401037134786043587826663301658408155340486873456836346732249189810306883094712172326278876516417084206938525469329540028484427656977918312670318043016791559999904784922790295116089168387467299545696655326375612173312743472198863638683540174116133952805871895768930861427954929536274412279629475458987789468110576225080852373696195090539929877323997649142528317714505534731657783856421047905165762262177396795983783977432813162196716886141105115637567725897814161495227025830680517901097266324195518697792453792827592338517719671435319605724362749636553859879667603184964082637392734457212426814675868708658743769467086434224107630714286222714249139077513196514735086771368759139195838712271690623553806716271000195012349934124571638913271904729277479587721920383542776522127056053067459199634925821445746979081927045686981085109278965410446252465796588946401264860544118952365027428679253170187228098466420706424664659900508364257587873756760368004645225346010721975237336825671115441583477418391327092370044182828997143241955205079466943317368354131380527260094579180253407606825908924403177378669287283911689191980222328065817459087596749513164561602369256368003898271682846322656596864223148746985694378575640722422561851233465971915803222934305938650105676331247979608940618000946483978043628477907323310470140719851921651780486812148891035113563741963646437014984475096950323317024755494785231327417368571472912513718014258161759726415505577478527266317249112739746089440449048545054382827876427752222365910648807231129181149769841198431409467694296164322998261112854480244462127773403268892681105028983441584334396130861820324174186700297504666667346363488293719823463342151518855241574538481664559843952749110656808983850034222357516780675458858635270974818021379731472155842291943860669384151513360497261980767215350950888392293948970427108450158675799116520246934568486089246002446677245944855977501015067958563488566922967873327493497741319162948038548086500981104959892959571663888387547388733643329540190859852386045194083261510624473864400262633950871473443569462262293014956295371902494659238992568185326459923427543479142389342312423517929557447162692241861184128221441223192652754539961583879831019335673362193887971817297262848448979959867962556098488158701676699622187404598567111855049192735149989915217945955539751169025634737129924534149291233365560467503399829907466957052751875665248895817131480872011190852081798727018977739834796205886872061504181279420314590759834473938320478108686913527888271417135075922308265964944977258387681469134229014346874667051725552404122383311118582375921647197689286377706153349317687585392274861898549231234436929343264710634305164229268198228655191425517163899711454475444408584900176297156208338403359211292703542482985312648446327972497561767563195291264674863525287941911488186220841361474685892173731108495630132846026741141775356933713764421716159842036459155137217190276128935215558929255408175041225849183020985408239158178638359273918884371796204126497172167245745360022968255827343851866321686271619668997706587213365387614260446670624613242572565104833081976089333289267438082568357681287730116529477567626412787872356199851411547819870023564252283960849495349601160863217807474313723513457594482444131951684726363712820798997503742279043903191325442716921520737739246446965158909719625667515866840385064478582834849886411617652996755485861357178302875631234857709863256514979366065223559537074647434784821951146653032994502552588775295385687322449361661763405318835453479365447988552816481893013188654507860355118489736334978656118547113573917043979496243926049846972331059343377986611886953800657014913675415102242775316345394918589580777769962211895181468655168740550560670208777114792419638560475123644268845959056047923082288434844903323787712044773195650312090397504215816934109664848115386859525900732099197456565523376532291036192333674150616061570102561688758735609897165192944923418811559976462383956480398152313220718240407336330824799551929421449308173139979658240758643657323318610046681626446120856882994067673299316225415639945406836072161226268424400765987614445075579358874918103555145410268096376658983830697509729736473953013633197665284667495439343663052219988903586200018795374329391608809298599404231048237941316579747506775547700885698677729465157100782100723062119731506681215206971177874374075555384376110745148039341686967100388542674134652849885588132934038542186869874007094717197400702288517987898123819546392578036700299083090382138100423638834825417717761279354923385944178082608800423764652409745232925403283484063265339086009224226109978487889001964135890421591192086221314902968240969760208086622821811814209153871870578527890027239844217799303398376649626201712151132966064807126598153323742128247020690735225053910391018391012945320243281329367289816193596712429746581798048896706278547948124507472060297471503487474272136669905611172582937156769948185450022361638735214033227320214961163628191851638430618643298115310539677007910946734918174428843328778388687853982626324076819767577216836379217096962025989865519695747048723407117243982214572787624485141200506802274438302959137563253020673862555594852088495248928535730088272159484729436870648587595273302517213710082955129478883182427606795130740135413297732011857957767286974253400685613086441216845596055099727789353372407529262158858429486918611337320094575512521732152234657599364197124035258698796709270561664160648931244439753436592147114653372813924628117119383248963681699962732776727725810616868887828195275967596683235788849365525838221885604631444712831126535648011019165664871194761127167855330742633564424976192993165786333393752320485467003316241396588350928076291757676674096453236967130368329154654262933536667974190776378840734134552384349284997220610729477801252670585766594031386152587224549697328009919741242798559512118383356441096491633692661135455899639707246292648936675415286569885301695328873105370762850582524930673068424895136374572928292679252311297011065527507789863416774137509687354557086872035458256014600630219559455832892539734896009782791903873071851008430784093999819854286977177228050523324512037180486569331691042786376754944725688779985465741547095585359487210004445489647926182442346327206852291931923053874337184970641443394849559349587678469932776137041869260648794198246107594691287568159994888860125756656982161495882544868944428031413182573027145433963471675464639585214708748743475199478649058801539188445187303495412662918317824633641596834912675731959840715151618452663527305662642841440564544893866697649211871840222502873391671158703867448293199259953064235123485779388900562215239766003383121619736880824528563236918972607713693934855235238556529441117767181221951235176144075936866025995712273973997720493749471495937331955888335568932785493151257086119921612115671225785670661639803479764251134083782723418527402484988729775589239428041614409421437364367735223528049656451250106256590284219541871694214730048292517918509937153932380682853955762406175414492633550213473785717384253081052264166709857683978518043938791947764174367057217831481924802104664076606091062199124681446407352724652453018406681334635661948841285122856822434223525467369340676151605601521782012526938898319117731486297711856012024987615847924461965753103708766423882906631014510733522290600282944626872043987246638490794619524417676160760384731716109911680947953220752089713891981598117122058209827848526421025181673629929828366382934933284655445818973418386251324538413414510605147944960715484589253821519331643188651747071902909116452487857527972899816489221893830315214842835822226889677577245129881883946519541558439328038693504824641266587599966802031111676022988887455052756774053258650648801957296933933534953697036144109587340618963504758574157572938803135742811922412758764345714681001284669882398387615487584966798693478081569736477987326701653637163209244707730985632334553906889632662446698957234443279175946273686579755528881435684870275651827803594530741126124468415154117068038899826338578076883968996597991871843483066728826247207769579950730874280393773865898437861205761156826770591295883667354616286300216020772286710394714792171213434264401892437426363186773238582913701886953132767587484055492254994566239638741297147841113499235354196896874326539305903871660701506950552395581551824360487833972262462604544694374344714407442643325304213328296725786331404031737716596282551911426091389924991362921896367278568417296802447376208039409756661163135942132692659324813640058507595105540069702268696769252853460232807176402562674878593519780418261011124290279879683078582768572167087662714454362233673652976837710653473382650742260704441585625873687823179277759976847393915757912188930244540480618494075000599632460648118536933123935733744675427326646039814180589824702812989329610246442438775085462937556392010370533507848980529077495464832507856344929298084949034733571732103447407751195381679502570971244177100310325050371810248152216581892778796696246971706310169289450464714132685230701915232902232941368064442568553065962755586287312440491149782265930269103462466913446574053537725809059948925420321654933422548729439132027865199425884942534576945647190008902375052794928027451656792923459620011191684351611456713824692937875924743226945393650120813550365473249088678816726431493559995143644195907498027773783627995279039757054474655496167146760057195653462172735622735897611279777394537426131543850248220991973066222204294475321790570550012917053586336570656209839124341284953349498133193864618006121047609537013303056268516398014326925856966271141012302727213737278805215014865974082708778572766716912956216922971313396238741383367843904271534900958182726868217786433044691770336361117345544283885940388183377665922867462695828873890027849623796111145567274451267326405750709528171123359844542600044599507217861726198201272464218856418547918572508872622267076954855199660364949954906782339577026398172218458711993114481335735856116778347585277410403362783459079489346550389101454691760909984803089201327936299935643654758130239146415152940477129601379456855095507365674995028946034473863589207224861203714560560188572425355039893750936572009965063811283729771545685954270579827785488789296967766737757717953596530720865948087098398712245378423427152677103921733217112343248376293350942849274613972810101383930202433673429357362989589043165754357507196098093540451855181390100358066586041627373930583129309073950639912885225112459253599059285266516701167986237806703836777874915306171891000230106693909118755404581885679663057735853601657970881111972633579063757177822739217650906453770632478470448116343014158611691466484319827614232661301094916657892261219584940168237068588091450741411106313274334798492743945946764404770952797734282224346503086575432854980358928112641153499757446590816758917301102573719678497300329465986505112353748539539448456248226209575696389681671715347587045668581391365261614751171153264063931731720081599799930629286447661986187664109452566103231791561919315171302139719195923736781874741324502066101914854766166323002350347566397177270153528702224916237548203451294244669421160151513579824346423089976295264417853663121139391913640283066838969180792095960922981239983053076902371386381034024545723871154325919046514167289340444114850861716725967211147808723438168143898473314695446984960066926017520654468524872982177952642824017954142303730318847683684090308421226673685810797077699264829199427658265226626992777001077419605322222591106731504614122943112304752028017963591999994248309641687542428227699326079965115404831845869483974294140868269048037823164304915454089652245375239410230416808824475416466048270686424417685308833994852143203337056110349721148466589972913897545527812819929125276239274806758318214136531482183305551893169319449748805534714257147295683614626188910451336015090268857206667991705606036012944819880739113374663110606697906290503576102473895689235526987567149691969754755425050444376296977223764940612544217788242371292505721230335846725748712766055637164207607645876622653603201152728662265171569117261434043502359683605738427574323228864983617168883687457197003791319593834347034320550286265336040759515427553239356876886638245343778434838176733484401753776066524170176538983650905286988086275471846800683103914286546548187603331647889126573377600957219684603447845337453252892342651175099835676654577358630340909614007330068645965395815382451233610016090477021722944834410761832228719626522199699859242946332355664047371972979882123663181140173050102553910266981573388409890282784433563462549668413015841084172488091515159657053148594501154244311865077810609731846889692165618075239993200033460945528614353058514780670304132019101774931021659891148108401297388636991231495952239022914136955579484741198265530748320737167395748776541427773412265468328073202209932196826928312857887885465164643935963547116662961519544229145705473390041317238144050188303934845564845986185534265180506678604689077020812906777169765477424076986861875054350490144238118117254357266259320766747502222008513328235165936435004770880725523238953232159377708822510899195222287996914866756891901098407229501331947918840618878546457718021595753915635158192422751435393095590345680988517215728461675928422480259186908287925670604431771172362472739013130760679973728261836138458819113368220966810167629322088003623895439671776539921803572296947533809459457801882478350444882521980673026934672168175586746391777721585608429219327983947847771197215265021764904862190249820727369018115935839591783161340265155474632170521556191097546178648452214108015280761458638752119621530441471024984941873511848760468902772728659546751184894253111985741792495104091725390501149157377192920523912134569480188243539231115247813981815212493465112278705738746026113851343698452477128383839219022698894467856745378447689268472606171787696089330272114437332544927449280173081273091834650142480341094899477269666717695725963351557163068933239991221225934224160949137207591522428869358794411719294193893348464207491125137360572279889155412278246932448913017959146743075192315970563952945866590897498914781834966248175353525140120399217260167191401386549932721471192032684541992438196586836697608321891984005658673739176092087461571701137780722984379865450081996371639136183321351338499373171102473418032810637777446333459060351168445077892502390573931356832466313946085216717331687514173431966937210514364410936229573998026925104397797416677461382073036411257958113423161412581933999188791927761320757904084599443464365551583381120494532367397349489097326497947963934631785531154309744626952895826815851601319928444607888286408426349837183888955879798199372443943837265534484482661809069099099126179579263959535083869474687705610102198591167431699810362513825817924498458211904407872794726666523076227046707532084851988414275013759146435193276542534760108656319760883117215534390315075887127274545948580314300323116270541810481551476608521701522086038065788843745461974857533873516033820759471596647626917356049886537848883759756549569376356900871434688448203540558317083798799812293495883281383836281539943506460575064923877356518687943604959528343301607136516535320727842825111917569119591831389388533212425456561860185018789697012537338555196266783634808333959816734544624516968287471006231923907585331764171427972417099773834257213871568119686170330208064440055175809233848718225790548311016001875426674650486166672505244094793804419463754721284100837203686624222930793237014292971588135966660339762275736311733007519432395235482587865521576834076919264817942045378963351920797382278304318399576511666609485078021726534138931325259700479442427695659366563436225915745459415642423538037608609190733307586426919178662858196495407790144771701851357953995541307962764888627812841712176717792113826903717188605670978392652103145484785631023690184100538302671042793115907670790238939888911883084667078077958168684088995895295912097159473913850061673994910136757758720433974393545290771411363416833671754360813897307957387063153724566444957645454472950747924014531685855283516233547518943729445649836485182459342152541092026960107981869465671273157403153297400266405858752243337988393182745483230982961619157264369559888589888575884728549619444630675513888717662622352408987486496260369872533449315863175342043437125886969687980517831445147583743118836814689468451456081646485021285526939644683620459740847997522762881545671261346658250226492433514708642594638843089480798718485049930481505125849677195294505214114000868243068393615520571679690462188979073714869833911418154987816778620108765387621797877670757032879230204233616657390788270724702571138524551233313772972014243403391539266203776169692156987053050478323821435578056420093665775389656276986688366447553045281512222238127950330303141147230732756945767178836937257869564434444461055025531656812614435643873161934206583053735215507678009459181947078542429334719566389839369161263434505107028299939110433508119355306704703510315047462040608101591533843266249727665243638100980891493844171833046291832953804093791833012782868021808523691281054879618897929789236646096757838048579968356936236256784657832786069006490523152091824714758424406142442883403517981352246571546825744039244290765016278992933776492723321272767960433885698431711535447673717336632227134986216854405443884399126821936611179529033675860276519551503825941852147539949054215661066598825275324961782838118447143278382313491842602702193050817287719341850049435481413975919927436955527798037639130921258957460528954839969252711852838494886962157736261483926366646480962571145103116111487516083029157294800967741393621878216882212224327240512685904490429405744576082290434665816212290587378289932822543480226694644355744481735626226650010781303259176411607464655883594763517117031579581146436656340218130872599788728325325478171469994301472995524529361288154346277635225520009205802614149814289791551029892112578881679272717218415636155816071954722081420043567540429164026695975546491257578353261827272770608693764451286444068639475036360426904022908191187195828131227836284394019349636439160293632269228749169243890422786856391111245185693299859487965537209742795974566146783193285168168658996274255371093469963245808920871514272507959334368817123513755275675802736536148766629966112236742889024583701172777882684907954205494920471904451227621326576946029464437138615085589578270173491488927848314876298571745402593009384245154297656811950642045420834281702445819642151604587345365992706635673574211232532255767180968193532364534276280622871321595420817215297336366109521462335225147375915875611311421196469982595628323055645662926419410216105320734160693129784668720893558852622478782297777556361488152308566436659451238667314263805159825394793725129365536498051260919882641043458931238374027728424475830446701815234568262431523111055520314341765976414033277241456590288838626243739105931774084396985844979280696666600578849843198293662809424533158229478516660667765172524636644526642058714158447834998791674008240873349215609782181372028690001559965484066247676968963129439649076928133859413918520987426659671045402185201109796490783890222742190277084699879748290627598322441823543421638358298724509616033689913941281356797814343761854974134093455826359428580234696506412225536766234430363136631715397618005177216370870893343724160295466779681380850779100665908888751944407164584552906514853261093457542591828452257073331588258899449982097681570421149465205512537792472420371901888559375979391563366722219841490850842691762951531123714362776183784878647883675508423012490892920174528482995899896039532291765765801288534196797372131386617299517982201350027518763921100615022396515544243885097640331447850039678648171610658479109785034460899967766787290849929542035297997222713485837154721485962258186514520733126236017696591032497951865441928574598052223480196475798180223217280614682967045497898145815838646362193167586491182323995478188764650671445237916645091493762692791369458901808327758417182681834971814836769396840525261411147579733233594301743184298697816713788540690955058803857442897441920762453033172997341314339870439974501750547256515608532381155815376227229635169799490561818784924199227552511325174637527663226575095593137160630157294048433938028868924248184974244582678785429419260694707344362423587935199588739499599422974175353264439459376576151727467679658513652339938996401019261666385124662965585978282266900478129951185934056014617293099509252515038765529960779852750117819921961141078431655276524840516946270131493288685452271688026995287054086577510487853568068207645569339298147758686517905948116513948972537528054790473290812960673341147315384137157551088703565433693166475833643306547616759234065873543142632518308766146247017211858424178558017565354935681388970353593706539471569478217352133153189544950671723761238366837440832595645752607652766429712938892599419654718790862859884160814313386360781614523436608597075844370579765298667717045964065728394006527972785415824428914963399152855282040450244646248868997199289746207706854076621052124814066080868833899445764001300796677667247948276627319966832590678666176480412146231111495881517259824848965476858350342509631832526665056057484342976513217695222542754124817377798394587275593263723278860168671320192393762600467816569459802126152754074999445333439517751235344281772116613789792595767473803844166263934699199278130563007252569558157477067706588095518375387376953295647955928428172376039142284727859662946536887336565660799683892019691874887523946634155717611513187126584459420443049483833660048064245121355228589845169589536980199633872552892969566917349429553047857072323061047931528227191263269366838851736762695299227198998923349952038793089247804058148257357089360938988343376413872368818224155044347382377408669218107449163746915334391436813218396604950516841723489305017939577349764822361639039850272694991028540572136252767142475474053435942771110000067936668673957062472982678281117417446793245815491565317835567623687815068657619588377303326775185365178775479803168435985829817300462417584050647659706129647491390632267209453056468704671609285593344221903789762622305053453095053344723732228481485953259834534111644772366855759389065378264278774459807736807491508060251947930034365516552113586665269813968286461897209830051328930683807487849226542969536926852364750982415665132181115793163538921184705584776861432015449290144893108015545351001142061449789050959331590183130281481002436029856603953094102200841575033239722077425069397273644949261801805825176586716441626966553637123671747353094539811129415726999648634348110439161031193869181723956795328959499585784139552005853172620773322544604289609057528029521431788908333069775108642725539926573815636914612582981327254946891618705532650985668735520263357106628949376350243735412431348136527385372380798499473870366662158523021218311812015134381939535416131601896695496333311669583918239543177341517897873880907705795921714889107427016983490722906829406741514349686230568354043873462503181311564674870531402368352833572529381642433904491581419977238470650150812254931023265102504170104935459784920186872794577483554562156951714212516230908199605545477587107211982180235101159515817244249710210775727068676032366992475883801419813641059179992096146718131330818267211037951331074769579484371800149109909345928412130212447927756609593819547510993928752536996637051730099647229585281168916402564746061876245643215532963703177663371589467709238472172782377003231311263836881518300981476753965730159503412814675586409925614305753053920887064736241111570955823551823161357589311631435122121150413256268746656763303493824992004498828462953921690636987838813710026644337243918723173329007554096113978350730424075235867825959455271042388231509916550279623735569820494809372618125279708468654365860881659539292211462603371713615442577983495663211989877367894843138728597986485212696858760576264074802733516574646341491122936309338159736575379748925823197077620188012728824503516457395545544369770052478840480970788023068479913406156714838536677108563626128299413143054713237789545365546089043715002934975712681743595104742599147150256519883701515526393851042786445616381365352364048270537961310206501687476918685285529545251895295685574505373868460443930490666837366410627516296369713933468660355377402331576671327077984286907636461428947765607672432816514365186342463513424741971857488340170541524851784753348982444480664459414391119556542755028483992914538822438514492308797989710871271435403228406378447237694740201381027082917686178648693572470018607384890104446448797023783956305169989661276037559309303198220191938821169277271788900833224836479245528083183402480991556121090487564488341841749649610401703821978239997982532008329504930668139876407437063480761608322221716146873731399805540254684828738465691586586339727873503389217334608792105930670574717528536304409182947534707419925896744027385849180333199152416133700141167424527601889396978103864838843616378935844072374632601199929205911341405288843273900078022088821337855653634169063507316080131745493566848644666030616475645712918197483430186192153799137131211490407235193119471615506231004324572845155233390116214577816493135862357896062265061642805809284532214537784344260420965926826673666757136817735207847269832879841516963336786978622562798599749811295774394513710309446836543832545258159216355648006444328102975348974685329321737323967964438547333162262174599379895577339366351992239156620880366838737143282806534950012233947212873682314059841770777225985200729643329790974520616412924265192671234698905201004555316088170375556326088179776443442042230569546205872376762001151645928320749949367851927599092025912766372742625907968317175130253100852115416097624369487265480781747638821016166655338970356708523151852718514882196941231747899877794348604713072958555079734264618296939159784462623720452338595876451596533198687330515793813132442539548737298739714439019953502536126734767897239015173302114816325931479932476574822176787167103445738721011338748818137695547420368308779805442087327432211594503894762308415359880795513966564990168682143258085461403183592682837871197542788813558520406029726261145531595339753786088617354899383152462358381833461382257881951151792424875177251369266684204146771136898857266346533697504884287232267151219467569466416707919072725704909467426697656303666447343697124159084779587383007536476596688366361551992417384576457559977667582819780764865738135153671883066816778666868386317374666948932768375996920526181945907209121254175502549848193654641817833765617532770220082988718650377977645913275292974994803209520012469811873499902274839772182597803319427896726138566408242966567666972305598712742339691154517805919077208375120764741104653104066740955447733281785605048063811635590663797462811918625483944092710873266076682902853171822637044257886987896799994194986434932814093853689371651584046927875399952349355763419967585300265600135346953418028610482583381172927510296321711274955316381975512306045170375669938891751673880846708906836099764486639232807933923825875171404442687141975364945784799284115849299546728900613452114387571911757010000264260397873297472401848588726335535112978671481954611648282979475753450473914331021835734694339867671778686248710462582906118801358952998701127530432494917515939749152439473623190477536631688092941905688029125397908688668135865016982288184141118382048507448474956438559678528641145196059972434315086668629376358158837209466186145773823376791489426236388913804439333915478408166557894237786576744135670688505453606827682174751204937554062140454537852123737556767497204858235931527214349565141298545329798385530385244131639132019200329774364482044950145559368482356062160375988580488620873148663765590753065255315323841829340494647200785469699882161460797725317503286135548498813460214003193091596023335222623845196171181077933368164765262941511145849174302291315032242877157825008347713948676884811958298373273328610365938239146459626498065478094269251874178557078775417372785989478575405272383430256842579867700699830800794892363771322888270422228821519901798251101346167379388384599573579579139088963923213941861468106203814272267825120013052155607197392855887637740121784339361702825718406345988632593805324372039526941898451583051148021667265536471318414154801996543689591521717315485721399478443190115767133624940818708184419916991984130252907128226260377979354451753969649892076602177045905417269988754545465126310512213495886114591065923473283601896526118363055673807046361613179176425305684877988964679186374143834363174912699184117705079841833644580362705538488879147883422705752154544611209530912232750727216486029645074533716193984284471994155874799897155862049949343209690332103972102989415247558777169236146566796694638482660592376147271122613783115636656270912229868870866228576639485863657528774603961683117647362409567086259794909374522884228444838937049119238451698348239224985784354325782767097106052149975272922940173397096649412888452724551060210964558196422064444240832757685189186083272679518961347550922086857703339152939674237733849432546614073897258013357331886687104397262228546220989607600115637676272142643301197509615141240664973345622214639923196617581522897385513911215937912030738650627317912713659351634568915539554378554710581753368460984639287646228582152578859061058317404526414395449487067354694088321931724678717993377958998946359138879683837252581719669498116956527785128026382813429614948346021661522203741003991255283642289411199964607407962904135170972494016998318298395252363187685642148656602179756502764837977844112018085152662989521013994117702347597336275452698596802997145465098275848053387234867990853964625651788935603631266770327541762500514573319883137499757561364061880930581987688755987322973549179895714661744999192633943021313678265543264393127559548389190340051790572930027218558672670671256254661438512866958363308784894082714239350962690589860399533321459227659771828812426249599355381529459428130039873846108159614935570408919596195601920639709082539974040561585111046975134422823655035962406164827722183250357885351692973435858274947203694733166086311317265465521641613463831266245278162744970564976495055245774594886357627784158384711538539191841243937586148393165747206503306140227808397781623618481486882916080055168993117693645088838093005612817834144077676037535256129025384758674899233682389226845214037925808355275012666489538451751681122100201952901142674534508158670280982121657117596864602351718644271662895654974742846588859202876565946794165329874482663399028668105729684445775204463236880642145521987426736839108367536715747307645019872249727389959120963279669417581879716411215372988575345892990613914574927739103727371917657686319281394874522168895901329019223332423549235368735688824073187219879548240340447926359974319795436456688915316384228649195994722995761557788449683724966434795132758673723388449440144368327080792190994957158312492164125166902159703427841769740926203579755090322652214031017952287193612336975926189023294539501300046623518409679992657908370784990691571772779923847415638676456806752415577971432408567993509798437901943995885480166596537826853917541442014996979683128346893983884782356395694606747242802078664182825712509526731483684630600135590214618203360842227532474706467316065513568743329298050716028224122346691726066190792411637713497366434720937834853285590299326870500989431997142186982761206349163996053862944904188366640812281650284991431995303607009654176744517847725083255242098869887918911543332727439409247289548484760566334411743639649950966663170078245190416937166327287594099237448951769829213607358084830663955532952813441539403976230140728149275844438809370399748493545608235792101252303168232309970596192983550948418415721175342716392246986455550496415608160163709821891457397655301134035726718151647380185956296558651229437329187652684016918284026235362719901238459322363272014756039689185987556922924884380942119909809672488094261999581695615756975617155825904159786382229656166614327773549131820836075728877589357882931830147812433972212289606826725555171618864352669856869595979932519204643782653426103490304929425268532073870452701448177764940734889286288724641660980388697195500821401061237481871231724466134298756758649137387536040887029369832402418123937874167333132475166363179736631351489631782856542529391929550654732021503174744985871148937786034084411760865605927541451864255842116745235043983910854063191349425346012292940856983372085314632773781173684125102986450485671689431544207559093140908529412902940786606939090144529498864600799198629284731899709558617401237633888577629774474968544790704825090896619199067370713662398824214161581449271702985226676111611146585826915739727293804403209432845413616419804495877765148544449428565371930720626709041349541374140669670758664242503528870975850350704544972461523991399058686532345040633741002385852039314062531170025912794317186991697667231565487679598698708944500693525802161634930979968643830935676635181503112724734554704184947170399202805697575407963512378862806519447659655902490495252806225219563537130729012590409113066155516595581355932341591263156896680131717682955117824517565469605588516820948209612944973857142725686133155658571381993203966226831284056552379675943566067781605283005708562127246482200243505462891197543159973954852482295390435437322647600855124799244083960937552354697218082065225839933734518715922830683379177749628863399127783592361902012903593356915475348839356246036806783278478765962762509500017490438058511039370272634644048990761588188955432150679849985727186585182679920508017669989886235574673907186182117336178357646803718772003972909337592803622846316259518116524170987566785985994308763524854929781931826893226923407048371935522257835355660133611418992958917675265067740334617491454842372433114350828167473512091713424023312688854935010463976700768640411787345405434992593561933598872752844480211126797591797930754003642236549442454485122491820972547180676182562847788987809631723946419491329438225458855056761797249911959050601226914897173928741077377563884339075412745585647989034827861517210391820824635224246262868428283356418851229905143114642416261338297823376803777781164459753865121347014325127106562911934582111863413242512716350070563336218377116950822672286539805542468099383883348658514111969121422144725606510792543885373692183502909409738176433303813345239074332760823573393617369901967479262213984907797744063386255824712530987699186430591621470634416575041391262349042363042566694201035566983913670441633617801873625592136361149182636822975425383497335821281512732395820266723249376450117774354303850717256892855396711204839718197146675697624584499514684117926626772103672903153110209321041767240163151681753239241863968202748363645438969298162799300762863746994990937308743873438867564502488359217003554449610522921462044887879589483391273691854797968089692976469933169954877258434712798245381908881921590229017884905893431365963102200449123600752725318925347263066936236588742737795169574966776457795881258172302006916897531175128284565384414599596972304194584659963539720853127627579899668952724736922671186327833972089798800487443734449282094689604794976364030285648354378922117548565130495676884397755306377716407757679451175406977141875149243448926771893055527331064535290140243626325828759332160565824412093659521963268732896299364659226060895722254049886458195798964509642225342018738408764380495241771884671189637233691067797845010981852656586718699696333337468140065690466359849753235060259867632305972035271749062180546605454323644164918619530852698144931801411793614704682443423004736823723177814679082430141619324862503072646564965893997495847511433832275117621293713224172731481478841179510069052156842048667534100761884204168468374468977695703539118103763535094245912247125759873914341891180753601581771340014093542721260294965844304755717009959000477261171696791183104405173890174693820450723188713197171794764148224770416219908325350213428954644547464046650671257326616492045153397993604642256239738633931914223251541482128375764770027526311473453485884738702136761880399198281176005113447454408164499192686777798983436266537852557807931916700134777794519257883829226119756796967232277435206153377458898400460635790788955257731787472929675878781215664818401953372940848387223666953950628386212653643920490301466638418354981476135788898017539555382574883056542659697013425117201489939609810455002439069336173029567957901518520459119490298694643831878562128279342066659909188224957272582991090641777725268520834438979079162398483897493960686626119313643906919178094929430502608941063335771690394748696606710302214729630744314289831337390513904719118987780651027912965014948152992657294117222229327161933382329546971506212958501132617251642600285171360466097517668346974612826331296915897531185687385216649332392496982768566283368040972274148919786961507280444456524406576515681205947585986916786923008097602525728313469668470417740247456536515548201450805744134702619046608693202483196914043524497180461995947354549380289265944470408828369478068836793113162353105832948272315385567192778297104675369166078854933424349428448917701754252025620543427698781840147371172213374212679162634965690711134998838823004735968577244284135159567855951491573140778498290093401919048790138152562593935621468919679904712094362284987412495287943119471690569413985691717371579384451188681615052412878261624248999498230268875691585275412003895263759313027335538595070050969920319231793602493885980675974461175481267319797516403426168406972333974234015278007816339707995079306547279787187903269720831355095986843852424402028252932558962471788519892802817286793481986616957559685344622419980557684911499427106224114967315616101479049421647597841054119844654123638137311436449211734529607538866453897419773302740240806818820851906265010226642802972288096759326237480078370498423233169269735669219262240917822489165396521026436546069957733446942407834634890863976683986927890466060697635565748924731021247002203637682340368658545281773273790559932831534715323646614282894511783647431692151962227129323214054015758084932944799409475618923115073265492180152400235199929767812188427403127262569472183793527643984460482445438796340587458796052900689961539135605312362440452708927403029620695279013035292016468052081113622778213505806737648537569373737331763828100753718785551125150892190939822719048683848696529076860961749074552176748503446218883261340623270349649371397600311189760538107468078298097811371091777296801506975228297214367460050831292327827153456722936069615293868099382917733361114950862457333813204829669552123272273906832414744535380645810245576531876904425201555411370382658854637553151862579182081235877924034865515909376032227238887225265929816055318754160620658886349575897777684910160164244745828268971477082445602528356668622219339491347546724264738180478866808776196357871350930206854442492933999924643302324112358851792228672410554594921492958617888134787614132842582191399824571966903029770831318087565603339201619793388955938988975544303161420240863878873346625948462561922377918103961906406639855999871671235585046573181698659837428447641597982835337499140624345265402086727398364118254399692925093139873766128589388804504191341042488213796385953658727785634557404941232087216219945615686178612085773098970318515188268416541252484132337762358040177864367928213787245891330473678815962832842401082758895762974422184813793980924430827698888802685684612929837895892392059168005139690411891368350793060591779409068660868767268948673960162284488010307629911925858440658146506625877880643330445874517379630677752899342054687673213198169494634564410181773984793895531728198051328159616772199825735711511430405789757198817615773518956499423934775094471385275985552986002026597767121950250543144812255532137071201472537121479741097221581287616642675272010155874925875396366371689111543458091773074774770423986572807920714531345667774626426238081968932073786350182885534867539437848506103587537192387678410022818332283355388554621031687724538739439829075207679651788079139232488711122322944770362137955965756784935928195480379585020849797507927887349097877608242471058732326560992913407293788622665232231217790706281376042146107934679172559405255540909930853163332555519256502866691205853015554618356744704499666314824326180454335928621678011538736033986123757628515815988317210848641658188328744767923194745906141319333255037195037727141823167772411243938101124023207398667853182334196273068700619756077386116851407042771279831551036394014395502461632558929656122134066819762515232713125055687263942442684201887179275969674847861510501214359423397230171161851134318207943277148154004731444805284759794087316781007982959810911361169817631501576030606068768463235012141253047908414579949526564138829989665128846224192858599991010960227091527467759837562801102392945575224603201480069435933601741161172395125457708401144187076519098330223901071642507624040940959944255796533613216716340814786100968142219195361207667536566207476161135191128618171237992109875710252210152648930970278778548194555762764065717670009966698250572507647651278232398360270028494857773113929990803907161792338312240753518424355689584422326323942923511604764604269093583443630891149788232039172515567800513526785069553213257163424763766759223269703837641371537277550754131140416094465697297941951733782776617233234669248319239700497417752246115571385610666254866716965820282271649738706937655821454896232124912222874585818682402738263975554397131394903115408970915586829768147376951238940820615759706974071031163130530453076941270933983660966989672124661419703749288190529246316447187523432403032649954168568015120955958134704601561719445725541566842758472802516526879813007046930293835491147759344088524404088587345203229286248295646408808993636766741257615534932465335585554063300192452843069041820155420209787838806705555260947573497273324694318507759125155874453210236408712711161601762936131277539380390022532673421351830940182066154234314829996107175380733685450526813491047987595308743310479774543235247678774986024507961081567128108170374782537726795016004637656627685945665941798257890134365348392805288549431427111284904981763398128542335770624890411399840557116521945423089010848044499389928024440987397735842927332429549515073693882925087677675350978811427141365954103998925978977921398761839235506364293191081362526568192221184620160160051570810049560714361199964958838598707868173253852122153246182329795383710336952464940145861467653154288768794947945976453514987903699718226105615875250627125283472496652581664491293286332047923850454866208797093781710141135322240655544351658165552018130316761781871379680860246540091259650727379713044170061765864884332467129537910374586175650454597421959616817130405617318398121582166931710280912777886398361364276886250611815496994701610395573940167041034823641502943135075800116475995550328639375064727585219117466336383703054416095753974456884192337305771906256961757180382252887866607035111631046761369696471058275181018759558660178975633710528657591113642448132297692358270666986138203366800012803569192989833819821149935866100100056890933852968039337430851248820749418894146214148058634842975134516475996553131247017333381168347323578642702736281754316076738324618448338759542685419018452103940113498535297925101453499512856148470458264587284518728839029373597328727492222246889860316270494399875072042316535188638525840653119509838795739246247367475954097237082006209036196791688787599737852112690722773765553853420435291673837851250294458626998158047548495576817649552264745099484974878836701396519094306212453517732961532124984523975963711195924502508185562393611886404706377123351348793724904238444998639468531212040700957601291072453371829854761927387291190544400146302302525987326682759179557579045299568256818258110587126765758327685767650004223944996690707240674929789936080990110208212120998837584946868997868223329062541695127336004475621642189656580112991988565784787290725042874939713674668190687792246652676075337822987878602066447494336966251489884988527593806617430032624837796027350206609196567862498242686276438678962370053942575484426477968182021290234124237273358535037448588729894622664463242256757822181286667058265322875095564339485564121787722260362334174114308925057710814397042558611552230237063721413175821470449302539378439332013635183032141577271367754906622825424117794619499797701393068153132794616291596171447500261980166958473980775907538042870892266244019242801624214972537032195352896816797736852168857941928370836581457568368224982845294872306966245320477181399874561166696784639437504686320839274751795227454539270528096071448325866434751564266782627078335972563161379069144611598065873864765474857112525803071833659406197137388675628031722351750218974385666822172071251067977625965897650774182488766732113508557121751542973759847288719509162214884539567678261768375962391591551667084634853352773191478385987420154863356612306466854503411269811952801365074739999368352122184691564163358591626027532149146978436651878085893425366458687226042631638625284417207198192993691722545128349247478516661837712810968661238017203172141406314112085403376857413164245505537984246677066546706882506979107954611726333953823763190365245610730438336836841383070799942718266433788181232691629142313648979452798073388960021617035105461705464765278178959389786708150021200190944246373830877704027502671665158852413288654049167443874787412119201895392265116516131265318448842253218957946430233134091449034514619745791437166430477337371623916411352594464043139168364871408944190345491486026340561376381772357491186622249431544466108755594488381124877135572535612755795433498395621476414143213285316260043239113079620986078572916547080626479282624034739632745325082720033200971238591510093175282456965064274268921906766499336767106479121332998201393547446279703210371229539552483713414394892203332418587832312441463276666696256877662925171070860914270961327135713326643683451142148766153130846409714953763987215879244326165733557796740951476397746265720146623117405121195765086675760289263610865376392123438135148671679880789492040181854204024599864872504916484318338289188128095181193186245151550045562421664473744234433248085105254470845005334587632738670582340849756877276692151040494604062936069251536777610447666668305342014208594912072494313158811577485379065484979126724167968539654149189614092725999999827645236529812926452617362638548587254302864450143121659032147437095061889316297954415502929374648247125184099893439104063606623647148596185991701727137783649099373565395362332037068622585881975397712629393141659983306604416555216466698644794253212529068113253968622539135982473915269428333299281222669007695907002742798665053108832346496347296080645584994055137732310491427558840839566889833440705234674836436931360856460930165241199676180869458918011381472240551652533190628231286897360339331314491635189577419563197851712188228403295616717074868387143283332937562264588742287437586710327902939490076555344359599321703929267755588809120958458655936463449276183883017267865789887369182885712784812696626656555767772352602981978371647902600183522814704293818821849667985185795443143053663316751951779726641585959059674665657637114957506644507987841379146368138859444523396515642351914351756073043184053740350271339613213258635531258177760784495908228884783049419367586497000443548764735634561062147180358976854533196430436099833889865567515969933491373607863086540853840869307670172059591367320513646817636474466191907944048455315130342323238954966149723668174933057420977295955242527744384914702639492802431343443576805683843591282029395025203360344299451291286059966493620750286636765289291379088786118701895404778118710340916294871790547760109799497518864286725338016261272102438087654172768763754424480636919977442977621149343634415878899116144212652953038134914486417346806151196848518447508652699563246282913415234394117158732582724244970371733733671244247159659237164317624740595367109193732976985788745396669024563595934522328213059064590237259588229860331581037261293143966540363417586347972903405765237163744794906116137461717559542186210825112899056372734604620968446946255556889786842018357863276200829320263088846264495638775731466115882042337708670498601373216854117740971166293083848621532078417518684269881490398373765076479705893936711935632229750293348552174816440541712972822651982308132081974769968428459487099296762868587466863584205917133185355222164655185434662379114356311912595202019843249927874941626726465389735686011383675432507484657870699704992210577742223747421528219293856383734186422715060551972150237466133839538229195736154587149107356657875594684534672926892313921968886568112987211049717961799070804888182785480291270973797192797394426430505224100641826191613827295693766342970240494259784546141688605432561438285916132182125077406095841666397545143498859571974070465229127309954538983966563096376633815472796992814513971589731243684490188605688169843734104901592561112801970506325164685499833529064239058176776702860263255108044472132215644271172071083138217613985486516498308425725067285448141302601744176097672834888076346259647365284005918872628696005241659218458761685506843475369207617956203525881904416974603724015928080989558491055383117219637463644751393944621653276400352070966993416264980146166782154180458989969439254404498104313173903185625111697578581909165962157647435412342182703161251403847018924342940895563006989835741494584559161292491029085815016615642514437444402300189338339168153432021894195445035247565514617414256457268369817307247505143675425099302566945290113746637156110874977319821572772223206993014817592842699769386537825591554542981546992771023197556814959053581155039721895269564752195293587376434233631654743296308693812554335671499330700968241138162067724305436024175798107899963724664686850331937111068984338748343235410152121264917225764018978210918127848726737873173604896932197477354866679462442335715400691203335388211764909062345333383528249416512494287110394163506848120320664305939384064256617508894244736299199735311598738540895153118071195105183094786532277542567328100540713280122608510049621370252150055277847048296503241859566990766804289152975856255954982696813993392270169653548311300988951778190247890973111525904082137340926202948496434572176692567760734138723242719623188190399985409827810260504201015161848458225694825680092495239434683241393044164270626260893539671953118251565230271128170618708876334963189304137505448456055629996894816233219897883881308823758613274997813867144538017314358996075650227841764921891692526447777896669741379405505524580391532469556569962885257529983267823211736293544968830965155572069980454102340308736366872804265302662551207603984192121475918168123348998635434902397554991007756975896527764881914660594019732348197726871747198423374261730711335635672203292717159217398460847351286030881513850952165670436256332766156032689154179164214416156323647594371509127373839288435396502569605735187797299975277707906208794579547942659754725390069690910627411573197339549145149366659123171393392267247973371096581217646531281162913474791124407140201544689166633097130310702914890884148661386231418905885207433199001420061299190018174766464267830713047278943983751273084612532690564837630078786377541796551609279780121367496231309323193701462161999250499823166570089144837572568481133147853538346099677387508257543377471077916482755877396116783426370800758457846197530123544636374466958235246792946402714494604648552557843668061294405820196761840032820089171632065854142884895279463436658698692071170597676304147687504553455135638134478236430829793922696730127505629338864988253619259996023436580357779005534581169259040563649233884319633799519952949975110651142609365059676353740639756824512366964428628979682851275267648235919486976850746812042788121153051486655954116147760638713257034082192686767833570696967812689694831288677201221880063080215811344835728056564531432861978534432211167757512166132061403158059905246071865763029492587927860772126516684857855825689973700044857132541765074447763631792120878209787630029506599823280827334954085957335995309158537861130894898344297835948379959738400474621469027606811268433155422874319338934371344994923338412217375916572301182436952113026124639497569321014983247325368246531459759213715656415693116785461151185585429562740147192207373882620766789497282240334066726273375712467616666239118010939605864071212554919313604394292538336218875157989885989624933630763813599005162740669157379813749106661735803972752654452633997434473135488886794177269515512517463065985624308502706051845843148005377829638162601496539172581576197913491211350690440434598933564975069583331886298198930543397785621994285788194432719078466681431815045291653327803995792820176603603535250705929391768572731162012219537676324793587916097349674537177378397636538926292172386024609481048477625086577864680756539583835553833486867678363121443816945131275269785845541811460993938245938675528654388744788392345277383697118936283382408596497562994708346411451584682560071188857141544567597933911568510128539523542858663138590551756002575747777304498620960173916616273028993441735398036491382983586784413628217830462328033377420893199026672526343821650954563317931117687089985845255742903788228224926601309426449431367223455833594879825128128692864852829149344826518357270900862257366125610724412393178468084448213045253940371516806217856056600243111646409655958197847725493260121007422216223598744820288438362183811773593760435608471340353713471145533782830986465571634556578177726583721537705565622701165135686438481367427039397660224284574341285784885308679764654518751627414213224697612641059999193129225445405662206053633959953449767737266596877472893278616200781946512434996166613811898364981518717232235924288278243399374255464953968184243599143268523369657324446957671834443233918573744810582934537308122253624726991585279096951121378172898978565646822296338225438574271581807132170884675113777794623563457223016765201618761318757442884975381032571849673992296418504713183043639966984325472933190060977172148987294912721871378721433539345332932373739853201804176614522299426105301963236667753484142218975561822199288169529212053951346926944369614117479371672207053595095799170941667786814471009066057005545613546577132588665559756194887612271408988011850774963268272857285261708539353699358686844782389143521236076221824684367558786002422844200244417365433611201198934902205981129326633759350182462179966470844019189291571529751140192909629357058989753946738202141381912355937460453142427477835876571807948835818729873240467125581462428119075822613915316295311287816419061833312410816961362873254950387871213600217945296325769323491095698172029854341212127720193076643724270237911811851274212967380763791300017786238536896993564174910843136876028325647368109585355774989923745879847715516496346227547703241253481964102498395961465366663733322917493614655493774990422422559593313246631499830354726810803136284248998341665931436451132976876714408181147468141825374551645165939448537765733195385392185034814345688211558642062822942244268084222364922452521484876766430447667175275542216943528448840737439327868795390778133248349775569617492363703655953703536966169827299915344036734376961360145025956747591716920281613888910382673543890846264578276122390773015622847622826118484020303196754560237030080250158126814012807167512132915081321270402866404721658841540384597938539281099217128188336165982223684533468674351788732552417660619896588151150531994963823242762960328927454879957317291761704419270695830368684976903875218891187412991479146842261725351376748548045168402759771190629073585385470506148227752655021196896469881774198743334627865972931865455753121696700001311351985630565444544981868635564373068634519787330852748136325789242925239238666935298133756759481488742338141191703803634990514284099785957265119460372507447100875025538792402448069732645003995315098134600648454681676859826346831573787870448186585428343835891100137618565235521086817144493625380539851481643476818532492310886479266877289979906655548398193266593746459987380023253480155945607535050807742174654823953699758943720424383346183491723682340415173992170287645547036101888921194724691417542248204500047050679371638652233977748718903450442263471529699823444408073481810177059029920459877889537723329975571719633974262644143061204379537859051425753645762828268203779258384232918087018899336032756873747592604855676396289976425020015998151764996760632355829658276809584743386132604373634315533022829182653031566518092003293087581239311181429817394504424919164479260299602104289841259284423799855488585664412243506341866960302039673674103569065347242887008364188350432894400050143782495345252898668214757375834571357725507234232537738951341609897977246884137063400970736979788593269933066550330330836533184683528890755972602146342058392018040407321379254970986410595972167153632217457385425422401584240836876267119347965573541009519649601750283315641279621950344212233473465628515828096007728457418336459153899096339125378783025033293227516440569772358615618170559985139892895560370236829622995648951021372752767641118431298980338198833029045794805211233430212551622783713354878072120796254434588680289206532328394889415709356943124460237508556733825935671400952614054604508388464146989555056654996192540418114654921754379575491395720026080124318884782618610703122164371518196322237686788954671073064123319643567572612658467640921177891639230727264710317202367759063250353518547825225688592739197262093422453730216122831378215438916530852622577634715364279789796726134739836444657823447882053943954374103029457507389858971833718968906875749203788568893921772608343034353425324117080487130788284791239913661073906539007202891582789826859112898917301554077118548625769727043714038412990579284456639651420876724423717569501897483939379999027030580242677731639095044120339972863542296723914824486550012157575716913085144382757682290596969618247922423445467097843794412571370761639697185945170009207972938767873569343671323897075966601232295430742936540402384247610145325952253241264487645047444175133335368288711848636241719608602083528781650927486147776743360897748338072359079106836712828948100454605162992358463171063289785979423666074371615011246664716795768533715583390805408687851336816517986409275765877372279695896138917819361828822747387679087056830992472974870855178981334072962365989671228956081541136612272222994097876528256167424054873214806483339832653817307435551766457612467107314597748135128588986807134869216240342300902320811285615338773777715940871475316089900883714525146962008632356142072889648671311229346869171347859537328603009701140331157384962698469368728910953919755439649692154731619121159594431962949973632037626475842022378990312734938539782030836399034843652346066567767236103995562691461626647314260791602583693263796813703649296881327583066314504760979777999855136022245873341857255987241133264074533073874534328735133827173694792034285830432206660210076848288349043638252607855821610326077891729511209355238770274725724302562640559341666876061276304341381090678345663381585967745171376841284346849380394868666737465907755058346546007455277770971465793953385044324844281540488794937216403730476966168820652876553053167279035981247854710498502560987727695694926727345146332882237507920388323875865184868081362282241355313071649214805992270923944958543864233646625993103383139156041710575287920037455614995226944353973701998976383522308524384551652759743746800161402141889778135579944912496540834345799980212132119777748635612814847690586906398041377768625963434719209549542708294557498438131501232120584401834753390569012766417959533165101451622350497377322974105676506689199167303916100561287678032926011626501309696801448584633970844799808310790649862856280754710615290428888981059574815821688675335171837641853818567017691712426575134495451204281446345113181419487454610064809521841593042841256080588429053695188145340517497936036547892029923226651687499567582639087156217249738210832005918772688072200953199812712575031131766110792443540164496572742681319575865753745552149661770629546101740236373809563368905840858205362311810179461335840499844304546798136823198165100407260936416435463205842098731946640645124790125204647575202991112489351981463025147598631850666982970092736324285711299940696911819880585783118822071164534287557773821503778302042646577559336828978272421895736335421250247150143898263582101062867296143137010747033818243858903735196965423671948564999012288262921127158944221509189717811964008091809322324141692146924651826848111082487098548242528658742767348513981735985045782959751933501189732812694957166275862478208558319959512138345622933694097438485418383648801241899095422701630086044886193882092346205995684545093370271204456502466148721940208596020406249499493222331659955986045130569134455975136622311096529002520207401211927401436472931168733614401672542584374769367986736304826411254544512017927794165450482420003983272874873344095075524635806143069636079372598439446943449227921480718377641973385835043257106494180884272021276524972347891711389193464868442230246190433658260322429977398470341874228589437089797983434070174798811932738392242982952111825127940118806396324779106855265198745411792426593320528104298759250623096819567794898477488983931915137918749744117641207342275517139932279334950296339588217034815207090083459408952006483030647676501139503295193696699567262898264039981349315220137837592953880507751603998048779011508288695677647975745033739435849791217358617318856038313785436802326702740949230497300703723235409649278689894641526192112716817249471741795098054455997913873323606164073526475498525272865158423346424393657643016383437593914579762512528117786121690922996773451195575181229291844986073480806898223672385375877787381467384626190976145626332844270018928669091580942899313635431470711978393072345614654364899323414546737821575849041466861673625561792841151677219603997578027799073152765040219871965117157339434905932037766837850974409254934843260169554472908748624063740177970297995427355634447079984047350943015450377240572034461154591708314601127301494538696119820210305828270267617554922250081468521493371069873545695944371625574864443632178358631660798106724512308410295211815098907779917537197853566220351351135544361075799946219524780007769034633275723783386814673270589708206043172904912281878628022032329202047196695890430814704143930869897764304747181417162218738008170212101355328733004375657317542555679993093483009973464258640291475312790406259885414725336336324937114644950221414534180081291543343187211099775831121356555581997930303504740953252486786869364211756326564876053633587607409705796833772219361331194681840473853587953724214597332283784927965066939465405487117283375578020503236749762725626557543437792084476223284437620724079225279630079611711164026558751550411108124707415073494522086663764243604638095350345514691909822417948735361294940914076359130553666723376069778577698984325427334366771032978094531230554276802404997515834262832224650763265393912572361034521709480258498832988554134816899817130291359366276549331816749834862966139884779879931890042452917697591422953368093245231269267507328585899687977267334911905683508339974059903402949368219438746376631646534886111663348662520543982970536174438948461897111347671013019540759531227473480587482695610314592524056523739676914711646155711566964999452526076531525519562424399043775493066578652634939931180947270935274831387484886647805295729245235264735623442438745829930587916164552174974115364914835012673500789516326661163837675592627446757401866884034636223763419166470427633041196312268371448533816144956460670542023541548872422242175040876459724821508323487828396839843083898826933395286834720533182954286286310418568550733827307753184486956387328792959632703470412011285328700792572662886344110407580971174981609196366889792195731195903315694308494445375123367863222160966487862379779231306989389888949463237765244114374313147635249773523184482928646469265926468456968051480205724150986390499918558856921238896265713378876673898521647941018226129681969484771743587404502185435013583501008582318890774260423864084338150281776635853362166393537947865479068785258554449233864660061693658933713972582290462641704947542410797450534970050059342862289233610901002466672548882323231810715241472016614611627781439909524047654615231434779636841400884906860969349971035856902676034712654903272458152795081772946475687932865368854778663470423660988023861016587956236051659301388113565953343871919852231208379379368215313153487325842941161999779972005829319524304757189253792080212773834663202779437660861276459572880263274838768371749553608394198835208793979575956254926841641453443629284770776172107090587615485794522835478727047970054923981079323458219394143475953779502272449633980281068696607703251839464937670694415740217279422951269936013965105686796779132315929257484985833545898322026974543807623025925588102822715700368555456768540688887697255358970777330296005739781487633531838997590486936895698531831563842932058821412904146762832312899228463794159550930291007525750593606988400714118618566060022835549540395563277484680191595741776311133604031575695248592384240804865975215812390949143714573211383565497454911380814225113788901785848199694316710269787305236635849366684144345095589719841070009244845450792419104862327456461809651504080656226853457530690901853617579471714896989713663416709092871006867332367154736971189875252385907379567683835623313063694313594340104373917484206173785994774397059311309284403355229106652828536844734997698832177905452183321336524492226741611817043062943315819022649722965363578961308304193548118410161570435164706822722653819228156127110163475072087429146157427507268421385817612337455035404884992567386611801937036596478562517953749452949287983233217985069604179338792819624070422139081751075267859438306320071827559824842139571597020781526592827926988378791834661243603938263029988441611971948293601911321327788420591174081761315047193669404764383172286433563314301860820884529050226993473301189115692816348608349264604618120578165750239489862425417643112549622914055406072911538975556163741669418368868657913129731484816747844186886653148425588376815126358187297182137555955938630740811402137869325317812433112635283059141988020574263606364805716378874146353768093982576558876541600210951948458644429580603856196316753895695552027421336448814419529362410723202339728988598362118268654001164421000933989749079528227594664215334522287946249327224885588829322852443279388640178404194324819118219789984837485362868568028275995258089283669204929436832242301606871057755062241175019595049351460291662586278379311678895381126204377149653469562917382407766764945223526217078492932277629886925812799522618517571763834742778268794818159662351896238144395165117073314772298794521692277474831504338332130027937843064381834946254683191036855169694482279115572951752551283664563520298990178646645612142810381740554186347671761249069412566597815846725658159746567543922348414339824536994670441143389084000457941488127808340021447224742031725314702997265108727985492923945369021611036368228595545338224615451486994628889651519455073824178508455444700416855932124723157943841281594664212231328290443931225377801009676918945585881640554428812660855349914042524743341713722583895045828183173098946173322127318782791675027245139011473584607573639336336108110687135479133984278911432366901391485282939287345716597831659518193249327622054271421091693549686220494729724839307194365472059346376603629026243495179789808247952671848159465616580724807444687801589767050244557830958799679072847065647131005320351640696903910975398532407698235755722256190509424053694814027685397720063459234059809126034210576143893538134396491394010521835047414266573949064844724867583048251889281522074562352309746908819938442012643829925227623878266495574820389153245918188656197036429598621413439649943181530845643066423524184158454296844039417487411535429179637812464374369545798200906246242553251981755252708676329586781466187790461581368396392248437159585972717378188340941519337123683594548721088149311579142074414475355583081172909854494289189287318477520146344660353521122244897883140163290784902668620614262196939310800139581028358602006403920732892571409271269627753995213752513341717361074317644025010464747462736478845175457758687954106451521956520949759588105480030327667947423536112968304945949458430585992028731471654689636680179313391341968495392186644855885459076161312656930109687676556556783843046324339628475095546799253676334121636605634095609506993585451791577525771886657650649337557648786245146595979710841427224899367362989104153655291754881136798281654417274304884172361273607990967394348028695686539576058780512383486813221340056886269287374128577147402885378010238583409134562979136695427815371107976028251392159607891937355114535497939514197964236438877202445988159478368333519305954713505618835944198187394734777459461697368954198931087370913325545641878908186969032997044774087672395637428496545279914949043111272446348873735035762727198626826228196401986035893308425048333751742994143694445894496099442812302834780487240104968804897026667350223857320214855331838299841216804160895977760932485140878884254559068053259269603589814558094494834509926566629493740838154423803873762246415517096570895534223685804117692079893103325768167718863396573141778043340665593369811327991853482414719998536847000499211431791733381191052124298879494514416916191047693917604845030778760043633461491646615276689257981941871493659549813689177746284248697034932363922625430660601602382363696928839529665097066142033309263766523682381295892028151919388295697559209690271194715792494857102501476188282669202512957628788268726456294633339073200608329283588374442116563775059958260153225487793561872568212911165832012647198504690916349413302318533508819435968729207030610110092466426250243454183260265749373712979362829316603554778408070226297401515743146822747311498381786893155686873532289517234455061851802724403032277705937001040762322780106894028401619113816029815268438324427607727499465512644598443614398176209235711773567370876609457147367149854900527895846986149112715645118660195349335980359366633547088317194454109122463279526612238551099777688589688503677520143485708094065591221533745148386219789284446437470994176207318234167294095550075670364859310069833288776512738157015802277786367104617939612139788755131426148812080912016138056607234144925121635622548440455435507869249886965578462650235087869743143600619212290991986413081566197715497251733883040245247568888052238258539671479321239873821477682327712581611190955953793879996139932707337662453914106456672467685610182905697223913266454655538742845185446163002038263779887621992466594999661020892642249010767802797474978569717210663073520703150405237419896259613122857247423496315157489543024260672574843619942822816049090196253174231472291116449094036662125346716821650699340902489695845754703357485634727165525419519136131419698739636338932373566006299653306679721424199703140661847827951438843072295050258776503727376473266322746837303669350863734686907174381976711797423643248435862780395037375774602658581778955328737838183453305372214220402878697023804510514035914093516503273735179992591954451160631943466185733011822360054604745561787689562846755295513357742994234789709447832696478006126644045583784277882359195868916951916293557347347956256482364523649719787503706246971316253708685438648745170475891444059478332633732862579711485227480178147727076999947809645498558666213404985186498860931185415526616730679395359852135071517145787384079502396617279544858243491995272839288436415818648191367192751214907375296025182354908687621913127071400333897891177554365941644614739313395338214244191460068327924537757760923747709784311185638590921044944726037758651135219836131557072942505781902331564231218629550217067145202851819391079223098792630597260828897855278205214449198092303909279324035506885580643275256279265966995148769419270782555920834400622949308830593698316828648846660100239611788543868534987728639155658562415965773555377633336696987175512228078326386452308375544876688570346637903275695955420190252647210402888704447649789299184446702133380670247757844452138495279083739695764327121721779695357409605238305885314586994687550039333349336595930515606473381344099338482036619337157450465102544995221937268237075285828231192313586128748632548428521027711826212127247358410346018981796906218839421927130131539397674172722283045886513423588577480856788215446074195359570295470431228932474385614589180355145863993969515535226890566384872346151217876101742497710235377951146923947432640964756182008703770798269920273038743268471232349174101669760835697690116220212498364213894164221976296236351406976213838167667990207520222259807484028501387100932576696844757610113888465014126247345170885790848767555424776197589500912848238000151730363942249190654893291290567525251506631432962343399655238422357166265218056294558928446114838100586695134816477232986854283180555587466268132127165115266084522726530756241300629143776077026822180204686221429340213231014564504464951067925774201335558853286819846071256120450366069945666252453028125466619488387979529676522306151794067991226741769490249670617019751463304599817925539484515394645361011906751586941478559659868192100972427217685575444737968149136172392028494753584436036540171205154550514978292800573411892194698949657176296879822930644285705153841249209976055025251109199452937304214266433435116199461999309058940371597837577317222169799371760424995973931998060925432314047011061219406065387909815919897883376801424526282721457789281317571226461144903744458345060685533906492611072761824987757624625338368739353611144693285180679698229196970306451559590135838074813669732507147786411559591426213583551717482421826161532157636849827935824874370655049844070683394674386476645726315247542719096306585374584936691670244992609411938557441464179211089534798457037044505961644142830475044294287525845508533941064257061298859351212858645399046442062489379718243243569970262890601175692295376243071467927610168787897847977778314880248186044444938066843424812206511024782994469515565799249601479732570400879762928265417261236510558237390263838643567910588701164039658794262130012747852743792924826887032238097457091709571685768941281874793871964771956453211339795509148443445341954054073474141971587743845779527710090158644029595963776736596093885774302771406367697306015063578638464584457985908465327672458854638319436355838843858993882198018827483710713389377551523674113273195512274062107967206259336443286709828267869034390737577254017976772263965863572265233704745115541838197324051620580949745452514660668913713225687979127053119255478197289233448006747029801706742840638433595432972883079393239178306074219380954933989682738695436387000287545780116112708678893492197160445004796179762962909660475428767261449068416458026519951805812584589591959453794682874917616892216266686853322474976317383109694486867688254193685520734964725054814928782917630673843814059845598086995993159259321740268038957515388516995106841621688645009594103922577261169357843626642294273204843908825824383999479961543372314266144237274931368176574992366561094427143451129323899206726813451162060520246909274710596899014800624551817052014028623484548306123964805646192477779880741983175178220830876973240037594605542324452531613696612871575296255259697223550338544522002787516241851832865921838354079399396831543382223420251693135099131513776956566363137187213510438703868552242273151513677993440162259510713174321339341910031100603632945191626362313120854877043245141957358865714576929625607911386851329788222418695334573908481086609120724773376214027930912556241873066936781015724760014342363505180569494125857353004105720570757372970783588403925656345732785959936124027827672425255189434973570361402786651599165999774996727792932981361196983592780559277510515965599813390625865713186303292672558285605233493676151955054331912985083059519686195733938637335468337249788279721567192827392384818200927409212039176968029465656245540241454858285107259773742444738644151999519733467621161762799096526344136918824658226984425684522174511800773296320121043526021818945361433368671797544414335204925752132643857391493729973525885220429134184054124648113217734959726932126447581221588297529158714629173515136468961535895643435918567891389230363713002162772627778024082991177858414488511387521406824594912564890392697835715287939362382284102102634244156012933484604215748914659299759599680542602899176618873442404479286644105258415716291153174359259666056318158725943869897576842253785426735327013416629480323854287391892083959035112971371160382211625116997334136371441684965912885058458533726302057700344873738320726021847340731051521588970917219793288653641865958684889347573060084788343427057498066241433234262475848685318640081480758706039699348975891639841448099877791831334137876987588918832871718495075595036265843241193297679664714623185541639976979189215584577715621374565455361151567582129483329114024076048272329686873272125011835403513766893551959356904625353533047899177889779420693858544361273038779065888710770646462350240376461302104188835807147050992164740009130658953810825345906212621377523875545766701361687410483913953836423259425642758754409543698215990059932627384938638883348909670185934479675670658858414398497660509894943519225082060177796306366666544145810513236795213255512559169774882814908228114942312942362228188988318594471543238114059465359584815334177963939341045165332817967797321593146500423619642427282898362100857185116787297063840721029020654119160108867581800382656995599736824317793599415289531144100215344308363487253024114888742990994021995968483648958348772477636677975299948293649323577739432274520432016576893818129289216745795933753883917449505186357282613344682319454591653004945245652678970099926491443523048638471015470578861652812704620216993389145744937472149503752433720776713546766302625107674830416595533704570904422552759452551810616663920115181336913321699233450331804989235209842390364148530969613193023719292397111878726703484467911130750862331862537606642997752365442658654398056590384219971031224005485057268571491283362618741948937548178959713055608613427999574624819925447766866639674376895177744298339333756818035575851840671337639521059110504688189523818827510826247181650820023334210463179714430220076251952587630471434534479994357466807511729946897856954811745704780115091555914578397999824838734656699481325157719994343405189612453294031886759995955362369092960230553079307239328040842587897631378581942379272094751895200928157800826229849220199784135397299134332803368623425947086710497178395673217358175793409339679420200984956129449852321311767242413921546719756725596709389718546056355530909265548644499036561694129330734073624784129547374570712503545572229221630288382730532571596564877520861390354795775535430347433926412767481040500546702617469686862319610748512798891634846647621254047692668124250389325184305803238026390247229251846429662760847151978159273823788668645348636705145825969739584256717447218025201585626761092364303051321053671544864485271077114322813063155402338522683673844434926441705568252279544046903709511950750282543882362713697332405606335226612155020458557029239326296172484746031752379522188655516741543358833404828844334870454484879382211844978967488487608596110937302215791113958441351373547515693332692912328047333182741589172615573295823630135191439342723979888287304551260215203203855308125184419769949289338200227911500765653143967866151637119889637333938143612086010260224527621721145728059658911170284351442546242207259939925210071669282696923679489242909746546405565002115811111183858834948795199781422518606338933634602336152017463596126058777544305909880357295942675662496600087048977996190186351137968495976242788119369023562996950751424218068575216894701897417891879322292070832191446886512232358711064840691585857958915724377578267175934346457369515418042763352133319713923914967591934334737423378206146850329488409978038761470607708011128191205302969715210949403926141587771601542777954871590771714375158709948597409915091181251126874536507220342146848612132123472902383285372024156590169604228524544256983987802181740652203163185742304732399441331638952914615258782005958031830546961198221436656182738373700234197757658105761414966233263354735468486955571755863196221409551393301386114784029160665613464658118097745163960400996568773674620444896707076067518250345263126785139954167226528975233063488702173420896985923953611047231352629268084674875199404964569658256613092632114842902171872169570855882594912180564580382403410757125962820462656038934508649784789574174328896453926727300300655392734269943735835188272265491311543118133823987568582505370407973469803381326252372183271323527292093949483692651724118726725926901358508521216339584355100010606883956199527477707665940931835323248020195162372492223270135900958073172929743194629541550071329214229830413203217753164698636643823734540929625781726937950728251142067529491522675467765412036986566905088812878616236181182319179600031718457584249548457443420890646029339132078142875696043524199751175534446221792549668130149127071593984408771091796380003603716966491016551822501605264721959133642764378353127594891742134938154841503685027552969349629036350932263548905494027747408276029939531280072176882908728621353034739298815550474652523163629611672526706412842346410352386394792766296938011245282966996747115139747754624247111533298949610780227620628145483499547430395576117643716025629829997128458965511368961930559403652510502813430375518632897960691772338234916951027919559556710514333945291967915842885992562989498696603458386506504761716012527748733994665448944109539585725695735723036982830871939875332569134185826764576195492506907365863632445872959636164403508939048828653271522772911315070132831229983547687304924243491287713735595646855897609545621243251558301922763818975431598725266943338379514448404100361628195255553077927367440534465162047145566904642737872783064174615487775829343276686171995441225888344997318083822548247941430829289871037623385285807666566448192483157580339176205039652224743528491336606781668674636229945727129800328919754832838611109759191045913834756399708264227097787981661337719255131046552822985297499439748745771138229944657818372697922504919163778761343515217340947940523809722937828484033737604148606472457619749662498429439106804178528925874557006644826677693354574581484048904038011918884248356169190745723199185972254912550218140708874522467847591992071068515059492636304023919125807676535658569662954384599236078074343823187995361689401156198375941700789988184542593678065088942519899897978511304308537794683330145328993947948204384992513314864599152003612318494191942420963953452162770247384431652725623858950468201472329966843530467470685412263062955302993468010149983501234835371337256493724787705140152533520717966906914545195504383774235248371240633470398154698219244714934379732992898932651640535376139723566109556416975354139851498205019017336942423404643976594539230465148731725015065497241808576245752014704818269144386991337799697380489615717755663739945192667924842984061581153192215252422667262399405496154785540657380946454896998879542444739405608039610515679648289888391073369117404625904602294012494004589335479724046550615161674534027221092636634047395386980285874138263216695805236868777244106994987008066090511176156659045719951787377382431417760646095415444176676805303316173329572504057524507231221798811915284718216096824125995342686587086482612026161084641390362306763994081389967831443783409929375496656847063322760776771544990668668789961850452156617606568057324832317646286928046134023741865677305516662550252789868765914934833597416271754383076224166436032152678197880027470620744905444794760668506543796279157442211206173856420210762499416433191908798594752787334025440189178061913510216671482719836311780918552916314132296883198886383132092202494797685068212088743393412837989378300313099906983778448092947931174429829673980727194625946755865644093009997771730886211609747866542485926859898158252671768069433036281123495651067343774495211354263831976222323305642454416932432662575091411627430695533980421936543928998031135684056457272867413857356008904920617307327884060442349563984965307145298359439155836015803953053405361318055642888960166319721721706395676312823806337942774228684587436178971264246342106475966411861782170749308967178466288704922331798352753038323463983752772089832328269891013237292729467728293589838749468978646577099946455418465675807915302228133832502156298813861205157114535642255428739225162047379499428278306577605161058143476706169777039459405826858213632207681225450669689032372213776689898418576763948029485182489813444933871109475952449658309614522576379159568713424341986738103482719805180172540431704541905195431071626160305111744497678338344059736614339506935854798548212123906645643755107189426822850306771398975792958748698419671667358287937133647329118527249137252902212864278621814057428545997604022030691481145575208644747502046920832462604596848878065086153654947739841150744497402666826438726933703068268407439958649351563693272648015331225560867160302868358311654671140359357333315765268013853768712526459733876862982155608420825813274874765773337140036170767487252928786463845879531295254187988705555775064202662936487230087455462949719445371008558585732416491819045285192695863981107879627250568911673679417742663327765347400910169262350062937986408169304908530057326656282666324426600286966582556730591783616723244813672715044633883771923784605084699974437788135920850425364072801271446640281806328165252680916443766095337768240951392536744200280468899776859644216234312237962099239066309774941647722618046584087915387158415707134101924578322875498271633977697033869363035262094164446583937782751688098915854528264664727053861383437071783939941288920598342889793404725890210988677247662634182142016507273523871874234388273904220943591154315136272182691177616459105468361943242665055289837419779910403884407634821457407172975488879748591983992064767742310332759684745380697294097938552823079797641002262745673338307547319930535281344116962094573911089178314489820235796087093538672338366413915829780613861761737829064109295515292004857542522689763888393989555084089048881649023679052267652306379811418597513830283707882439097303719723398198406217620938431578017883745101405236121788095395254857831052621026253959863709254922890332977865085482419971510074442383891396548223679051601572938571083604838188830999514156669375753241394111991121565932042177959870657026771348566993142894600422559488973800415990303468124320628823336177982169414957114353369281581602610234207272905864761766596956106398776309723275323820249973621238226708427748351300151942270649547662439404530314426441562221177743462567458464529415213529674634382093677204434093227770864513125206806652950552488821479724996293144789216458232707845210380997729811011324160181737758276473586931041290320837998441449163271571955112406681742568880335547877153143223659666141900493390923575968049637290104290832795356654612456603667648848235883506057662167819680851303001131916565618936892724705554017462768666039456305838781680982262364276863605401960585930199109761777429415461958585389227958713757579918718102144928567741854024044884721667716692229389635309399080517021180383246412899551577482216373526868358517839840229328205270234233224141256893732543520833807655969421365628598232409880416749511839663414043692516954962314937068415879430470808190707250950382188368413434595955616369437925696595623257874304875788605544849223533774157607284378430126811098397941846145764244185120597519860739465228368898991374776276829546321770334795957070329662678536164126120629767093428011229815772049664268892231424731902177690474361557719338368226839176465904642461949463995205693315517621925418847125652709397089542954605676982115050668806636278566313369443042786989907371959836057335460475234090294957858063229735967771691395296458006276098881975813864178517451935916192508912826732178917025481019181227127430653967030053810117523151401976773008438294738121433486886009652512783050827443439418579589597873293028912667375241848818588999227891388104847053196469541765202126490951968719323537866665564799278851761658277215182749787156032662386624021041278911245973178934768712425636091424197103743107999487006174630791709281136154672023474548673912003567730234309598957529209252148317222762948730509497087169184049456314225376422915578612377153755645465640095752251839494538903915827250767413565822823448206851135093195548796189694258124938234181924842119108682542391675836678842671549536022176771445611177108051789915366733575499169603968377350687508865603067931836559796072743621977422939026501641735601290699855875281964153723349004074187510199545560015787118011695435426334797410984298653664639069011940441104113987801970113641939987613069045311537822289775778727503828554182931267157765737892584714390612742401453739711873738461928139574877195468635073953930754241929263116024677824682986898849043025644545739764755673739749527613274317338729406698777209192623512446712872719248205886496907792060920752692391449659786147686846157325301913138943359314292448728832982876642587972461111212689696349266436132619046425741121513724769412535314786054255801714091408471169747015866978118967613262573287115445833245012276467101587863055322325233486290175897207222380866352174191819138691313114907972716590159266123619647054966870725789117463148954683926538168837216338184147356290773524337546123383484846921564143275376424538386652352887244868466348778905150531614261113679857463360641962114951644652038176537715737614180173405739113180128300182289177483707540371152898598013416907741289282623722108518108885373541344299877324620619607303931677369904427266435300617823864782801257984855213702707552841929276552201452568968912196473362198176322118314948448976085722808067897981690266105420448165708535144640406743452839225188546877923742972943192262771514610038155855508037163820138517186321324440381956519429449624605959425659275565407405681635100904213379856779541116770789186779208097780702438799409644185222943802164316589871409892480509185357152985635297008853378978381389475870415205377805071117192238125837951604115637166939429801895779333487336635615238107115893829174969126934319868371012720182367731027521803947414403683642782696484594344125221809554236025096173288989512399414415782751977839206931772229753520566505623890291354494138930736303384825869057173774492560536721761525794727973570991387141451978361890991601554988180112780558572789959897334182601958492118732704833915614664536469043928648716250880826825585539604408003468462476633746714772637788300328343391799233285884347329417176162619553585541648548101691525884393244186390016119887694090805197903368016291632641817674133019381066139370545169661160257254990342791893794543453292795737457983550585938523362912113282661552885769718097456991783986653255239891875063835227332565319930144359779220039943667824786861777376369231734641015633867793737894766347861724921661123568741432069815019768678515112629597505466409402296875458543320494432184897033492378030179951661497313482092360077836639182883337267124481397998973145027002455631228712629543078855827015825705160066463378364865853298985154853950765888956260668647368933868795992071786823587482656256688891158854508058575937493467586628717808807983483380548092480431791565265306135012151280572649315651759132332958213847133616201752226828154625830030037262842014689418417385261847212417399178960137384375703186235575257595480123750413875348723776601084225217076325399080661096402174948217662165735917510785120511024811295416349377774853803958855740360364945972585245693952128534532097629566830797812126926597495986967262376233048534042705058982123522385679456178865052738296396567426452719444096897021032476036727151105509832881133830208761329421843250618966293861853237157893474230117431373376669896514910904880134351544703147671408683795138918820341170148167979254756819986702772526919582759942259768938729312505583040543899173022555380498950168774934969644454498893187655879238178550807623614399058925636284467335554309022492089336039463252570734332386664876212159129630507904056499909027609847740875225671338569156189369935808115710545428512248762874973061954394172889461581197990019171725844260910102534948675518709317616013860095620648503922235738676842358414812641681483796099558362710250152378486983886543231375027162045465027802599395338747330982382931715304142565611836222791981407558579157558032345812761035596283264616569443642999110104095761765633852699093493207906929230083866939419737862829516206841492894064175231248707345614147429814684559911696048601752030343206953636021385603221507671277983355419799782847907856029228623486947662039238216653540879208874492048032101377658337564560293927721943620620554452287733220200314141160481631276579079533817139478570337187354373486275763597296534077665487509277499391437462067638514723833966612822733201327682493593973848487533501339489026445267385258663942626486910363757869031366582518219119060564694575772140320779286035383324265657557855109421866922173643597862637316157734788192863705992355530823764571130621814213388789231238492778300224175778645273960803990934114723647522246055183941935167153898055270445304282438574753264118384193670197649663139311775679517588238772663063074330894671265185400576746644579829115709410928776758538627794203143050852247790418034568868678145721743039403330207364268685580844548817146932848828541889928563131739444962306815782603586156642918811044387136702275046949341454313708096767560349405096024032928243276499952933581336507642225294387145390746378013345761263681351501391851173704535945666373248490882508377816174496235032818548270486079393991989621909817844232963722930180701516631103602949822918547656559091527999680755033908164738228195872530099410932325122053580400203161256632157224022773146269831059946124334537831969670863990461471452793311704653246313725605639673458323395140289775631380221592463250370013796784292366695952559247179507129439935408442003131225918512614545374576561007836697425195426084418081014945426549877692467230351196493705145346312381414162034920545396667468655719391746137774482047498086200557396287620717799371020647034532335687149428294497572295945731328054668170289731416249045643994001722344825628096945582994576345941278832964138256648370199241015422176376993553235552859569213940850332870418396063917470655555358848476128949715488967211841662517177851624676626284488129336669301915748680583344086777455122545524469181283301998384520081586169397281123184497949544941288714303691125792092402177570741563465213586107458002999741947971138869139821267689008043752812427977115766309675131622157551727189443495239957056436009858669574299355119464068419383106789880971871099173439743923206017835051781945275742134193529240652790423278605174595838623529542678752986258144451975934871472674404896159427899517978123094817390463194367369306240524901189271926840304385961406537617165414409024979354818316970352881943714332544239723168805209694768668767621133653522931492099559978998226503344394567554081104868473621228274091158564769275850554373568157242005928641568353364100121072378617250647835788012531294272480233041495674333597593112388476384309292096987263172558677290034729632122373879931027830218390752426098707982427884392994759301727452633537791375032302675657645450549521212937257059246046797043103949517678235864167777235497132830351012474738454472939244501653434090910012750073981647370722665364811547813979747397741863265890686973615883198988728744744324789574216898371583652512706734295108388733146664466850230604066663575429384192263734771918364861435872503803513987854344194253899762375153420128476353232210388122391979044398013795225981871582252132899873231695948336456655967067755508551936197002942265752988182183029452785503639804612231620319903754549005329649812658217069943821330025787866319736755916522502448457055907222893010443697497046382622663311724752271428125386165878458876241469474922999454156733104826002509768696557706024113283233456245399562428445567540439260287548551700431706596419798172161554863831998738994156978886053813499431599830290192113037718410700044616141917589269295586797865380013664503911242788630779758354163894557073401625486773974340133147947334769277625821428079071670299589627865398464263409422857465973566178533266544920932452864283465216993590495112569254152691271763252920586681383518555928323503735181741934448774901453423213917098506062044367977840188201027504737036169575739213943445861881745246554924572974466878284438401484966982645271154351752024029916695036048878382613203410098887722502666586897415293899380895194960061124431982102269673272712837595537212415117017393872937594882605365179826903261499642560765224209536393961953985655222769201298098943104232467978661527184372167975275381748381916404590481814408189791625148463709451859388946155351413963514848606549933685046412191933458392274540211967274816296396952085891977360456334366953218979051629952150794713123492561384046555807609697848164867207532978971952405068743735694895490896184692126973164741785762356647867781008016825021049323196145507456273979078692175722714715033748423289005865113869697805271415513411634744736699480470245588901939758954709383781375143647472612595826630017193191556844842040147322953119067726081681542178985352729290074467365859597633201197533998129732342834854772636801508053834828660169882387956762544487348889304803255020323120248648253568470126144499943725310653475558463807280789626659058423441784952105833408684782719122074721703667350389672928521744696382907252221936526637331613039295239545303186445895169602812434484716165386708285423093097231632826030495136982784272481426127206849461471517980329715354740485430051994633250161677316874286940658712274690516683762977918414073023489969975402552125605182928460878868823377849592781388743883516373391873315531014654241447276135909442126237473402358483655241398907881863482309629263751150937916895152890160406457519456150673063731836999424506732344425321932103514598391034083845146564973576881627346380281237484096826137899323186023172724001354158739919537074497114862606347563925909992905856622072270499701492726612867335873070833387397997998518335294194055875067105806883528736098630092007221596236948799854369986157800480487241387526362699190696643367851878941119542768838197328958924838416033387938014941762297478215894171098695912225644462300439635840167398383697780774607520506958734129971395307886006281398410791602193584657632499452579097989183557601798593930233232839350921570444203454962252758623640165650483019798890670852813663204725881923053549219481475651210796521807182489552376890850863599197861548975513218088315987117568198120092643865504416623659685169664453040334825761290175180848352311759389339995724179958777243933143782917831424852727699183061681491884042163344849955067151619800437851774330190794626733712244392842153086819398082675153076580176335447526598847691311758739396347242914808768803191738436963061654564305393141632320950805123259690801536408207685027618418452632025410121417934819497133596902416735453856819330114821511528324639491846022376636388760952574245443857260158795935846144186729063947192485418599476449268793905736135286986323851761958695848923485821544222116912619653558572398567647813996866579770342935149412854908261975991835449543779176437474416662177266582968742226080535831177011562229562088556313617109887823824911864984287325201562854747876981943180138330184256996690749645362065745913822842950179979043987455560214494089292604580978753292019669113239543391815281203648439270292140450497916159750719635409568537528229242948095028882501306855667544444326605104972614714255974333393580198091955789953250884830887194445780789593093647175866307010144224919803724111786315965525715409601304312131881426679750277346570834271354440809476119710350452607538906314750534795694256696564016195748810922182911399339947954479645291034365165406522534883217218365345829868714821421714103660039083659456771696532247781289988481753192747733515611367488666387121077377011761379948610780459693941652027538497503992590211954732959392463932026588856650376286196655071276788676579391989319527921467499031973409987395840966554264151625987901818186313214311642223884934296033135178495778016412175767985738997546103629437266818568705669862976151193358150122980534397891443522677528240602362964043116821709851725368188228669595918235424003504573138475486699141843131099449932211420042149856699676865709699052753981421201371508555029614979127152009605125803362018519730692029156683926258023376376117017036160374966847319982935170512257226650290846493000353913853651095469498945727625768132692437093184411782246072330161472841947930139165212267676434311878676707075499621119621775443324982013579176260619373945171028935058455270818882084291453536237825137829423553810042269067335644644563107723652418176148658368601967396761273339525346339886576388631426079326642332489635857616043824850357790744498422613335555804358929678194381953439764661556401505969761245935980655394132266163705589749173818688769210937419262278902456987907161688456556232654014890766032774955583854658065214652809163833720827939549412168101413965135514100532635855076733786284026166701672885053848261237183938117526561491822921311784581866979072791315192095173471744847641807929455653303290941241330179343917007845498062540653868183563465877650591822865051352735361251362369955141405926774725977286323175100882527406435509569589494394070715345072968753939956890557787817351391602712847396430244560914585690743437751005689161472391078921733570436384776653083684455602874045726864016677386434857007018047367138653687942845409003974725655157309174797651255751028795989619472527466122509425271228891370522196374985162024481034423110803597855102077896867831352927936632195975448433492929465028857739575402957883889975437225392559899811105236481397033936071943472230461674383404051184977523765356298493653538167479336588716623155084854915795768068718920783791915183240653418488119989717556862896582206571964498571188673658418683086198888164773055783584869157422338149218664943727794883356256427236610346099240764212134483461152944043683745086626890923307494206126024151141002517096849260307354134763624225428069000257511278046411297739264440048707181460683516651105063415706415752783332492224614840173527160933053301256382228746752736939819371167599285959898354737684565901347898233502945307674267673575733421738438914849305592840680721299998492887462543650666421186929942690953602018587304325463885384646028935110495328463846195452989911625116485399072390202082489062233913782330822187538595725559518659930866818811320263938902743290094631959157876721805634436248042067127621067364235598949134237844899151694246275926981504264573686889653672209938993716676467023814432545519512767466799309249028346330233066535246101490325112785719863877410437274962812988223062507338966156367174488878157331823933765955611766512344928661638703953533468564891015824884694653829377208702240794763747119700476391065751352668004618061706722597198232690542587431981351455439714054465019556245548849314869032455350356848060269927371102722550155096073177252561964613293047123896839159539199097094896984236403084399118767549339724764372362117855688296326197629739300841787682695015614893630075497262377704162096352514265033508772206930926268675315832287042139315857878632799463360945661595256534818532825333560349975894465784726258319435177459382199569421287514641068264356340486335788305459545620634273866468560861457668472365458810408551162551805176543919524278712721789301357964448080358895585344177159714812911401812005003686234114389262344892169528723442159737142348234517527760389412266694785479218666582878434636773214667721103883208396264769970592992393963353185333189705882732663350507923372776523257134963043986962651677122082981203263800081915319335012416512984627313730563426434884594318567102962728226778957299973260241031667928305549765920665126065873412673278717115228992304571890509756389122005615251859045152372966423935206444432701317837167311107957937969735302359109000911348614632426340020111720577305680346309766559349990542864436870934007940808479835755406955612441501403293655575042664979720867061499515977514659272136592058522643033518790602161718704845255754135092583200460374045154995452991225479541514478784842430254083019466455831087443239423298768023247632116402881799578850152133040635101859628587609331955119979305134502229532249770016723009163718891338833846223686584029157153679408770278205016584556231424146864212585473435748205004825809400339616979447974359216239372215375372799412649612615500169369095396915155012003381309779393773983891118427308610512809024361427632726171969809123401715724716279261770315294642277976596832087164556316828565071791788380482066359360580514653651492177984843587132688241204945866676467381333429256127036373631368493126072517298664418927570956868486781059407585023979239450566346368511929309897906743925739199789846163284464496868885941475097045068528037491910656340674442934926015186624114924001214969264686258014892936388609136936501349614298325259496164963421843285237819588961537744922751442749031971921491832626386325297235933722343044296397163515979554894575509132239495460925185268699532512285772156118889399970025123203537295782341886166621426986069538705620671314280584464763674824378110598822038376751473869037089660267796018385398997217919583886464640650002719398552924483550161266212140456456065193534723717884740911584510808624451363750114755041938420341739504717693231147089520654179636107813534190898720916796653645664680085637616954577217250813268349074596481560524309363619667632694524918766658127880840563790395145461734275916990791688361017414498878843676878679942301199911471571345582667764223568327230538934179753818194004622675617227314276373313523641447101282765936676066675844450235252428060658861655948576994855311462039292949506519867148873285336433538501640536201828452377674594350655100074648912511972137429737999171581711826382816178872247601325396265066943183257938058802468778851962750508538887885505409808846396566443365186042337533914582524202386515315331361430262968397217001672009918674376688673436763627422801239891375742580251092451717892698056087729998649543791630984049270611850576069265054627382886657868416286678662435826666775766744157883322827299126135426481126044618991686033595657946036390927120650011093064136324922523949227225156534375451435926984145943332917298638151712525212980988502117029054455192897750362117285370290859715591778717378670784478302781353432845484279397251817413099647417856741647179701334416367125918019043553794358775517910889189164283405856168532854408572933363272054516641254261570615625259561474840817947103612635680462640133412226258539126912574181534743011794901129311789890894500784198558798659696267810782813479072767699742563565878438179042904046899906937234067165361552947261546725365653243784249417226718828791265759118615816918915418760069438074129654269630536031220439182138129310384439267419802186927624094570093727652523461944593182929980773247524015896959613826371230900731632463975925960408759457624176025066154629632806657818286100722662592630593658370454927640197658241122289463665222186214435806842761554135794887257700579834028917369242926948976943074025350935732737530121821173494940782886354704165503453768515297539022359511542716448370187480596454545022134231465847565897727943794213170557984267675765515695949568800796258300915396641567003595378157030755654126023802729115520217225659108322733420041542116425994834615644247187166397368149987942772696146112386795711579168735244516345133360781172921671241611925552248546687365735039879925641327730925945041143492723080028901950317323328502792834488766949076046714584400953100615188096746835678542184350045066240927894547976978168726926307391791367064298758416948118794821198953820014627966378597467644872403944679847280821500191654512510168872173123296895075590347090613713666433572464337321857736828811971341142322233332597756530043520748498019296177386811628577412995310367668384383329885826866581910588491506430794106544662936462498958682837807591201866348927314148081070839394478219755694593856035721648826013127815745461199709757606052754232848375956728863328568938905384559227469219688971278939457327336977194828739562682197802889580442364525485750776651726426932198317353337206590844208159484138840412513121143270066214914223733210964378088469913294033248392233286401896625797746072497159599288934826712829542773288973893631340847243620085672793443368721904558525280820248149617306122062587363638754229323751030327569651816654554203373248443616006940117557346709185287651274975222319847357068573359866192012401361293727262134649976056523603681483958740430561544530054186537929963590159737875993192416483906293423524337589821995158657014612165528724861399938247476568667301799274936445497271309171384596062081780064943708303557078221436089485225420460769864298226564661234354587350527473522571441979744194432412371145680202649944159962230432171746269908694776942593116115869889534000775756303868329845661812257491767584442328945074525514206855952193499883960492200851772586149726577317135494365683867879416589280231950550437731345806659635650649839253275159967091761496269098617354476750917933706410914842226696655577659152696130113497098406819475206068692542512357975381139293664895222762327152101328263555719404694127191593907611845875691704719334934442157327176607402657640495639515123668225816765643992317265601064905958627581982074606686278781865640142459931354504767388862837657856066626587587022821463528146026610504434418544556388374268420652568385418769544001496612948089281104502421267486813302942434899368900541020313617256852256749754981308961060143074660710680541375398665443207840288426697934145743508093113193868851675268588946905954133623558193042156441362018285151520389841586127212565235028937859324469813615423945766824682132264312196169674416377370327288478071182184695589514218813962359876280088351743646752379248243847737658863539318396689526062564260758401102624627997863652694958343702361198905730105064367656584376738437548579548114800077829966363092680951536662998198963340991906920273527446346640382919207132639984331225937640279256747623030342289737398200981434625128631800186549866981709761289304913973166649992456656883682677435030494093945182215964832032511573825636463860538661976268407681760596412350707999607127509513011618466082833106524825096879991151790969380826174390959631456446005155557212949699815877034527373470575254003726853444869351080611449098155386342808271943802246057358425894449251993337807179082074391915222078781658975279905480946097863224731892396581014131213950893269000065443545834587261920837080969272255120462359215279613156156215383447146152123074197274953431034750375209608948815350729846174117387128658366499236375036933142606928956484637502046020294171645149897209563162974159441026374271048692379914727489548097476580473680380774513718369932194149535151015961781977611742298887544617867794301788042939221974314883935170865728416277356075243470189866338192830503572122210925309746589823687306683051684418856957266123716821641538772171770121169381954204361392418791551417406985411825464699543886432656429681340989417164008374526187409545725211901582641824477318952272153573355409603349085216704081351825747073314499347234670434344940266539352184612757262410494795310297104885958490122082708938571484532853038964727939347483572127662533756080945767024787920070543488154015330992121055058520648255273412926442974427119724253015788961536629744765819268211801014618845505129556622127582209644274743953786554481599509920272375139045672325629809034711223356659097835246077465631944422052285005197069566944703534135087270143243714667957393658793002342778601686750100839709925208163733287589079316918454919692260502697232643101344449215922864345248741134520538481535391550538724727114524359333268997567107801365759378415352359485020847343655991702325641683782795217564616527183878578417225293128568273529584405017198217785697121827998176909865070323484384788636107589825117129937059567326274697871074969421640070248436054318432176112381177057443766768971818376359998140752824338477511226325159701653010868486942294623928694836923176316018572903309812077977902749789373890201929590669273877212642789019841674413642124530454404400336130962544610953554719552880730125837969488920745226092155256787531797104945920730740443694341998335769435576638859547344214071978547262061039215255653271487496237579746628979478356431521791595196315583127944069692045511238391106987814367754907780040157846550529444614856527065375294225948676227573385279675339453951244664497230915524416106639998030578382861548476473696671342531835786275789038513890829775842934257535479456593162041400943211874979732831524779714501927385255002354317607991192990737678805612063347750105736165788187819422256300611676552317581892411075160965861215268035710304377267758203273350625812631510604697669487682397488801950563290161551097579558195240323898751158502829893297571861157959192870512231874472124222438897195570065985394475835372561708078342409862445548218459333554150434027266078772168942142133041341567059272739934087233533592492482603807206243564987846719236977774351274565249594448758289397355231071135950676775185116966543630236277226938117925663787859928827025992054717123723925095631582267851059977688046683427312928584576175847258477669760786415442013476159623014853344455069501531465596799804832878735628873305098109515911060753721554217870528154730906749124174887803369152415304281820312407997139501841148453159068645738115954597968141637200884821899545515628893694526555196958388305463419252788788132414892410887182298779588615218211066998091426597414235747579890401180998294138398310527366871535720252021931204769732401729972777958898719612102168789100568294705504624261680715513933214346161509737208892627614922256650588593534883212578051804423502618116836383641481354210992257537320754620541039632008265336728837924376012376169408817698383870803216450046702191746616967801425496023501463903361026262441126597472543737507983554809813194594438000536006101754008568619671752631130259566558783411412555724380248748691313593910982132894350769252513492897735891449962394969505619757324988739915117229608069939817370695252932914100667567769248637546525663896565041929068966874118211403067481901301809696833167345662915352206055229348779964638788063387462799401920774297658126337294780758057431314625541924346829225103478442755078791740277895468659594696178365080142725249249445880659276884279180408746849526971196674467767815976357815521577633171342313634430784444246102273210804079020483700727959080768642463752541462914816503056253919543681017563577232825080797937953693641440324510774755871298390318831842092516680201451669653477901241224974103713591057331567629254747470175274729732512983088961405124535952911601346795810048948941183365194215490932480534655754923964668089990770147562768390030567987177640659712220825817465968489184847366040150337379674055203327690184738626138842511142278522328292604866684771542637522068226290586574145048104485915193436116486418076984031093629324956077912220558081230524216850489963914277376854182999685184034563733065852858198886631802848548631019868728466572048477819126116722129469704995670345430236431690219053853673205586298272376913165723685396595417552449582921273204872155602391760636744417865866711321114610609339610753576895243764111313669677402475438222483170261148838413664663076892740676340259828665043818487359431454380112764911695439576404985192604533278151905485852430118571702239059446249558964061894456505969937711041457391356407642210125995888127099236286709263590920679954518003240923570054331531459045465645115560808501593150014094508581098525909677513514143532131879059154445931006463769479293561489544550896533873053578311103263017100558401022561760401466365933976956779797111148396729776185554655439559818100529054886414332683176649585791671449642746406271130872981863615887203359661177481496864539051163791109012278287645524456392642437676572490836410137884635556654190583568037747558995617484408320224050429605395968958889766945005431444595680062659522216929618600858291940734191346496750174731336199098786766822145853506446615075428312292642060903704335113981796444717341249717350148438213142016420456389489095368964025470380197175683894205229027524527722131984126357586504654542013366979413431792349952198321075322368362849835395079329956207714763489678257675980169776308534488395517796743839095315068656041810709776545895882663224468444260003830227835346087435990509381466327147248219297286352242924951302889367275322483549734934895263514645787936142137230907630732550384911449752095788888399111010113954196512875925371178526621651449406819574660282895117622505712782074767540086576892750335486732073135147267884848455183623840287403438647926477943771877578655511922941371728175071666613688065098652063320373462727979069429957665054653174612374074320668247720554143644911155556314774340735858977546686870642527508213613548730806864681219490726464453062665209053714342414925527870943166458499664123892346778761339194122587110400774183990783247832560498208369581140915189219579296901272145983067141061893650139030841818073862498134423375716218495458381886207222586630764052848849355896839272963259264743346950449245081404084778567739371722955715769320515675810858353548021864339175285217501055692719818776377168708379001538492253257453817501326542446493622817409758060012724422205734280328760019947594583787907963573402939923615984023523989884453626871482621785667890693554931334063654040149649471280959597044024745566546629568244133967508062613509236494737120555838085238485779610858830433314686508383516436521903034911868176985841346933273075817358321100427670428643025893292316265076617674383618585917752954622993133084697006909219810117743861180578356682474308773158197338525567647282155283769533277588964343614349975059636771772750466142535767069187556275197828753515780477711085762872781707931923584131112827439266774513883363486221289658480812381465827203488885773238959411362503866532373671430743973869784491641348518878692441856525727462806573996244762161779384165191168665218786364973476075219097312285710869375569928548813991661552938134572679013864006183547362570551083021556867125352468528943370534169864833961050872204247149963657371289735743699396055651486746820428594689572695520666215746410100599245529073798953328647070315660144535663187474386434074336395072770698240109431426943595855884070594770697419055846579749512120287902936471217381155643084080913754280187454680737486994017662033439884150692274512737913165581768177967800529026735431298632829522841123779104912313486812927598895382473916396573765336258445697100445758152167291345825674727989749812185245258564212513544790296586468981145083834657276836061731597253571331754455058923151845724241748465784670453616798710170726342055573344668743294266321674667563845935293037947084496913430961931360327850390194590915639201181035729840796456473740878405607827361251462981886504251708479703290158503693919361374366620608959469119712885190759275494155892722832849466039980727853885371452417686971854292707779599591821715321893845104286078268385327387046348317758288340215778062732580508692299383961950806376224601350429496654033500536044197746815366863955936646962262281304409162986215555191037744160594504791096160037452390848854618395830274378434590075871745710493625943923209233574310548504751279133807711192114527066055948587983096136451584234224527509599853195897835298630539167749774349605590338410126771934465315164999883697036771834055666489268674894499778218266861144058819944039941791086191665510102631967959634946053312489572835298660188003291228131433584783104516869204145724965188200225886266712429308585904777458279255384202435224209978228913237708586128552755887587348852207164941710734580552606742047169758198233290525951128160942558253179703164569277854806608431590209568611187818128914073345328549411049283842604077940106645295429468621152164371204120042206073041998022091994342735051621709639061735200503126056458007665088571287520661713344565019678418427752321803009030728548409237590134146747742330497391180735061541928765514283219303465517653925386984463124795775114962511886449780943756580944486356163928421607791103975183706807945894130701174726630173678372674068526205324993632282505697168434188543716350016761643554921130756621385449337353395795623538391759632051185149301548782557619268826174664065762698679415318515511685235835799136772862289946729880973406381378860308254305088122794176664454619006461190781880003846943341081538067372545055217708334087975282015047427834826471763306519116378796676352634628583489176058702380617235488880879161971157425789849481964850023125308940160256759507118068977982417822418999097057825570731128668954450107945063350654629931229177210733752746146623423504199075116807839430124639496862238515916824206911006657377478471276986885548956151706674657223098911187367286266570574600293227046781916147398219492724584434863886557321566056397875643433442671658082306810798278162874388301631763350742621045348073786264815743570452966746140568130921494161439128125447088775913263771410145414181553512075691815139792912459195445475295246759629042570847188927243685916581850814326798678987873988349579346862102514125040781445611016792830942434164316679594446909498551430564887767777429623242252080527357200365425437134995690345126673084416292690666649576161135378643339963981334238333845868685942013689002249586850943054115892861912155696695228184068293516932742046279628383179773637843224759778515142732810845980373602761288390554739332517844876493486112486485682744993553863485927358123874552545485583459891815563905115254354177509477737679916047135703701479782273614202457557601046585222472168184485552682251039731433325297227622654237984591510255929956056446739861361989428533918284297671322931685137582731908514407494056639712985221243225296017866068976175074296230849245822642399181170345182734667810538959111911987346385239348545804253321934213000131299891963643239974211489447585819708963277163951077883306574876829735183823486960295551820946699091502626175275604892418067873568379646762041117909887172205872133136771848559445582633172799339376595140014601993168036739382654422985593878897899077659946638626985335752464548426018613162858133260378496044317712989265429875639351165124158721503089178133193917822502081733145295502365444415993084574553656441691758743984143513759928138151116134137152269651263888626730546866364218469186370036234502365872380105685546628618854226198737113056306198112996722832486825245705562521443734396269447855714695176689586992672081655834528510193982729192764816406493466931910147759421798621844021147475679418009375182145925230468342359566272932796423586953196147712546947951881472657750906638508594140283462805833869803382091304378150297396861542754270747302566983042597686743185459297964129615026146477141596915624408693852394190622270757393325211663703164976814924851663739079637809357144731550229027658981589277403322891463191717924207252699854314098198973907878698857110670429738272745337312395917374670352179132890769510579709265447494297436500467478759637081267491431249026905552788257627573850330120324495049584735494348264161452011557795692855065677819260902182012896101158611970538280328652279284329084837137834313539287472754735055560509857937197669719989952990578116105083277697645306354652685438023118053841809360780185488067082501602063826164207273458533232452159202545142571580750352156516759214325425973410871515064272764834789841737093349945744674983973166653266694984904706816569411292553156563978180478784587732412485489542283145199367523362413446561528546477143653025837736652253315537381782514767422616855678749562273593427851261846365250789477954674278719869068897901931446522553874635529353714745457301756598321811609805388680622010658339399620156124544655098689630221549996458831766489111478800797533214563741485994938772744152948884434327962878517561202266626555554758385367703500001400148378931505628593832566573598366501981650428737689750591455945212521794535099556593391983461691217210116389318859742064392419125698082753172218005612920781489254863285764873822198954579591130921064531641579141706128650791681893032813553237777183815389394325049229840045232246379144043594689701178293983686154767441282378619653322975544143549843341427519979869264161737894889629167452948603557176511921822691854691205281115210626273316060635481318778312532326810146086241053390564789804704352577782062227567111612058029577948377512586922491205065280930069461788363712254118759771996498987682080702051444073132763997194558819591251469731670890224014655807260987540950579684770696451273218234960559147212458877471135710461329958136623455613813186676395306057338597568732818864512288764567578935801855147705032570460582789083215621567341031470141522856642487875398079779122793894989166429837670461838658673927169667262864932650943718863771160252130818535890079631628727318137298251958936398508264549139811418765679812788116495268793325333453570183967251955320513588817123314477752881410254527141759652350785705082591057950574405102725488393304866374663084902009750397310108186298653628827426209320459875352731409663137243680588269346176307335782955240941857079163667716258236737134588605556655884372916771747758056821825856483063096550405427471325658324928650258395935493943110768770402447155373812561316221475443385862202117506375470251257988183110532315248348858126424781440392158713183106014823760172461557279228635522638520598453856891529671337928529987566286881690574539377764064623353859682974581979252117138683159799707845874704947552130317944896697107139428060784209338865296404463521948715711578320246285599535039318866436416786789360508984520160617377681380227297959673195732340645943410882443775953331033656806714819917869745642289571651360947403733829466443416021591282332106786611446601455205567742469425224194550325968981079464892360507078831790659065209813001279204853164748839114669617953452879857299450430457165723762976657327115111955744602109631975731369552299675954899412670230149287382825243406083253586482680949370344482428390293363555062089773418533918456996304446995693041337874704107041983432115919852301640325411282129788133499838355989965716031884553034801176502270767537823722612323815978963959350266622932052252837075490360924880600812240168208974806626256049534844867243542550946265140883944774730640075526693804718793542146500542926632551428988226232552213728638739934452516609174784702384808942364825957506165331488070439658513454637812651098671581154208461227905598197786801681664819862253948846687579677822344297580449438282418694930807253951665382565589631149280051558497343726302814462287846674669223071921934564824721358154724780391078779235793089434179226356840529703323345165598389648048148664138825619932508824720315684456043749354419734590516365447110294061113717647984605954988313241390534949247813557412789858882522379290160267816564812099419229945936304990345248582822537357830581750893762200451923467161726385088136437889501808630877654893467500342259112946678982745761768447125827509909517510001386892882483403991770003193321563446191900536957332830044183333449543536852239467608825571150671407891687634219846723779346236409881064462393203657123256555169955535980447193883602886644236911524521513343921364391778176078796014426615212512547365197951113801888479397670882465984993339939795622409999943645362899264232351117945430895932314748560120442548429788236543585936718966725869261409666514597836036188646570595556355901759476231642608077652432364969535849814364721563116619434138242220568510576188898590280361942962898982660443455256658542396057249601113902854563067480456639229761716638937315958269951353815463890496263649359049942850322964372551984285837153226003100703410069530488162231461252124151114158218088729288395257057712407597015040820955944972555786167833144315251526726772544311124862825043262937927478115359324290977115267081245213479968931639017568878956050242311407544104174684958002752723760399252365145264033877838137807098949199699763320646977438121416977557137865568205259673154409606045004348922771703984813414584918994025884847229456310347736474261081985979797027941771593317263112698103748456067268611411766354439501183261359757247413589685116502185773809197315229218163853939446666073773460405857349380379721055119698366616057666399628423994418236548986024467224986452647528682738872445037855341614466877158610701574529759118195618993968163991219900655421291162722931273593555271524896079117251311075375541281831868846557974876932955511908045221162600424853465839858539526992309106956930881268839464891514814774495981843378982883949397273322203753679816104723210597976087677983833404367687232356581645983260811232984006104944325819689899153109817447304664394916045630801653074581206516907202220260111438663572624971661009597574773395446058851733074719251791866801943992213491011104587497803582962112089704847890653734567673620762382819432819796593006910979062094653319794032725996926847254046482772424657488021348478685789435816170586650534567234939173639877947214179168534977070889613186250673906579111665935674328885369759680336247006915562852892476236460987459752651158716626032481890759669636399396686406814335421511919475122357506815475912559310135785805730765526881981265669709264761858536502248587584934711796433200615800584341427468100253426474997358014097915515996083297977528027574364689839504926600711393295327776614905139765044630855330874321479262882915752250125824452264324666498326488415149690364401232749349180045044340780700799794264503350394949400885199417982016623168190566260769467602787118386246275890570302865061434306883423968947780774979135554995212576421278853824428373202745179429841235855650291468695594399365491512990560187426129903037580563741489165535131605439374028495759878686114285328417848846665380638206117804579359104217285744727065236411419446526714111835723885415721606357165805027771940657190835185344229554519241198926569549583786391589089510448227214086983966512635027462894121995149631533728237848881241579908300363714838709195735905580254750140725082880009947262609110332491525401984129109788507477633345314232828942643935522083258942721936035292581307582641683004487239879626909623720001454736381211216253363666871006641133294351183637938156239313277364540178235907754714680796696319675988159703110236150826855963235505657520265381340740321393816453597572097953048366292224031151287816646322111357990787014259886200551347582274590284917796463028369533592859917589734684516052877926474579009267583512825492234068662573831698725862817181199215919085603105726174009094157348920558389654942314538401428862779799079374248038145808748439416898554599047952967752819554854354720670324603619966799118365764797046667440785785278769012465628389598653486553559076858080407959945733526696776530737810986355324084633829737222569037378181669452903721716386642375056125988198894371895660523268182219695358655383860058293059693527615291718074370197189710325770552611183101618839295356524418491456596384849347223614497076055338261521723285551703570231847016314629078546041280423627482628359779834152091587407636477994382149292792507282713833861807299339522226110261896752471601690352112442720557524079170221983220666387074644653444285836071978598926169026132589246039199829035350748278730197811676169476547280274936953721871487643741678037388582548896414497866291354920235413555067248887322067892188960293572848133864367954247262686693444247714338284980964594593550017903317261785827387162285586181495346616454571609244648409762725037967629560997266676633725351928642684109826766433533113690344055178386068468944760575813022487212731108569498013647363809549170170942477937526280779410527724344885876789698968426533066713149011569990139152165337478743271997998058705199161980050165018399939540900678034543451954191339274737431888874811859960834209880987839286275273518778861948008043435477353038779982782556827749101122846827782812439419266067736819446955259955496241074113699793379534322829510762004794605105452824897320405086011184777645219908462955327894465328681647159026917626327871912664327064955352408443509921412723028016213223206456637568697902218924345228399314978921072267226478762078292714280907748852696265108619163088168196987989315830223121754544665078486841962790370112287094871311796121772539302728345992857411511859344077822352523662892649109053824317962840365121690341385468481946993789771318716563899549481861625353828560468807073211969381541530400860075554577632793488036411145566876978416829962038800274352536458122011951425116785236077976119154259770998531029354140487176634041780708378351149620431238903850698946575558160496583668333474776332811170045090349365049642413775825901911733451980271944307032193103808799355235355287307698385281406846880120606798858466788224237491971883751866613506109607998997747607323521940230907567516327351113328539179024382206832609238613854783305858043312969584717102868842195832998755784979447321210244351647225550572668927745599150527145348792344224738483177786858197774510473702106883377902727566057436652722976752132841897609170858122471452108212445371864187803617327301513362669128253274571347245157215172558644693582722257019949073001190376365473704043354276366135245373072475075131059384363791944258704417855847890994366537274484826055512073675323268231993348017304994308814364334544126558312099617656940285966952796365802247764892624148961736622561464933573568530667857247459754033259055113172959928393169951672259485513879294534347964139765111181154727111403237607222154541680984951118987463839850766111973151901719052158805506974769603929141161273128487931514784793446516236516487738962403219624965034724084764400198858731962336093435762481297533295406624207652736904685568421054677771630779974853257802882451462441146237531526595234838495620353352827172264845707359446852162195552142304396772344397624177551573451373758974914963628128139448304684377762786325303578186859469075471833893980872067059905713014672613148515803161423837699973611481447179540120353337300520777359235821901521598084137182128455320407120047457178758892344865323912610548324863634284905011176480447720647016931062148797485703612620214867235645806191347740772208114661683514845928683349942804872222275521681442435003556748144826635368197899243810653615045023399468346128553680395586437178911890213484971707420978751845029116327499870705288988992722162724433041257576666193093894086167193554497316317608820159486208632691666227055308601668181143154981312416657161283453754360838360441073140413248380117710937803057594938211172331252572779006829577587235059658832713199787304271173799671268988999197532781847527019773339638802844052477514481015141115974977121424423923317725982520147169846875488433483446086602578292444356974162124974066636990369278193924225662430216468759077757357546923598608387476490694973301932678428031888245633024381455314274386678808160423845878314619885772976005508161282348136650238703735237317529176242069688113293392498056707377224094921491481674206842953517178829760368316956851792469368734988252139726686033827099255132499879728385530604661638075835434497440626382336940758929575863503610454597493767547630952358704982601066963245680567298083045109275597349345747299247380197403585631708579943681659436626130274916008177591890394909176296767647773748533050213888813807698987623278173889767965975699365463624904728901935450981402964650642268802571359642945998000172238692206299354380141652770099120685928464488905009737860930017960819251299386551208866351525276465269802361506267052002543862947212187699833229876533748374752850044649611347553302940959612578937112526960852993838518301287964584816656303992444641185820046329911935343745057485102532816729356031153442068005970325482041450168393348751760141618971177714460379123449944315706116250228494516685088827285339555718719835709742908915545252643158487013846435218779882846462234824724193578300541020122672023866718637836231197761900058990855460660762916897046222571119897708013757691695718656788571629482242471258181556219323692260341982515227909217663711921837749427607089734353756233672034911894926078637326324938781525456133689817555103673993317388423721317026155946774226663124770160982644714633908756680339367725549438587436822284786789149512986828933322544775745594958559980323415471909216283161619852818216073526973373521142847273330639466310799157932577505118581729256511333617651665248435538526214831221476595335347436900823817243753746936401481863915267723055549232113101509186735421901767960136822599535647303295662197197764320132423576558984483002486688247312661650439694060231191921856632770297254828678041194189752057691146934471767995187377094143912888691192205479334587612333739308265781999565959118121973270350255571119878366791773976846257657816282067359845576969353312438282147201347295080039476168749191853914200558465515910558332442542695559832985193540704281533951133191202699308342173042341656226441887798246579739388858368311696572676600982975546641134681375214480897135736147519384724481008820905998101009710557467719132720168591766967268227533337096029205174408392531115351248123776689339266855036108741308685763620154717719924188958753421935617426916282338563579578805349660934341720217404958253045305915476605928244614736668094403556659388535154720116398446086222605596252823544124641144826024321706368294820054950090165335381409316570548358415265295036284780159039815917113343844013328499871995081505658154993478599663145102293056050249375836752052245769099286290530906598273623321888221322789855859378332063651256203678611817695079135141518394268041295320922075123530568981738450545583715488318783634958662915944625480254539328066730332540074123701278334796744256434803177455171946378779851194766506187822227198805603193487092662457439006868879176616321948415277973867587114373523382516244822233976996638664592478064173012172529662521227251810081441827716042486196946381948361580147131914724535375590496803119746671974538511180769348454791478289418038985907852535573988376123413350064890998610323682406549780371587412612909602328468216496371337930107992650976136554141059214922477578362686201700123749552608331560647607498864169179938547551268829332055987539283026212413234374801380693880846297459412075644832869067644717943586288899024495818323194237410160206024838810621757004553629025191535474007249388768773156783796645722679549836583427547852168972787296265586213281672056748754049120875214059114537241823888413626127461479423120723947972759154735374720695184419378753802968884871218695562033724137631208883766420304756589189828708562845322393254639733767689661142119383864125918655884156083200470971651437815340874273513711457527289689828561494922394527340890264503795952441614287989960186731573352852215533255611078766888983799390910858626272602291049896419766983821618091671312161129657764884797414097197297726190312165751985790596874782737724734926506381843138775284075210851912082845994798698955521829526875231537157500108891443636011538359992157833345641763832324833173198724636610710847954489326748794466183354222918631832141156786819471480424529272261586006801819005687154315657315289562607885008903820270565467373521457181921069272285173810865240557194686488548643549849685572769624767414509868600804433452727983270324631879050176984690908167568284340279141931899911564210067631997481034433614102017314315026669206630953934615543741148763490274341459085952098029086500106242323318162270138315944983743918060163868709841535601933019514478371858672174334253944466462257326991529419673738666551423848245758977345328026413745888742316569447682557372573063435481150874068727724294863373616033271087400825726025790967788837978729141722964572271199568268545727660319474597654603127065915185202771271776345742069936872231934719832304292540270397345793415636589726349515379231421365875461436118348973539266329832754860161797225348338524792720764244461069419634692087946415633454508586254422685389886933891476182337184859027982971280584142491064787205472138628950789561551144612958452954466481553846558391618870127845729339974428964238979464281216139646651694911168286647730528499488529116544748783616086856820908036941225128033704093997099225940268757872235326123112913829881012965589189394199236710599203772999661349875577917570861070996053396693626994751511392939455268921676379149706264731968337299535790814888996643631480994657215429928009574293016784572377252393991309289691132896960787751377649222422884187093537225751606227565291587942848811013361703653060587405053350920553771431242771584724694382639653482473227344702692117062555745417043489128999310059818638411334851346905353357183708363295297288358620981353946431090017694350941017860588193454060459663805444744797318438732821589499442783669388850809112213085992399168096647101640896377264474953515672729514574791885165408872317551331460399203497528535986263204141290532973161563560337679573921073995413536748497433149197879844012613529333172346073814706736806555975173297057668584768265440265470114986120168853892965114705518435369049628536573625646224419212971984238219284076417170193011708228367461359605118824912731641358778263387801481236688674111461847861937872599697136657259227966282427892247553693150061851332321288750690667129002176013831710951946885471435403884212942696476510731417935311737556111471584291894959565442662125895909240828530577805303717129330221689904782456054459246867421440754602338325725785211790348094388226794837331565154964786501282174363961392830896529965674807110932606332006155326582224203106783730228918502594514768680598513057278238821570416175458024256521214957023411885292553194418442627546958784056502713995159667829456577909809272065538451915311831902767283347778741758139610271620216579398336927944735296890458972020368077721352785485015207824007096719014283512707866084082686846415282304956963669490802168298290351519987873788292629782724401662756905294962546485818548637662301155840405441746020515725386672110798812229366524016784601392595359239903494377662758795747843341529778746590042295533128642725566952841178652431226563268175749875592159988916335569644205244472340518760199028316394695739801394910382219414527926492722958385127772652276878526723334069006396173974211224731395365373960096593955117742193166782320569380132309585591460436117172171748654332696657100656823525804666721055650009724897088875635820655904112148292479299653178814848769570873759575640497447893425547198359716657835272473169421933428186749322960636634417736339146116484719192886392830129586096494176069806893884410329167544447194011962714357081707244973524579312152746597958690106193664299870192241562969015304333089921542560405076564792402006892965332381656883564495364857422150833371730520367075244427664871656766077289537373758882749189645668879666784216395684469241309649111125704731746986197368638495365916701588723768563646208660804763423780683241762473113891088402266435685946923608522170977282734476139122445968528235810781047185053051664798247644487610979253543724661156180367925118391256134211039241973415263674156902561760790321247325651923024669082513207914012508240419844537604126843931510202375393839949947322243135356204977843473979628037444456142516025723332876063806814454954066965252447896476629335711581969368955340137672637194531755723548083348816469322342334798503217215121667339911145831230679446170663252812616381887846131264662048495673087628101286004952524091332575216071581751425787963549378898862480293414766983780811263414587197049371778205424620112546649103197132204199440739338909304725770339828729219138009625852978922625404047659150264454792696321678277789689477879761384865420557934630862926122106540622353262147512047181279546882473469311573670514349235066329671185729728758517179775921845999189505651708253660262907012761262972896115045505978128589758670785219328912973607653694722999998303914671729223103034551020109168783850798841774106792980290828615886620295403110220120412129548433611865789800255221815055478876968245117927723467902014469595637188777921541940493545338611267219864348353662946795973689166715231167128585802980964550959111156994006218883690578220594974702062846546595475371688141912188155554945264114567251641099348019573680969188037591505529323039492405636643101409036489490647847289351152565331072576452690135189983565100187457570913295889619348354336364150156178749089977292985120311942256596376182261689714245964790998345330225510357623927624148788823814278374754362944026388562670548204789896723910664236502470047838133750334457644430589434851679120387128286986343382390586912362922109236082033611014053751234064015610608130697806554652783383929687314710995179584855031721816595331423603458534476282807957775633452658873948647924071631399182889416768621801299727992051327568059892764321446153675438163856186947308822322347518414388154289953192842913158857715660538444985317421626730240915918591860549458579835669937089255093838629479305642170327307469354173102816321877701272726125674613337906625667756379906303331421175497960345783458730490401285646362411316111525933732554269823665903955013458886041821565563534686173165772968427235976419523342655506910739005337847097612347169612269747914319313090748932955638154950303823078994163118485197124683248297229873379794314114121304939422886369560375383998101873057627679618137009686783233407194755153899683399847568456779234399257949999181266405458567184301361897705714941023446497578127679461483580746776733322594643256947654205225682468136219109334392462894372312806723456273591238474517841888567928540180788710903672433799093358789229650122217853517485601664554418187629685892111206796123998551146768728212694411273295168503115206752417399523164721341777812974148644666216617710105178964608717755111924862916123041296907469894152981532047472174186206267392504222663414229507446606511333208373094562620499377969417298296227240533378801918115606181680624284138224374484134329752891290843826989958811578548271318962150396652176249428289327251427500717328820429424353801608154703956684317761690845586850649411622707352355588921959811090477635174897241249685935451202717513130229625303587464401284536140693528780126941619360677317023983487117694744392196150583095297668941083026817413652778987326360718988365767252229966200614042445089878973339940381603888919202954634081813141711521854701384055400333562739614390860449686338419859604965216105454850435514865348900879626677339100369007935447991699194229506283251855973499980044363580623969332986984438441795208581471733542786045259793109041638656260945638118991776444855597954419918750136415549275156568729653117688162218351471719138770570583899663992247129143860139443131406116542932177317189356810587574866915939585291244025032129287345985118711223225898407064016837833136634313749521308983138205999534236214790924362243336754715001418249562470053739057702952644481622955443976836824087764839023611133618189715282371703514398401903386572214323881209589112229735892519658707230441739742166356336443141223162094750847521694652151444120197459403421512187047046947921191837709033031249451487085504301969061546303812494045752621004821650917233046480116107665369385371287632332610141292815888171913701604456707311887665832280274125814065819500667023205203143157186931986879842633792042066177671510696410113856596794930374797292673714259869705523171620415199783621434257597134880994999743581468362992616149725510500108222389245118367124204158326842436834726770176609998490703343701063954454425493557880543776237448975914930737779088128143580086767652238333928845012217274681811947321531165673157485988358473872683606637462747573606021687410616446490488442419702578749585596249024646952934176394037310245103444973363529778425214929597160232312012814354989021129949339399245239496766115572168191570381273240731975218458775127144991458342048856148778506928170486474448216140264793193562202837613853509361689532320558627046716522789744496133656957193482451401114276339403293183330188892130488517878949331345019095188046626490838392013072574584485855779754497435146651824330726882599163804829439200956287736526300354076321351658437648364505447982889182559756843986439711259865663174647804258358432629234465525438677368339453531541155872809438364333243580890724121043748133677966227331819815554352692327257121067976139342702420639709124878622032811349453340218350568963812997133954777167304898703672546211889521494103512690320168591864528247214031280518819221469964950182649159667565845995919973812691265148941432072272631577671632281291608481885752780709818189042818610883128165891678097391808733089420633968435984658409021056944672415130859695545824285177342498577892244300214920660702765938139897217479685496309873344099342724171178221028063194508136988803280909321616172532303421888600189931314145037740760745469119520108453244135839666016885059368296233925324631994286921061698445821574125638955779913120947169179333313716137214659888657658457520756326737565184922919883031943465632157282106268686609344649766761840782188430380808148772547590675051912654410281478769344451159376859941778950548260631656417474793372452271075970720985383327216263925998728772744776258490828547705298252079857315652769971327675567973052866172393897844783193108262943540791563320006888211391627920681766306026817973698606951322580355135063722328240799289651595623609517402983013822484882534448022164289386327317635593766888663234957082795588939175047461297921727220461440810371803928908577088393031462552312723862431182964652143988645981225254856505839895311012867062838278186109838145782703519752351679179330092540472267955356372615753392601329276684852365886410377901569687817616776691833982014192844770654370552722349229167737417515386169926329811284876818804545578609213823721379912751247962229988409102056155131321683132985347184012635962759760264337832062956625668156975917104771734708742911123152406597442156925645539014062845021451769227216427876928473392464126421232431658415468474121713781456330983580673313465358534232493495418810778436724475139849955042020040848346302687325630751993254458037948959174830319575743576382183313834935360549449735876390185043916849480957447451126153767235936751333697683830173939789502994809398742267537906899289620235551605445395870606212347976400617940277797874253068688443261974434301587106966904688195281758192928567991085924666833458425916713605366832963391412216889118823147153313719575400529351754913595729651035547698613852617687516919457751627288305077051303258032418486005240992095123625839920510980293980471996278826520267066793030856769436541997560942829433358519723978955700619936846968185069348150539740395178148901607887464587007833968147101625940482562784513666776241223886005583336658920993550120613951391409880855067523540506317628112768768121551333782421321464780612239241000939139812657939402934849979272194237080138554514441623845661836702045559993757255913168113594769351881820970173226043730839432849714568502563554977763128320805181882490373345003261473990574354542630216511023559428942671122393030780638227392391975927114918468185044649680196494544195151847984454113552457285378233786912413370822919669081428341998485082367198574753620534945230466145619309934522996432774872172028858509645956185958349385302271189184693522561992531099336159187331537933533734479070543905344480947130167197544405567976538626627162518378432226045722168381491536659538332662769101141147994672459222732771349113716928671937457975687395462944657337478852503992023250181832352980530805050662839796667490526495829735194469750806558939797547205524011289609850271807465835889246004826280207533281222300347545556139618770268226181830832700247591368832689764916510438620417257211852195949977682834570868346938361246785377452430893772442510984028669485066427965976563021638086559871190966938311956964997914171528687626773430094493394800216219628860985162151022760176451189641454779481571148833260087110280938139804939588773710041657250994352560926019718578077258955254733041331061073718302685772936822629742575923577181827041581394806158931992778501042645621393069848840577290577473398287064553365141050860973728893099913320107295750116953419277712475361068742992212178762280711114471275246372704686343347971906426238906561770755103155835845211284372648964166187720710903783264808765463496743590259737134737549436424194973650321757280946715133392293599398363243247115414478498426293827441035900236535789524860583139486826849897285568645733102851281616517727387289533410945632876159572868165059734766395605011143645999838632121714714229815604473359626794779915919038784752184153376225532542026238427533165138465175349728813807199323948869010434817627239880895370567754510683932428893414293713890974155657951824371604430762673374756931747104913322737392682334964134555369810335006455380794270802924377809331038595823325429702059187941871351379824422250442887579075717464460857380413751663635815275172006539906724717567548005628756303799503212949971966688974529410961369327077125774989979315719156678623444035820678563357573973600571270252700610648464266322792984670543274219298133621302031856671105475012238446992163415841774462614164545399272297194468328463152020938173259598476311192182468570854154512622533566609979089308190682886431265812510788776099922372221124107258202893838173886699459164382375533636038993603824366667047923779694597227739658323744178910621034584271595894744021526339236365415317122691158132030143445204252909558627736399487571601351942650307533961487382482597683317546357975466418383964781811621631496901276178721738612344265529715566487901866910998919582323090376214306328740234767832082239541787593372625548175902530617861775576475426256110601248718355498732773653939324153473153529236746741139032627987873405594762446625129621655532583859232403705080397530732231073583725775429250633270441836444093697446830112431101571527342913876553186537491789024551299629833720818996659799512155590699727467474703856196209448956613296419491210580844640292703425428384884991352321470501667332769383709236740485783201822979722015173358217163522268791592737055650176921654891624834798205341266127864407812828099639633301653314374862387675320973046832072894448330916406540306707094722289809394961419958744919279592259173669417013396411993853447609955678615460382912363351324465575264727246319659150925464055935316112496267525872857128305470796188687756188019062333588852128665293918899325913219253562844520718313082412917804188917668871413485838044388590031016524721227757857248259738131947251675949440296636748654333293539121468236084192159124718369669910557070275681595073371327476487873363993366321567181537912939627635988926830271388565512484192519181123989151135145857535113294835596801264584761158846275902098421730918214792283118695973329751661438850978173763017826345713182768430276633418319925559658572188941904145993820230917351534091979486465871650033573953284742293954317324390983613460963443671373822228841564579209489751135863966411080318414512960107188693239988414384068493891464467901614422025931736967552195339024135238564678149673453154810973726350455343125721439013718621676136095686569239486664001496295884641248273757852078562891226768833134326794578147626468854428710737919992494567265798136607555165190619658241982903428449524289467669867839091019828898209952282877619402453704361456791134794831464349092471748993740680732725142253190651466547298387317712787102487239608346415368945800910771640949028578602869581396480953146112458776999255159768083426248994130652663134178114315672814789926619504853146515096129331887407817289238849999083978873541993499309685081467975754984491166781339526966188982122635582054647206443808613519998868292289694064869394380656071258932851253503915783067544347077305236324628182132049004408756234696712755833130538378524125221869819547525906176339990395773911512968518291778432255441572728717994786431389881741283860963967319206893198013073770664625676053433405424561377253585707285143752229716267729470962914743341662001208583938827189307749546369126509233633970706147871656223544369754213129471769538045680703250677335736372288329962295083314396474341653637296217467332187455032273543021819603490643090150506540551324615998022840078824947683348999110498293567136003757071995851082122856854703233115433255788256716755087285801923718557803224505822916303604836777726802667056156009530711998579124707638766563005592227631155354324256567996160932054270600422413795019306702878247158182897434804198362629402198336680806149223927637306759159027939166951288762935776265369351745185591237891477488805112359922452750131844636249030548692694489967977468393271885120883133163324778916063154506127889330352152217908570175449552983436719278831979486198059201411416740384744071053830233195494504862931455852296623291731669422868927129993697156597669248361982192974121243786043620287073744592758034824250113073849656404430146442678706897328458755105755240432953403317292334413261813352290179444573536038664527299211401187888632599448459684934368725846154970646042446357698588777269191854886564338943041572297546934474426552597305953042924717718470712116103887326591663346608593333352716146511500152456243691148511269025983168895240618985072388672702882074075873360737728901160427930711506239696756569139156669616110923939072942433033948406840923515834511053465006347003515289661508478541347519492471915577505485664835366935486138116293277368267079742689267393058754467717619482272238258283375828015368308260967007696542952971785269858234074355370414499168063748927517278924216383289313932577373452316688332448711765779739231862388217535914561238923357874099613452756039194433918663757796447488935494349491741561947896557319678716916486150779252919849960312356706253461828159100341755394686468156638609792656236666542159060986826991660939591263486595475619895989374450996694024448738580485388389573124667694034931605297360586681075586556715780158479742103116913022778321300740709738519777814046564325242607140921654219582283875377332911259994286946245227615134616488223602120781111648758216187641448617173687444258083548350618845644434975379479927636768022124340692881582816427673210967108839594909664858747195711747729454844754951899455752211954413477414296879980119882112410020807242373705868234787149425827156838472655325893967592230952449577965704565567437697339365259376979968844129679893214410467124146952330796864378472073474943372372486897135295385699425628896887870246189877495692393378931535554835661937621468954780343365559615917561021817653980638452264215374407823693259294341577047871594792966993262374439660985525320297325748882112746953395017845915449514797694764392792276783742441565561896321217418174400361108755889111275411616165526217576521990502637135756377346569413960419169409110319517042474911517077711668242328383853219121397302728198198512020085650265418278980002495654515367066338794415071543627092935275793776805924142399125052034136684690146263466848693147530988186410882439508265448952070444353678876015463411588481041571558707525482727455815145357514712654962335459182479650734120343920585718575846064071844465247497429529431888471745903957314195994870884774529573827129239186960215631912614773107734672958965926720497603353067304979586890362672502852220962293451968467437712723338164811672210136504073597075670476955336492793622953658773054062843567422343324562766807656618641220613738581606823063191542657381091043716899859597316928081753332299989088328653678383679852672301927659367467641806398273748999832408311175378871964853941676960159831423255687970142413113426289334992038739450825341603225116515441420297192964007368654577350096110028033928686333079941871126419641804658207734904730536506554340419442504608057856596768012196081733232911955206692132783122800157908559438818602021502851711973649382125364620548589546607012844014930004976932390549022986348861912079186386783135688736437341668155343959781938930588786930806943438929289482226554147593139679239865280813995949237569750297435585510919840593966796961353946298255056351755533888929653286775160764535893536581937104347276446866711178551384771021266934912889019702726215821222354643077716492576888323881381470535129449149063630162851370745997688034365741400304836273653904109466443552672113678678382829712154654726079478475771137229149434003426528486239188751795909212703544962869550610847083052310996460651634997605620979287723101033778042400767159374691724782145079531919120828749297475594888754013082934562242247851206256799080686840565839618970155136085778735747058280470050842276745998053278474835183760113566778138999549180247648576247729604737512508814838045626277627415001281524862351988694416228107021555988322954080345278867221845320527182622614026871851169398330977061790314779319930848688645172814506237347673140975966693310168371472433545912804201751473964865182781047479266221138199457946781960478635536474473611114297955586313014318599344737291487852043818280744709506919636651756481844685777101054398827785645200851563952890297790485962968826460113338859657208697824518132969750831418351543473694929359969214734907916378815849426081680861379443846933087955323388288690332776089842685724633351695561439678933904268392940888248625425190126708508154496136106121313076853434348985760273482990962004947217559955510711631131632617420156925584168040338350806342194981024150881904851675834198408598956878138602118946140410714969395525512975539475355412143957244301644558003207366262650843895782036310256281247649600873618267614628888603732738907215837470711594536765796986516873341783932173892793497437785423362243605914688881896941191024496148546260736858334629129889194164557366832150152954646239701592171411210228637970610346189921538124220764347663315395563712995180826515289215647296021858711119671554154497456246464833094135308691056017377914548256739855168106122630500191645611266677176151763668024787031615938020860297468195869144967549349174944760776891083348345395704552874865160568786376221202585424784765463721922813554412948615190615226471765205222635132334706759756353212497276222821996939234905957579990660208531784415364652728892006976157898741920769325498328163663541315648427280373025771605690053186406665243728834390439210134187971395703828253243542906131957402306422882420596656591135822524941912882850407283753451354703581468154769668310679203360598684796571724783070966098511404254247904511359728520452138426664353066767212129433398128712765729512884014628537943215411206934577703672937937554206849151279812592778245606975534928349729905322612681330471897463360950317776186481985808376663834011698882368334869573255217473841199539603635313400424127497162553063496237693956228021415611142607539741126985418197431249565159099440879790465768532183567011352520521419778243394555081239446184960840555039420736539799586010372866189813862268378508373502496792215068307988504801688093428771701358585642472558312966113498345175418381583611850516604189411788978990969431586012687720631931373647520958700165130557109548159689163831891311938069333215714071664828089792866897933513668720479172539018246268914067369630717594336107654831285860783803358839095715305315227701903518398257878215048302492757973377602397997634417976880542359639245323709653677804960645876850787322335566072034285076712041288234038076497274348822359503753215670414369575686217120268973621501733002779414798301213350432746928917467461048764161304676584618434090836461654951531017186994771631047892228317949191572518669149299464283805140474454761692617438917861442379496413338354412355375824182155301089298608083958324594349516537026441238445374763927990465213591770744291160585443216195281418804052914671158946141056462999229016129924727453120576349815127193473556083499120458721081238525092732153376153137188083827353468630656758587938152653794351342159827579594684197520830742416056120848255490252875630034319411897753737488283437782455953456125022702859620457086974881443347676494659232802643579161267600301658172721512325339523194148817883440568044841284499317795839813516917879254425795182111335491668942502267846954498473398220559920611399839393342169825827438174091799015919173184090635738568928413431186684848543601563327698005818894566959884715579378534183127457203474867625426964996528371702170928155195209748240942416542888066646957870655636766314560072181355353125893075882951842901295774432388867099630101822971280741231197581610711895831487990975588444028057866919414533878530453022172747466219289919052022985027692632509205459260947639628999539852655118210385691644994913463359148364675795368115249927882281198868477884002223265575977242259397885312524998018708784689581178799151747217868097257205354751789983250334177963244291335610765121851045377413893224357434496321906948959496964339366954810994041852714958052463463473113827852681721559189324737624345195841409361864818069627529891194083790383418708598941328952467819381312561820179699158716927485797597559533101528644967679432414215520399825172887202390062092982177233207757668778777354456929546007636315562332671879699779761025070468703717361879141936687280167163576414872559520114607937359333695212251502585477853173661289991447084665640164886082334157128091736874819527642454617292205828758727892837459386114748518323690451984877225797955779510881960273688671949219161103192128846237875895881322569705057012551415413218539968229265730845348375338171644931816064239845308036595278474340883623899706891216622679700595114679578671860555253515818684979116887784521428718814099586752749141541733731157790253984317737686675469847315620906655032715426741825620221060275162097173736789051150814336713769159745491324434157543208232173849555754021524082363169017245324212358721115786146179959621845717140479725606646873640543458528621684043725465289795705963555154856649496480178946628534544632610417558232486608895519545266916751392080515357427231272856291680378409393938074934351788313121813389791578493238210893207837991232104627401519570699429868554104643732566329192847555164228205636563579567185875101232425216587853603454291503037948638989556066450314248276557024809215145544808867264320602852070764146223032355017846326501541732180356624310610676465775986114363301872999248319517867976321880960247006033541319265871385341309708248431565987083357214170297849261183279879353998736068052872709124724258904047768956307130325992948853381593398477567830828136222059918335140411992609511689445055977459438733118192360675792552093187864606810279944187874498989600703208397291263103658939592827737097825926548770303618684844442427581585001239057737614397679662357238335377170167122156868826233939024744613245044457859376945849375727419271464792853473596071379095930528790571556924793579395819376527213561989228690691072459612467458387856516383117744288188442498399737651349471117352735217358908191855360452989102733631525096329292588589901303659360588426232384542747175506193904634156431581924651368171310388318443595375181971029758714203219257595766908764252679936284313933526295607863537679007620331114148052317197923244671125677522927915506412505109349198673724681699641969836839721701085857880334092576382782671549249378768654776867514599007932893529482089580704286814578111618911334947293167964383419028591242089439935000639191922278703132821856209538503023070243876600091954118931651513379666679079784217464738756117660021179547974327061942744078737618861914587355604104560414635916220599611549801835653967263073223582518126077184755595758016119339420116982126884512845818371913562792432726049768536522336556770932488679334171261544240659609279043968129747652532031653721034292964119213710452861436927661136310264015031554015341243844999727643135062222423588487414945544406810687853074520798436939088574962197435670951211245229676423075181568527419297244512289848742127723587562256057511779214422151150194327673124150887830270452511673170517203075240428690948247283162225785688229233977881702019973495391693790434685834996335329923122123984604534013030546014648955211252279131538254529792914346232952099129018712226067663698901791402757642912616705834071168715592972149214451743451615356462464246653820818364777952393756935776720976474184866596790233645232962807715059280598560774003619582804990261794202021369633521193904279419449924795671201631893420519761478549015629311278540943848429555563375174723818171340439828958585843271153829860839732825360120276988434764433897119948666190101793518614867450555183329216574989555452291488572191507183433466304830855287162100884488941558391408289784559601368381685224020258879058012775663804994143838849601657281215841986685787651434773921454034571796392459239806378215570818498937822339133670788904143114335397882176333897516337918292680920301542057315891260951269548218759560443901141432940166356045283118230193422929357126746517415744067093709133524724939789661947969294330811806521748923334038375628503330121461456688532139893485832197356837694655991724380081014628528250023266937665004224542776129165382847213469820431293675229159972852149862471603033247326279767591715788021547612405962631861832487337357582572846728596194047159723274131218014074487906077183834863474497725309881434061786816487721743997051633074219234969147132035258468400275718047185000634781359643905905812161484912818370254112253632294613524080890449086329638935946203727178452219537948322355879593110476148758107381667765418598205724872274747122337784762311795595533647792173365441687796126559751887928938808257276411689131786933427012062628003132281120950847354885665864754045698457151235636386364132176213079598998109639325124233879256766920589886936017171740103351288780553172044418177925033339432957346946798573769456825965347483415205739317204864924447302769797459571961699138324048203319009886391160380828825288790758040493114176971424470843069984883376463676597036627421346618217106667352394815434480323183993843840979534646772038352185504057665311493396139494291922425488897267287480768686781514456435150592033349738374477007864772890353636791318990744739525962708536311681311355625184178613818153569055013351358237359523400638038346419352693105754578362223963777524817045992563986740237215801407493180646888288908038814474899381891818223751659976974160284067734371129735894896457615270499401362324666275415307079747771622360864815939324881386056574266453868527296343104697531586965410287654059645825086011080909957612321941052478521303300866171815568486952804160458204953037425755293298413871380507626046881097769726462283812200358667947105507999623561648499416324412305723901428283105338890810137036394796202807071333665266377505838464705526612728835078898026731669018421564364818986017992617111956510191981874796713849077092539721822858009751515227502953255341121833718571113609789493904871275479848733577462535665917052510875531049002837462531054257839741327896487221589066326582218916167433113267573955277018294004048332459881407460135922602928914175557944952557536867694222718056093517687656110431624364496398229565826068749448107329244635113779241716022240988815357227036025897999252748729252037377186457300296640349404399829387438661803828909321128413338037789642261190242966678437018328187904402725159803402321567636605297228283630725243105655261788108242976594590246154895227011933237372720457656888407789398649958760842199515143941861598717139356185293390715986924815832104908163511132418772427234081266676392897026159012760271606182626699893777634548081848918791632596200860396551290907214782246776412093197681791173750229559191284162266958344523532342972974884429295691917355097161907660576267241118617762042693574503442578089469803227844025654298192793945277139482460652890873440273812726526072630608635087704999552661699480321677795077621814784205088456677903811923763555673714011486726968581357780681719132108556925815432419924544563881371675148346796157877707095331906929507075389178677527976807831618154195412580961222858208268797609421398609322629279532651979054784048677734661249988334334692323691356697578479675645543093509769322863557280048008396793924895796571561131274756297351945343095237440731734340044168682373392721448928417426365738539533790835691419261431168380676559635281251121051363777745755922068158682796540490038398797924993098576168507464633755381164393952589125455630443758855735560226777603168821380926948115132111133476741324358271209292383792847419983444594219349511501830811041149174654696941256658784252593444822731830943446053421077379944136702740606677661108339615778083412387491509914163086484291171501890361428187806691533684433979321569690127944630463675835569618095589521293190034947710628170254522498177957196742876140555836733824360197824919374902555834335233694995022143595986470280337510591294345292757746018632947166839762880426323724237049364182366181553986936559142498279155179202209129986994698668607615748167888468430851812345751918763087483296066826345956933645668369968711239681873572223268767278208940472498886888992859564962092751061828679262738911808459659906323978817513408079038972489350921651037241038352999737718900218193252310804451722773825980512276147299617100148474145409600631237776869051648549209053698601629341193564159287018317155216249308025566755559951999291230457129327625606625743688094674371314709301724228175334635903782007554796813971527541215634810823306547438965584427526372569642289046895234478435547832121566288568577138639749857446540986470734463289303407081400753881877483441605360409655082682916472752844893673236468721310824004195959182442106843579337431870658486985868798231791269555836759980580795234193801413953428849324306191661687657248900356697133706978343255817222433804342913047800696781294378348587889879659526277173373384811109489633854651211605848479115149481547779977971769023556708105984264494410535537731634613723395405161222247301419534531370719644539857188037764283965674934569044069828767530989793291294669023153845551963425151456892836173130159464894618745914451493133390519155286554580419298995673429209279635224376318784088367651831308237122610077882164880464436541454244689326135150879113137484140099911788905978928902128001614538515790863672567192324304572358072929995990887679204896644493103166792480627921200222518608374881784391985373575975269107863634733543260415874164723663883294496956470567183578747848413240372106742519328083649491686327869844902538921499918251682729841185065861650263952949438236972329501673369896967938862534389282704234808110225046512866232812515988482760378365388479961919084895096438261020780293822460845049364865705624284503597948120248231636588568891887825229620905173275089669774662015918816073764935563750984531498072555759655013399926923968524651865820765602898425361694878639478054750824199461159223133602665488123376496965656119427474386918437483044274312379789459295221017934202290379324676272257741132702443849427529222384357973715860044323020373919399963471256950945924367206411445542841959820837289124612712621532757703612890231619064983701870540884273309513471965416474742974357688953573335402637657645904931957159376641552386831778183180047636121703130801161398582611649160141698439023213387855574701339352385169824127398564128034223654167345021074120862072647228604625997137360219275793325843571045059472012131704751892453224923897516316360512381383323732287769680775843288995200513224156168077933241094420509318224436964176038878077283527001784712439619537312706061819023536856253412273309758489862401638525243847917652781788372219015284448890444675323880677408471458953610499303446874440283248992876752483652164483908613554736890907423293661821575499211612556028361056428310724084419496138722884692411736963596912991156196559760523247661282613881502116336280895734265482873712747235160877091011731515413782563272540101733857547664404180824323298479933619080136043348058252579887636035586983671158399352373973542372081916499658284758793879683275253134834271325462420296711385169411973316578721564143331335062344970964682896457672604676668701601268861372666987288071829273964495362926718322679463952350285625248201688123720132986722380256905124908140249255687798443989862956389529187979741726378221225112043977263641358462184968928149912485233721536171710416709907661492399960273688534728058987185723175319016270544769702092897643973272736631143497307916476460855422176347069456713646239568606793028019458109227860376973669901314698351164589874076520198393428146285892641396482764151597563356318965166108706555799533876924798504341068986488073160241761993628634656452335802514377907342593019294769679977684112910623308772889403461833868861336967915840945359237031911685840337931426045719914832881344485345786280968021521310366264890666627769322319091947655375713398359918354916773567499230297402108066771163144132592805373403625183023910330929203311627742274166514524962782727352963313537087054221499482164272808596218241659569695895851755684698647329044116474634287893150284456272785912792047553681382362715477926728530898398958159635868108466503717066319891632488558702779458074891168534356255981186814221924111663385227499658554174633259007095787367701271859463889374743078415316589485693556798990183171264110376982761496011466358927853221265078507356422927231687123218895577412203730627570234243366899005791028698264047969367817595814024383685975873982483083728294592758472281236943919716261168017519763652561106618626656598150950368191774221447419136856160370260173794318714359823834614850409821024193780244267047911882779698767552471295262729916723204114224458382496166733494762340594606982374296132550608077426698646623979526131577862982601763232412296446444632203839541989656399712774799859691756442531431547553353519967103878599995135472173652823320988088198763101654331112931819232862150787218830084275579851858740624622196308828354875456743454654963802819528806526563612643342515724733465634659898258290984989884615511770259131730453629666033366907655912673090444308357141143577508669120799816725456579985819836188069128164275848729293140175992983983517826465711926683637796680781957984716890475237538108538749893346049577041497178775855205357845029491902208036956875583890764765314575519660857320466356402886433913496675580561470537887927099364309155029633868191520921953868664693824092817192938081651490292496737044957860545479472046228734387179342088766304114951626304489983785557060414226843696393382546933577654102871981967730596726938905863262288658101474857730655893082916616439997190702388021379284413326256502418066758575971627744383489729353975598569632312457266436206779548262137363451628853599372423817960613317443186457333218827285199989536628610186402164429482537736123115808562336407157140117563303089996149691616602045190583627395161251176266770838910269185523041657580690133536139118059229349896793155143424772337774789784513399972786821787198482129103429633928109934061188276397846364124360430717126170513145644682670208483426836563595853625092267768789194681860178278958420788778421775095831901667113262175000313063288021102628158050431147798555727780826726597773442589008746793325786888598153040040680779002719226597126044280046217750166884181221034036433760512458630722543458171977065073804661078296441526099150114874586869933117355707664773756481628390956862822383217787772466948083617795508502975128696829050533951803871447174479757439624842330679519120655947947733310020358168637165939699221077636733659494058564863378429511949066364997843261975716392374714925631805370085881784240596884328259817412797867874617231187905473243188746887045708349737763807429289293852484535954417994235029457533963148610570718800664957015794420406887044758335658229149954066189824622067224668621435524433595859763301588410286713634179306291531521744224844746940511802699590407663899765111682696112508300493145719239204044814521392653699095025163464558472119646203119418641258830601526048719162878470987463149262490798771351752439091696793294228421136482175916621315363159330234371690976767944089509007004277837705852146562765264661938290637948529203244299295652638816854787410502904925575246825347806832428120658594934855289585826990105989407985997754531584112025513467658819815600980785211012262971457997397394357147017486712778633401768049103093736170731416150719940278291598057925794451966650609961207840941048531197286514684914856622462317307297838777561619057519131814315633910284147065484998604384766198576315442539535618782781559456995358944640613438145167072015597331647097912427646372573425729322621995353998767229984461027117225394540990702412820052684175268210934771872685514568534571887442092165154741974011192534671916764855823742274048282136474593810466349968562456383996242881789979795829667446323003831725534919368064289847095327025834177754124951288252516993895320864769859717944009506154198184159258574530581975277787817900441961218230178939475671635963053075876379788714418923797124073767370808756346188206313906858580416659587262109151584781564588195564356034578777232249786798693670123781875288676038196332585337346226155618223139682693899648057290208878976293341249533588147943305764683223808545624041266947587682765856066500769142648822405802143095742699524876069450969508567165666565431855625455617180558701226873444765171828045978282760784855476591608439684548582958068602527039227120797471187498840961255123421693566573154914585875388810572525072682484776931541418511888184358380323005241233064366236478635166139477124378094143439590269142655978328121607845201702373403648323969396483272169386586848176534230748291641466102359521420145516757282179637573455528908276391629946193072892293324460179841419715002189761896206386926798478202139084522523389215093731754299098643536611630621046207558667676783602480638464896484088882573412575646460262737269113986915328532069430928512818669504498009246997384821838762991111869214444919562897385593757490778075751492438383885857168769748211407689520680282673323862704953255509043020530948728160361582666079537185940985442182614551734952222232583315159949135434461717855842814646786676346268166774459807958246417724341846471725914831379869047961157249056491082198593253258826599363312339310629194104912624673616544584953685652717548041272341107501770527891059136811157867394953060206125792566484246911044825699391395972992267803168480270375374398650043420909631277338940201051040463483748051756683800522495178188358884109759783936721285939671014914302016616699980509512303447302168473528426316393112957478334734265795482571600267506769590226176086274207483456155995205497892768667782691037397271954477733833981565671176967384075668148579323892274423288962555641789039893448437899561259946379654312553227380018604754718504272681383654640558330203417035540532480156764631780707444817818478258224364422724493811110164678243269724969367444803943033440168692966029406062412936063849992112987285248634093203122162562714339017749790668983155804935826626375286488042515719922256232361984292632231324956779051652251295648970164959249718379374367768317084539573595943798628560227205384805285095481408710341711307812420762677579612559695566730168291604132193836776218572271140619616655910862912403945026280841356555919908377039191128325413155745056582436801451201853565534809103009232869343124901822931251675194052845636378168316314612559366273179865846698551307302462126850323541825497609048065823808556593893876652654368360626074250794062199231310774481760197903352911573729018365633833452766783509549130359502071084562763521276542989158561874349145294119526774639307952580333414360712280762045610953131374449319339918584747602320595653091698988783648556818983228372366089329461326315945481979221973088454234342074530935053525013540175572758246237037770462593317963149549516844590712484671970180372245188146661144191186799954347033500842249707213347822503752654783782097740742461038521536829666946749850322536144304929894001246822442460243973899958734059018279429626239747894452034518342284655140588684418153069725685929740478010613041228267071954225391813278483006336350667172856484086264887251431845687293795946134349217513038102122212110570851948578990235300144762761942695639358799393220195329628225658679817452713178479724953621797905171491321361437888121472483221494613453594072101468449984764413693709674773407724971254638521488370579273653809496147444317919621316875169535717733921086413387679747488116588388358760863963156237087030964970752795092274322925640792546025145571899557617167077549704875076668280676996123076514044547352839278091809832036497637456863155942334437292951856409077709397112361037783950595826861354743602284204227161642947941748343462754079384950192533298359972800216532892932819764974927453860377517377021240359765860799614325837529584717539089993142135540366355637122470877299060936313191025914414263014488562044623616558167155384507339176697624655650476410515648375040886522991374845422963199092721143496781176430145478682586136848716757789304417989776866061127264876112543931838533701108631868554575791980245977016463786310834570513162873651538631824149709422436445736031188135295190645983059157813071582339114369932114764358286972323445675266398918532585429172835670954472113494057745586039163097818718310406804323157566126782238228301622037294921622687361944115265741598934309505721875263379475023492801241834357631149529171457127771968404549893854335747900516356826026794280147839499794611273799805930578580518976348652163929425433539108659506171654035483999878544903319742315040205642438132929731048444226581206156954319891251205025361871292274462445599561642351848275365451477576046823924214459192913616063755452361914407272849879747089664774051459515384686759950818036267053924782924601249713860783108596089404856214743528686443024057992208062985064580487778169732594930405876555544128782588395960214839766587150161529849233049262477726478963547139881916794063613791392060522355275990182129383948910335257570465183577078489674133634095430485038193153140295217952802894234006451668139988327630047934918689278571625696313726597226440469092270988913649528176032756663519239911324773133498707054985197959701073671986759832329530527623065172762023240511301046078960350227039661648541296251863579160662815922155678229566844578149634256228922783344716582592674944406909157180095740611462054020713883971784432889895038163747156486919035921900211087582693481903814727798458652155542700158751479060119431872210222565354936915853417595532977713733406643468780791874973230917162072592361511297176229776237562912969351838662125965819915763980066910512855611149273132323641039256485374145782359831151400511228143412541688926324902477521126182109245795006748246280286972859843536090714602578206844011215098987175602714504524741377980869598287922343236816864495442371943989365835220839976438144475727457954573395929968733017529164315150698874729353757642362837234537819615992045038869481889303403595144345219381481698668802654937577648594745994916376774782464329269453099451117017743646196855053055539680992598350418656420649539291165183532385913469213255425160744575028222149644717213996818856592225723133437337085838223204726245057906555172169544194738941743607388590319381175836509497506280582045738131222340738449715850535745489012964523167944744619388064345045985520093854777808371553327607875654622573096326214029355513962489456937915529679801955357940937489846082491966708625836399845995453870907999035066613002471510306238904359678792538627819662561357815647517236019969491852007711417967658555459693095022524647241658438258069432898217938610220224812597995272529786320168171262242458435314727361389296363302112326283379366569079275136405137399594319135946673704869096281107848444940321694726520426583571426380348957161626432476951324288598716420970843767655142990208905169962718323197533019074797266923921631707167975226637278270104820868928807101699150806175785646717882444966718847441138891999296265403228788630231332496124237690972127354261297901017250254654471890750489497955707190904405893065202594271571503861249992918173754635732236808381361352951039452449757917711731485491281595366892991206949201295906525373345930327969444331802279086871663665751963136307111056493218134450995987913101821580313900675478582417317989284021324103164286309652545404622167590688911442906674314966695966911580705397312236840005480833064650218359643951377292570311279253537333238631233958349346618277491234523761372557510593760349644773759003613221976229822627632937405253782464654862288203995709366890382154745265317355047266858369226990796466292909102113356232316189434563088784919316716545961520691326876277331748055295956797128672245515246073597871141561463737254058975997365614836975716983361288521321606230493548892608823568050020923434006541298054009651735999888303512832852877512414282572495844396705312593236566211429438211753577821801247325471177036003283143377439479813834745857843069294310669297663937221951972077399100292843956232146041528575770423156314311660637353786619876479629283756087565215602593378446116866755019720662055438729471743922193726189291502690023744592352258813591933941560533162468314572206177737981714359823121434385497432264651731480381829656739428856747954351511472014256298874370031617716546254484408597417691838826597507796866153352694466178150945100573718992156658945627498214714517816340263977335512995374633838991388770648555492485546571694980875266078646811592836907397723757118138940386982817462601469315702613642295173469957950585728773463161635248211355521541390527270911842383228194495990239192588569204695664907088818997840158678573649396759525581722683770613654140331169059924424614709058806445182525367480513992307380257380343988193765138219033358075288097565578641205130094202353197149592752536386977048238493466185722441384870183611842670243764881466726493900062946336746784347823384060805356645584156538639321418882858121642788920600944524261487572430272759939710565335265022304924331995987156755078499832662566664901982548924213111239821967293463373813239639927820579086543840274983083175283176767743486416785268076747436153276547449423687871377538886028641316352655371392515318330188103014750475408523746335296061542942326698911433408477279976594107510126936285991690032780814421243083288730572416830041193641497240169887875171097713124913988871726828802649468655455466290479898496450809329844586177102297297788126928214978524339077189251345534892529833320749331459751138743434414790972872720822052372669133808630637492413337392250184169988325253330566958241214517787629685196827584633843634978329965648899805246622621659406141946780588691571621138366095477754378323999175114654497588883901630528059766511193873478149282672102710967209447237829065213544136915037040439363642978179833778410698039154799171680365331142283707391997092013443876889668682872392785246959316530767903070311051285848122546401612488832227837538571836784893293479375415804929014105652621553473693311926640262715793981659827519967629218780623763630363947673466771488376502332143468084661042577681048338777766532141355818988470894374378626705927380804977132917294873492176336052895103949598239850566529436382753817156780671269653365192252015469525674445255642991430846913718464961236958540375864621332518659822752037914934165634932037853467008115657932139623371470565199622875061427254313912474845888067936926679417565606319342689941767516716543294167562643131788049589170272482272780790438967790567920962746285926112291376494617598711455003272466955065859308475838166892355334093448042626683687959204057280653352097776568597131712752617575463436366876715265954327772367722753881731599192529489329477874829147660551901247387357671513919035693622518069944129998012847001325195425233302249174398863341741434392872003568980553329152794860418261325888224433797089299298548860942811942377765027263829642161811193688669624546059364317128713498814551344438941247169609372104865928822845556332592569113584858876405414221175981136360704530537211283533797832835937078848953074184611620399251111995731619409157614281582055784355165146472646874995446463791562592532965114291109815122552639572339929276423773966318229270518131147210034663318559208796087269723374839283486718933544948973381062322141622596221402691860797172000139527675561449266982840841704977172163634944321634318522842688325163211890738912397711234759982199699419159643711116076010278846320379010391445372934166903379984019830527681011057169241692061699855109120681611652683898118418828886054469041447692240858872693815055302791241192582856738076569403640672069129201313971705578222906779153264221827603638983059643633869489626332294322535268786695688993071265672774102729897194023650194184291972572294055709467225686328141287922337022002937524816621150926693376057404018654683097303248491889194769198646662254760552650478519548050466360788326427603560723521581411345657619332294427407966228248417521813680077627716042845570871978875370681650038378231250889406172474509411261552327166376934356192928081111231256312084876998633762776256499207531290867339499125918581405739174893317966891314657758069611871750018102907308805822933304512938794708742634299975599491595373117338189368894364047405612501139664350226945677708240767200498355415734033646088943895772852442833889878148731669663948750962049299934134682643795809922327360179686274623332281627444628622864672713745338637404429578805345809422706873195635546938927279025343486307237371908328111679829215269756954754944882768424799973644223079051692510157457717385333601186220400118403375480235790933189397238952025048722192747667905664758417153492825470380854939654800137243956012443669187577439701860455739021015290057357323797694161873768203544045788290153247381873070897345886485462110187503248580868346012754531764767967296221792834006272669854613940043937186129864458859265296951176819802278447658492026512134226177733580493563712487300306255195595099950881680768731307685418581063258497988080336694248663562014627306063446721331453942110829585581626715864673304791356908308484348839255945389385868871315964472345101048616837359163391645918323919088537677726053996235535162544904528059537765058254747630585453377922246920565663735601785973561284569694911234825147891406364434363971164379820102001699721010470357306259511044597110328587473499300559577082637574294561231843960483461382017154989175506026631320733616765570315348493546589668411123044970299767768194825707504901031837496184254687577349649703859260220586897028182863143737916454526801977850862825890357380323435581504738265930999789506075015504039813920333378342633662638554002591873859831024525482416132259196224509397844459359392959003325512046443918509883873476679527582476446596266337873733713459917748363514987220632422972697514971408320099033182789235697708408552177148046931664616977427316642118961777935062307964774101129764348104305117901391871044172163802855587883537770143082262738833229512239785373757738052170770541712332700898352439157880159334005343578686017380817619606554250875410143758699175645242521883885177874278545190313097169086852768702510386105374102693607151846400504383891849963378431253598598386142382471526678951980616888390917294920136710460849442832104590289745179335985798620292307875608554242756471532447005671202152084059195274674619837205019158622080351079619262318409560100881875437652048906959893040390848835358617308996108174663063473129645963403850724159780476754693679971438552463424770738148331974678991310901732873283370328003265444277887071270946056127364811983164356387811803382430482683568691111965332875852986269536950368769221744631181274779466183882654602756299222909099521516165183821977091319975397378178768161553349838446485642696979837042800232300278210758554490261469545015607647495791964286479017284291606115378944500944321517766762973156374216167498049242272472508399546707963873628314616193290453168822490863419408054011103544665787095024214238162226140562178793139261293557172356297606562444061870692127483802880051308166511153597672087513705127250663878331977558967541876916427348995439727038959859791036896973347354025881572942979014708613176067352943351301117476622144956201163614816395595671265537447041956678598591557094507898796371261535165603025316105249723222595586883607470942175877412011944988617503959059138157269380527791968314169678148248054300116233469178954889202728828829210418019512157542371453730266338479273384238098024127818461823891912424949637999825393129145878658096072158922873714563962440470092098060889205165861763863379523866266124249650346282863069298908334432832435784373132922062367783885346291312495280036268264366775067391787176268173206790915621777621001848977971167791120895272938561864573469568721757141948167604577362343658315830262244023022356312959880680697593301074687549061953128078163622280493306566954233890259897288817117635059278866929864898565495992197064370605187399794457550294484293519811841908528896820804768329477757395092284816691227283623146972757088642379975859063614596590513065415208519855647180899021081572746659011184973586251171593815196954015142221071212498919927198873414313338442926811727818880349619170665257965852140619678731625533499223988756054595847269133418031630650274657138421002152388239479377251505404872622178666965966323703583235892215256144831520689285941494262576064982738997499081628263514257321924571763922436411622124084238607418606348791939468001931043495979500413512311814601075384371120376826182666846146555845623816270789164580267830634444331922044151336724599221987093607783858250963733946382383551220879964148019582724028251618095275545061295584480905475965724705833072757555718552023970595359073699187947875512951669348059890121265796154862968854174043854958574795163189208202054960499775251736806272822269483219526729348764558082079873620563138856618654555011857653274543791589912293026721388072935752519069934173003612276845154006568017368397239219206222792244443529761806158635248695698441542834998652242751619106237954195006785970834701198702157917987785235662523290371730988426353472544390638159466487316811976464061521859107827431136883719599274771697883206073097966085739116114971463997146998308449913446893211593887612444846782654612962717947400790966111951351446219942232016528684561146281257716526566295222582229656119230786442384781758686257777564851632730651007440159998213013491466630613756661688071583785668288324616011730919699229572764369434963414350726381688742618785688977490723400454509675845566801861240537331566739251726345125853634545619326395148872553812419989946753544455412771537778844963967978640312046148421252226657289213943161497349212643961554638529150748848377615701232158569474505364688133063429540220741730621178194675043763967145077860119620371082455751265869762284500777495361356505919825584391038146876835033137022763926583027890429009025657861347383416479908467901682887893368100160308694232332262694375393170979194657419175698721934212553634901610156518947184740788858670946053130025002642153651591507248095665756315267377762279983912381910260892197559138549224787472694790333372686416466740352127839574938966991919644318065310553497972025833973981612115928502419521743629884981118301433743010856718055886696968095081050262517601654388695195503527408252249367666658766821850171242691610518601648585735493013610178916384954542599407587953689314455233255114129844905786081278751956175168282784512910664029819639288314513642402683067035631825677930606512625987893774905134500368695981733579469973152937531662286241154160828846246325357523175780292220201748524553426768969440190145124559780603086846356210189680492616836437372362429415023477747137876174541249149620765966922937230372109270387078261539590046665322708391693304394244597779370752499359954422540212246180843422645566995713849555578689531818293825197228880096761167396473932247881759408821353342240977757752883484945295485127407970210298337058257458108501697763511793941217119463833461977687081933188335349556933893316231434674602812453809590488347927646426217555990838628028233353016832370224302899009563021409044834919593489937375777266433950292846343937195139914038758980498360728802932199382952562058595690833037355288859646972402949427862217957373300836320714972306625184226118528768652026244123559809993695196270507043677587879534454266674019478043996152454602510696899944194238240993350102691154597771150345642538619877223433091646755613286145421934126437687441709868083022813849493345936829824095374856495313321223376610971343817588251997425238391739990006657381638484753110059315413048740176705398109837859192339660957961412753534291079638659117401247631464766246098891597518983976710019664612519983894515763173283593257933608789240694789389580131811776983595885145569901895417890786584343901610808834112075736644256095599834741614940238789468761565785165377201159362226586234355961743790425867133775793309088178642894879151473728394146040476700808375053447568181711463895751239383055693688566353666028198980320386605748138418373915487495845088946330161979428667018463467174545740177662868287193995141067013848267715701678413255879205544694734393019152685551270903228080575288217814440932307642595630283590722922344754989499421615503106129053644636926794926264835938673234095026886076524861905716474263434094789914199215717113411184935704695548713923033183035864277423735783573186882798571035830027614524082875575155371149120251442795197498598965086659698421616898985791279215669504032666468588356092125220784495673063390695686111595004684571608148911958925565285260924278265131756780914415985312071479608683799042793901911354508661081559745212506047586664595342221385894657785973665134855106198882265477607386597364973637243518911676554991140422677397079665446768834314464257911293482681717584059857157890470721912398754329158066120173751364337467243275538985992756011125755393632883605649361662876482667687457438896900294790333148151205565483771318053325240091908102534057350982955794391337957442805553971158289156885713968977734358034842619932264427950149167758180630166732570927376612040929437937572861047315042504929613515784837543571106974155119413565981877315003115996072632937494858347474819060730456840848443322198810251040932334932994205219051613766540953975691768433114662128425499892440428824157653817426131118566625776058311292555400272296653638191863387160279780172188251836068180760432574285379309434873337196900376593400798977108373393110177539745628462256781124928520994296713436041581846698184218779660372335914867897106826569962597246979539658225909653916247300327645226738264630871748225352832179587116702572555499880117449498281934289608569205709812055868911929031254682484488623974936672054409248936580343223163406927416466975730963639112297329328845579521120082361673221918875990114468468444863304363210699132966591428899413949717199866988298345146397088663069997776260114305445712344202825797112918592656652385459344247571920908685204025015544202847745480354499286354982813513171184952621802150836681411653461917453215058939790310524416443736281794858092665760945419225138280569812601438547327620549948759794123911793150651342435965909961915485168388325487893734514517665102107878894854057588736805313161328858836839332737151614551566008226591256958850128534372149285204774476216312006766350626596796448656179432992107951747253547894545368276005451537840665274732950870815371107143949933727509220955320872425534368594777736471961314155100670273598508711151366343936937387707935137801362848480790373560965237567710593964415241218565002673375590398123738222171642878717098858425202823448414116713057346911111855752405635811739441444241603759928166044407463011297816325974779383896307355053442142914559792733475618681069873530482034434397827612450459835920578275088756681152537215546473141131360485202414267869663561475557170678299667572735340684363586197885558780652466968886186344405983644831958056630237579709995385534142852194390817953132918318493908243964486750028660176512353990788992452652302423176777610478014176192643973052664700554810781607225096433535388753482841892585589130749132918942822183174874017428434609341510972158688086753653530061372948788177246132955583119238261676736255363842688448633172102879493950314918227972615975586800583416489459389789359708473323418928296892018228327358596461011928878362734123958421299826822641925265904978064389296005210553892232464846120584898937637328550940758258619354151314105919332521764993973477599449311723826641331769318109411699220018304434603342587672556968584026377009714807236892704779994563612284782609849214077308294891627824349468275453837291205647027865475148771583877746976019159927860507554288154770131618627592200193717997661736878894710922738854761362373657381297434458560328212450904224701001240669941338744824771803636231765049747307734176092265274983403195455423128494497206417477708517452220508775561427539275385791552828622249142729808602504034393578492664462531092840419071869831831273669188914236295209629785152880525903931327883869277184807133785811712705223544134800549218525943847838542325370451837006287783549558249661046168164027467521182063164527199269332121955839212814864688589813153381550649209412812589037463921381133185281582975803517266605078227890072589566020034338592259822388948981048791571070231588961513144807127559799226357582888082739882573618075696992581514691853747413603458804876324695358230339852084812788757105692607723302708712384583480492345917311014709382393592078366097343637528203908332542387959963694527113727181611646787634015140946365457591666798064212543816462657637798617986155046595507958016490209509089284969172517885581685106130274050691718050857648711926387389614067199125399714360470532386180020287512738647477517572864617137718224580196382538336346516885576772929622396112900941239965423218869111487108232002302133036243133398928952172097559441110354699522483654205836537859516279164481844982872061996720478633518754926738780638443508234273540915497791885033823884284298580306612448278739678181567776137424758971918665778537525168084487889216985002506518917140438215888432454902040241380603668688725029787219689603189451979034621095782823872816694478221016387870842680072839470929259142056287391831209650758228324654969479150304595697244218604506950365726418938589871811308250664269750917625076755669997906120088382136791064562659866984330705669995224746786955913614145471509019296782321114292897158501259032368709964298942479877000680064438528342232341702539948987670394066794338372387729909569369309239687914975744396719003561198699785697651037907888906333978624529449190426006476364411279170609641163994545801148464189654676834973582317086600511525410971885132454174029110419390157357651670720364575934540421063318070055461498225320824245244017286998116150191643047207336395457008932154485796879246440887929286345294136676496181999968799553720193632452663560731080346588707972636397084084887967840241813997981412365393164897270609547385782748869721936719640528993130787835831651864214545652465341282297998858763129839161059725599208199655088925155089030983124506950228368378172246894881593430192892740413999847628363767029523567827446366231155988819797744188847790096467022779881126062596517443655881681341608214447192401884143008704713789545258408244796341260368516211552086118677362542019828672088327782630705440161116794092487861985789333306235651473929415494186533977963618033467312286125674542271586776246102071519279005772075958809528291587257595341468374443106359287194734255743088003577421131227223979170621865112373766009183089622623668184478438431033271850479430472103396137175222769048130758416903291129224034655340590844683887011409650289453395938008449075001620873218123674683398353858066268314761249742347538880458363278815913794983226919329470666296364480537318022235467564118493010419907802042823528654429671537759405880484620655428899145801370510901189678219573005577327851452885796298817846692216528666126351333364159853839689362641417644417747268341432459195838676646999858215498061984354346577318436908194416158290541500654603510204390491871784731552796840278994659677124177314918881842998897135184247067710345772281627177377002127524883164874919323225826126419157366372610535948836754154367952764090136750726509344997957216458569433210335243908897516339906782418295445568219555841886592530324677942183471715020917492229772845618940977355179624199458189507109437731427452746632632265880263367316917075454206409023171580562167028629106419684066181532107557843899606864165924798941840957087621191980795753680431278390367787002329077433408478169695391283538533482814577299027870083117146136824051570597392855208265689067124566774351606996618780887475701606845955774450233052446757402685191786360276557501804172941257687491387049965549230599541909432676552547435172586566404996098071974817490702240478919859144642447187121846250959294123499006797466846219633808952966053021753644736136189816108254516719704894959467270302648624923831976142568490366956374197209150318039208775569175986184638870403807199487039692523679986919271869739263791589705942580096453845238091472403287832193492005489871617839683407258994995011406722298214684866494052832027440550111867483393812759629728425320705812275877177149866034495390924242707510321529742812900413345559841695875689986730788138697622342143673066289389838611666997535409089144344485636591814128807819287964119911188597423744500937729058920774699843108541901313991514736904583636660910690278256630890883697535818573329848783260959616775345649249361349530762981935949523011797674994235088144932885940815890528705478627266847224099111193118712290750537706676886992606455749559543094798143643293037700861684170123723485333260054025222077509578688585929379530931871214080716740272099501361363413837250569943448741481758574724198053172093958893043449587865627649887621118685906388321676995887238724460911411192423071747665895924232610252509994836093195778935212097100833784404125285293459325930042580286409391869578988751675662174003468739297643016044608785463509794039177543459373355815406803412990492289240433803021183468121487235099855301857834713818398132835837859699740684110521338468128905134829426342741771462335730685236458104838140958722247432597998663254152639908268052968498233720842956489436784237572197297491296858421221414462146159838874395359196514516675148047358229898328150108968669220536821156485379524844834508960274476791330492238161943642346508588978528124076830747425917141546965823259698192204060911130202491382914748705441788856552536775352895585682849718251299205358676126754339191604021611095814279592849152014137775675671255480361579675951268653562994364158019635395089622692065552419269536949335959903066051377121607475925630536185098621772005244215659597152611038802298372447098476767389160119493829169440260758272103553006383033865824563634362998268466045684835605102525092339209135798238469508519508622332535998822313388210280007277681701507586795642363895241341259558277183024384230313425227386305511013333045345665266560690211893893214741854599814394904284097635166453997563787574873345578784150298217485800118446517155952302751269762616615871374136678912166427180621356764582956890163249315602023180440565115728705882049485450540271038757367110447186703797227896045613915914599194339087214657087499217086117052030511033277786847438831255995753314785827351886885194887320642022714981374179266992425732214776922206516591626498265756065750510222734709185235230630173683873746461720716704448305161178079655625194918931807588074966782325062419399776070529803846081428149053107627103075328876632528453545708431771468676962548652965841117130798531845435637275430352301366849694942457607691354596823976771623949323284427862724868622846950135469928281940605177486418698624362522275136184396434582527679317862692303538097667273281278459562014671417789280127448818577665927210348904738816643263336293666598480821632228871023755067275351122086092615349814935404707437175796262453484216206413567604916529770076408162216662817357563063971265148123194100513195169104355235965644118957226381401341375044770333787722898068570295747356342868868971840880832164268811713444410939271504863679426629654369991434802821711816378451373352881510538329044494411760922718564525489834788054616347419417666817180513666153010294900557575810481802917312325605491062838695846388842456140997022419450735365684437984694044479476794362187962869143292506683892812892022850638792749471921631280717645577759101366202934628659261842965209681060563310344984146915046536425954883907775295483069767134647128589077087264512982665979972599658057946854932522144776304653063792149511822381659497039617671587545132277558597888821923312688514002838667951632769637202841877388422532689455024349589860599022882684813776279453425558507543097817237449343721741413431102005126497297935823089545464849471237022103325687787779105693491830889667424179969144277785517454776363752118134738497717677717461508946283371253235427376130679197578878727946921915823093245989407723157947075221991807206753230615928072884102588679615094677615355074947601177905424399017483229144517460260116546535433463172418947501535198383557155542581280522986514634830431991769341312976490444266626440236504011725330348504597551775401615767092956084553985794613115053514664227282649897303540946991281641913617867428415681837989745918603193755530176385821856612182623647991086042991613262659881048338084528663232659422660221822459041401316336871743417011811748876848618639054289242609686496508362649604762289548143162338680220173570962469483382142179320158338277068985457896756134037395974274816924999246025867114921062558145901155431327873846665862573351566356327485218153477651664650964257528091074181473315629731321431604718527267335325604841012262583533802296172938939370937615219236644404432993824647258470215921231747762033551637450767461247157636323867757412909186510670851675608259164524288968649489954268612920506391405542954792293677069027110017526728141983269368792634864949746290982941428748115978375101885358780356027427015239308169340783212739951319941182620722386545225529955597660251810825214534987295651785230874488211569150942908759392190769155291847238246653541895327151744983757878067999924821490263136886370026899534461570908368259352288121579402197243260365111864026795671219234563931668455782433243356275886466209510269503354429574086394395936010605779893911606597908931770094228653661926524922523577860624507837751615304357204465478824237434042682540386922285357651855618788376525543322707941939980325460882038811164797547735409992528195368857380830656369963391299117308832689599626549742228112456342213987639841056318047766221179000828612371393283986380202761138673860750096148264780112929038936659914184880024292321161412654928780325758365071299836217116057820275566084814613302809245079129395352663620027660435088227699191505038653096822982376551121537153737112150754772204572825213195364115162598103242996995408046465757663794001598811866625053792615762523898785543446264913431276310675358033469699698773759026075483860153542879299629837686829371301524545265309979333023636919415009941013641517737699373263709869821591539638570413985623480513003286119800453865534409429313943261733910520906674413339889943942528224852417081191843700848937981790875761419837531496838611184019357481793791171695937670337198191768028467439417311036395951014040851694025568320154322624119231892683515767240116983051851549315591567529898245249622023993711102870914632838988382338358896160163133013513834624711448634332691448131165362834438681413893232205728785142836447468999303269928649193353481873870967610051177742145328371308037764425885805522282344865305344654397233772606940520531844181058493559364094418984687807566962827964578345056850469660718133289558156455437556931174837031802465614528339426012369260536074118647150906900941950629058320161349917243605647656598911154377477349539559252013371139467938150412474705213059144915502391105657633628298768928451425402960548438197049572660547446344524711954181452378996765043839522500913669128667456434139806579262806320262847213166673597710360388358006240062679443798375452001522041807495243404353185990388235450778082947948010474463401413028482630282614590189948128711092153035071544285473478058721097902471597457092484644532110841401873889194283344771324777838785861450724557390065799761928447184821503221597606236613931515925529464912408676839655390091955292351487417192027992613845908178280888190462502675266510357468664992341493257930612405698102426606284372910245720631064105315596383223374140235543223521864078841227284370784150067268263302608956860767270273989771172847054899354513566675966388631573794081286989073191715095224857256314737191171552918457612943406998955362250207301588173476425600438765842009952579891779199051316093000986659347437965980133037046612117497372931275506266672194218251396155010252725007490330734203196560041463953900883724669263262627735766152370798102709753534090071530864019555243939334785836747178428262594549487977450246311370831263746976961131220260646398719963136123003533666563326480231849287380838617987739141530873186913843354999592845665147899642352146211800105507682801421208704078821548810304415982326224013335348516240601935565520495644881559637711221655693758560484038779312627270554334935539128820794844675255386523298529479567291379452556364263853941844571460395775084180679297976908581921214427439668527128186117342861668402243880196990617756393956447445414059660589305124425537457378372151967226779896221716717182666857319190281257517859651445774563254335167343168002109081093920226759656389638325318281438431003387684862874075808121058833589825792950361311236575886130589238932599299708349731423736283532750427806588130506837079476271995925329095454289721565433855305808015216276826072842538055649504674182925847192541154634680368944627726625543814901992649020882505682601314962162816094904313134556682574127610389007800225967871051961787207375355360383806324566657059629451177524742958240467617270787793937433423336694591049502936684623360545344673464947129813671744479667119780249653221485953575511724587368148228334597642896695639491342940599308275476787542903635572178138695439705274266744380925206898964467953898379327296730793184823802700351405854834646178419062826552252349715100447397324213348389328861934488309757299680953353958124506688803825373585692380690641791907567760430232858773965924833299783954751679091869068687459919975193662667706816840749303169086293543246337190498384508117483171561699139697285219170668347418570134431934126368644721247762283694069609167537461126897867902287922333556811779259297589654763713111820798440233470519006584616040253643708592489679646106299394385055592120413437167979494718637075493055082291240995119906854461399085293019278982725984208907367431861259968146001596399114625295924636619307135041483983799501385224672815598484175615552805587522393264227434450468995471364560556162964813922158622795862522654219514940718938954383976369576041340282551518445873525208031986140708592282591163371168946379396667679376793704246834243968878104292938996452514728719551331428566509244239360933099327609301592161189649685825596878521163327858125862800391777684068086201706580110554938074612424184635499828732784135654512276348091862851741354096718856389127173209663329530941344760709057076320668396323854705156657639161798752734827622712293074502725135425409033470981361916262542459168724969894956753534235682951190797335063633166166841730771946125293443943940450515261814379189069009631075277093576815333931746341611400968432385233388176807927631907994352201230393107107350089263133293427563115989646621506831587797146212325818602427478168723943774452350434818288475225644218157175562100992362832543541761121321373598780669998962046282310544166613588267859488801674351274796366195634372861532548132237799292392824501471770310434269220229926289969372734562298104241499851096987640570284542624823465668246160497231701498992959292916333652011778641602882799275157800351572649720328878911580254199187884281499348271025599119691846667897328433377382180782616122945521485568925680197161389367274289152582150771849795743348713545899929392127221172271182693613190798620334738445041636415441315510974780277637297045733027063163296000426701507911772392703512892147869883904252962957862622065695070279801697234210208270195295110415439743853923164019898274103603880510058117075222634290489548293883085572848919176359064946527362865184757351881802610518631935937741711551263689511645197958510932686758130138347616813585414013604171134320846782264356439860848451798439707371266947082652842509324933587824229813636532201835010392114695784849283213151475649100922070422022380393412090903274502737486025984167525639956088249392279792635057678994829224339341389077041097128373378043545894560025855356024670176405778502311695798004267245523191278557843387109131878144306578303013380015310004504662556434377224665486203479158348539320823940731206326989644952425608188316443934119194414307398708997114844987906676254220754689797803578454167539093549215299659117325227021310354097871903359434646764485944143283494499111131314331878018164633665915674017963425199437547653267858844205817928208787198931099823135346517231697935548191326729521714256279926849619419772215936462793767340464074633516748160457467796449201935019910194195776432827257166553388527796705713151265388813233346886964650608965797530246453799620872284246968594606813751844139259128509210839509699866165286442204462580171842474939900736579653865553021092153668931961369297974407680167690385941246412664631297822515441543112585487357717842576537421027351714018829880534724376548352779835185578987831937869057303531967191878868267097794010722334297439953911189465682498569392145967187718274318763746266363869866218607999525374418843146763369191031232543339573071781282453985947137926546073887254380156151228312156982473695580623639146435545874724929521091729049871477590391760343722892533254367012413487526163701517432128537666391469158442309903726973771422401664868616446978629651177578108381588975391541553089447377198456134539523265172814376518025577099886093811766909732258343730483428886871829916811354716804259421988525782310485493872130282762392598702518143050446670577925514495998255436198854462510472629901432424012229303025348836763818483767993179404315318365106302545527224356190640627975838434934797403593848258353033122772472766055454854896533787429247155872281957102577466414802205350797235385477590363346473335650501959655851526640954584289454712777313940781292655460407362522425954598333457846575308119536906585268416441368643553678960902289168529642883969265346538455222777329842897360304899053483369592292690749742318782042271462781667564209373477251259067071689984200995107734563491795391003958948379036380788547891646400276699409307917824803422899107770897190825033128305762249334667651949237446642682662687099144241453086294371489930325712933307632562636572715915582899155944305746382217629572973838379633423051400744650728766477615517643164385458162734689352416433073905540115800695253621739493417900370888310761281651827355494199689772090118921390948714482552929695921283014001728815484434502305258170708469087162717427714253239467312772295880306911262766931894835891349719572521578217292872614148620694858949589597572855906131606140122765579766482263602689519693081820245737820787473322573459445267672144701598846252050366369768497092329247101371830761602307736718102251175291248924771632871503234028638289077829663951011202148428057670557590014410480491882316369415433507688433042028740176328622917737088286419403572145370957951444104768238304662793642132469436822088226592811829614246775044167974206084403742879278172645229473719416185126597619826221815235252321087826856118277942333466770136485372977397184920443329471502464015683238454082263537847356556402341524907784391863338761797489523359520421284915912003446984330865572611436580567885874813148243659690063763334098676562446043699558723820298393205905586058447500574266824425301337745991593734184557757057245141072757349882971951222089331484103616832732734989256066106431009004841466987408246117479846634741343051895115923718968534849989422806386158964371109071122837931628576256006209587174439505651359369251134616716793971447406535787464631266488264985205991274754652327764539201825226097537472734251607595126291756827670411224386501408758591703833714976728462698246853996107382643798884620398163092261367984915953611264283911798569264164884027707640859053536749489622628894950414275954986922595784126723973621451414224652769315422216159439889559777474204054064786103673578847260073238224772601335709238843966164918904415072897617286726802033540165631127400280856341773397453054190955882456993077605215440375456713921041795941733244138667624996042403925146673867968416353679728461855078166538638153630233528551948049540648312583924391557629248550795517298159491428252035395632756078023522984570285819757062749687718876352311011971715934040994288684723147283721276581725756314214384982950233882825342196053379602769569354529272694855015623829654996322489570434746218750100715179159073877116334776299618484169745587481522544656976863046659532005227756223963830904586110941012582625228760454609817367383825606409463644818556126758163156107097243848765574239410053793120167415560159680342240614783203802456874200664149477568587105209530616908769024774300182023229099249598833495115802596556588006212044780552562466793487784403231289377366878174710685795036898762810823696856555220311214988385555150260075043172815176101824673635396556333899689725851896258097599796176393902750499466191323154571695258145694165436263059710123179383758640691379842443656755164569740097906057512677152906722560482709892653877836810148728762781182587834855242932696470022515661885689916706265219247329649725905395262827349271575937780473042940724990872959538878889251479814662191926855706220891132049059407741713584323977198489987716168055413981331760582493022623293262040392914376760452317938145299188683518275691763846726809027040355629291954234098207041592552558944377655167688060946113610844793197097564535284184426969079839895882866511202429584968497583876947346309073160711620386639343795109803146831509212249199667896667170082505213825668509869089278057682984692670589378693511614738335330096069331116912053070191727136217247702822558840791489869005684254115964320790992957986420342182812724483669035508786853342244652235006972402495572714280273443263228754388496364364453820384636869265132655696232164345065784206876946049702403463867922389084212131009932467406897688505951201575889771313476194996785976134596944848047846340951251912024298114241111251824958593534959292029783054978374528980956735496214455336181087978293874756363752481138971658326402581754523731997100879297123997339555746174034074166854113181066960205736384293738946801849636060737024341034707946119536584439729496949646662027663684962484225526162169244260229036048590692401445569630680113495228736556375333573883182269438386796753625050807395273601138639375342832276156290018366558853272208450635794476343384265887648817534917152743180195811913243129227062846742399943690219986683672846560953647160571973246474772228573270667468997928488988573064366736048578140699775941051570496901409078371422732568449729478360980501389683200761401647047320176950144116413945931404922990124963629588500213862976387658760237876532591439347519899550901195655498687261368233502487644424232596845365078865574821076191542118775826531983353485044222308651333770756736754093970745610045464588176305814512624177687982817696956082524596772871558619311292411010098622631114352626950647351723923272220997529333553304649240788717163168685298393492606241446414886017642773367742245748406822068666839949558916871995115835338495511035434939618224463953132235059567442867024367258197257475061358530521336714852786231383586835775945755162403656900581611945848384094639123288588518999342743755783332658653894994955828003487272884905209488088578437451677172521650869071573325344123308374138304597259157207407338105828976247416085524897305260048759039957158152060330997000874404891886506668853995652313132661487562862286778619918265617409232655783828039238978459269353433965869910756726786448789223140077510692506796869777101337905131795435979246931986833012914609796437670094243175155741606317012923981524785084161623902121171828204488668672298330093007888828046968203199265856275215837396505599099988563710843273418520720818594775414292605825110855828834975820467753386580334251022254149249988819618746799621810184308838977421734531936802893063637086782105132344600163921164044396964635497723430794561497774671276347961483753529489621039093263073445428369577823770222261918578657759654452906195265791447828674865096539719855701366553841148327153890420222293464050620938021758921504175886261559305657294638003542207591896378661190674963775612909769355949906613346147976721012154673512999346625912650530382468126425271375470063358759423347481308856673272388553663631069845234957898836046051118406449649250249319443192897101656741207023896934705522866101436236058059997225146613048234468425115437844731937897312540323562678912634612962993582390614834404848974573628586917861544037426741703614740820048570245373627159782407941560692319347245311976256788710638985348169159362251347118721994441655234715367427970485705803832080846168641860840116782576209159328603530935138784491135090156585227759220883304029297691366553056910196722571624793936500011534490760377868800867303406316520786515703656111188766949661625971875776228873649592811535427387964341151595766182417603791780333753691396533592518261225987347082351986528017963898070548058444543543669717908545128892634861573013281799033555888826633863338470112243345270740892062179128419876164331709545114471191157328303410527827404868418675640254405144837046407216154625378226835712628654286539952892883600182784984093157217802490569298204672702233436948198462812884155538607297193828599811362488790776405677170262416708473321622586956784916484903151975289317365580685941448232240216208701072675584204823840587557137626270819469345816480317045438489398055237030100417057029866383357181917630613453613651026857096615716980172162576012387345372402559611998575251307247024040120994537597651373019368126544130502737079345320087766775084073485047820118175821458348949267364090154911780711639366477689993868189893534290270856802054140299991776204254282834694972287082287572962840360886100514542113857428346444747615669871377305718879675580935741781527838858896124247044327857953515315746621878602127268005863817904516873869179795389508409464842474960069884172000285569961466563578363525817449859793216949209223790464963916731852197783597353867054368123573524296104739396889677358172376321087689974338547700735018528502825169335138686330724749934239877824209070923097834393932062072966645988748524828102248820539181857284735595257852102186481113394165556539740282281598370195609943459355046997654106243363773936027201478199426837692579011129193475158395143605578090429158733333703887456761061423135695268515311355192715255058810994718206719674773526662459441820980014186298155476595402849284200008467570683837151321624211820902336629020817627297581832686096186659835485187534328961023960180049820222839169846694828465450839553921720419082725786605813884406378134717367975867562480420808646737526263086550112734741159788894746534288834894384713672741073694633195952124985950083158541211494071402642360675809776161627544999679203257438916622789817133710195479426700702038571816249368771448585225856597328015569808352455575560104588111322603302475765619047306668315956594317675003188005101918324866841052969164130945422620778735498910526938169630182728124191012729365107135146821577884989614176412203136492498159248774429336610326430076935168476728641607349524785924898777203391717495512997315240747459223344237522851352514581835951298741281411862383363577253473888491143711449469017392097484942777266793141150049157742704962691800632651992918698249270482239980251892497582578413426456148125142687275134092658968316864125923241345554760846469837499452830774441620193303936649498383488921382675732744830967905724145763066852238297163267288999572178132187557437323667679294799956859409995973976396512427430518953875119883567973254853850855776674711374554717479596256938569749629622209825256764088894915315627411209204052090058607291757674618946611942172099310265316881814115431425418449502426238915705336138744104918475795284820345622850072271896863613477240896345602263982641424419481126756751265214505565307288318978073846017989858570477146566632952711559880483152737452883303512652512028844167723174467776169112561027448121834879582512181721523676550510505326483272222558551889112688346166828538773256194254216378756254270770058508313807977555774822222767379787519780841759239599137123925226260582480375581813985643148200078819639533525539928859882645321488729154825468349288974430177515523080621885056897489600211241329793095563473914311457529282406848342489978102667015163599220706259257063768965264694197811308377748500521053230744305832844979338014457485815510286858665619374203545427255724497474962023788376110660888671405532217720375163804213951629713777231939735227552062835856847322687753700595555676509780521803525642471734815917596035102243522670787681689658306931955706293100667874969753705293041222937698124484235103085186878247528999043177996730788063363594282960432838844896594369143033446773542228226906043780898461302789759289427492131568280210305877875256827678139822765797877827670403704330467716062176474455351367471864146488698466521048327434406167088236393761474968875812528871786019848253279919525565520087389398811873899290003513344273729250343743909987295238917268117885584488596740754536739691411214483866485463064158165257011859861722869839970113507939795545140770573053135769598308185023733211580208997313084407481484681327155671379758110757314923537136446407136370277175457476545177165845377166834549947687245450166693762304239747140348064147712541197117468669644538671925923238041421867607963963164395711987905872354296851568033947515929215017845157453488270351274361986828588847436217794072929507608373599630642808845309291628648510376583480655429119867860489427664923359056442141493560716963874670592909056851041751863883488727995883018843353156824509608229825215814639841307417694238549988158592863439278527501457966262253674279233464664290630173345764542612231388863924237208261814134774526385604733324521444770946646260265130122350695691907104346938999598636883011362687020420387406548222855220336207593739798018302795254689583251629796299843392170440365568391251290514647702393024242403798310888971507141242317373568830223183222199282202219425492782228915920499625475414661320940413444271255759540879319082092121459727674452886299429525598649678748222172960867043811458291411408791054526522466504554948791901151981184337387803054658146606518212672088869220897353446985717315435523136434438902742994684402148606070731440212433723779239043474292195302876164159353463925546131304903756979627186396684860785764460485401709999333121106780736669890663779444199449316004442480605245966637642706877948161891316565403679721368184024699666584814216992497220859407596898069978559957770151990872990582438338129303879522657746815072433322344281217894597898846409429632835233191681012978563214297517579799808301955936384336792068873826826261795594247833179921194943933999089509945625691265086086630787301229848845807141514899810557001973548658702205596681905337382077863579644069767496589825293114374580418100857354107268731118683826113045819096016811865710189016541935236119606563855368361584218916788842236986164263401656051660083126125753537171575791083519324098317426141471541591638255320854479343250505395618391275875772601411775947686118570687138797172917914004699938144443180898581427744252420471183548975084130526872999257716619801260451155146466393722609903351244061823025214290694986490393796632997919404636448981273396355767696795067138051764366798990867298679862654159518397785606973882567691445438561550874346451930161583245177170984593502022272572041699149585512315790281872120737656254192047111772440620634074799744308775259142153828175665224290397257125584500186658721898583852267430445458603555922525533326719063081982182603369065131184748483025602229998590320575998948265513931319276269071995425913859546491159671511442653528569628827993189966696183977165034261809070434026532721846525262897236807147525895669082538893704743403810869445883314674469638666051385932980956544864011757539256195335462198278934952051233402254811333429447362249428185365048030656879465205868907468362107764847427894096252018133062782133189876464247992135449823686256775761911317738929659957465364123707271252682126939610811379124508722481763197267453787503925407880258707572855199731618443092941612233072767186038428551211485821652885677210824893477474454873556259975867063590125045225902325986272940482679712499696379178534639592781521932066372251256193004022428923167164107778347716969504144382809914303323729026622844309927663655589458352039883735303614402395148445365919691941505569166469162531926866248569950611122417544789498853531208431261429365846120712652112036717211914548435360215846502862880462987488547285883983899458209394649493343083610237055882270695119793476675444147097427469490878960974554738661147051705322911212394697864995450455393527926734219750264756265701763068276793261413372562421757450563853370587742224762068242533545012899009649726452078085348268053790948606829137627896702982703315014926947728213140858254113198530420142154046582338247534239082712298843239262932283093282089110695098744635556937316668011543908643079880822338619681294487717082700363239698452252290694683355969962069666993371557189534930044881521234913847867887777416494591444958091572820243256608436448435815830359091261002049488654840601942552478309551594593737275487719178568773914295604894332488527213691414990214474125322862451885229258144668580980792601268939281815073614202438548989055379210045133512185309738282071259264565565882155728585564703927188132902479112732237059329152966182227351794370738363617459312849905417070996951756121890105161896941560620887921316520875579725267427121813114049897923361247893558442316278460497073770157726601643289392049205179669525648129798053320529773284012188838571261332404374783087083160727448757773355698287420659138543843369288718354265938029072491567097050042488312111919990247677765692876644952516422016552677741362811055377003185305858774674972665937207022933566355663461069954054498659996681979336712558757624036274867190117274343346924588346145548597459141611386046450506538380652125739735864436249156490807087507489979954861838091962652257201073311925129236520473977897781948997711460211064091575861557914526189887054243875678711597147577414546393005265045245497352113783216296056301764328458656911988431656283936842525155359057358244505629448356212542896361861219706528135870048314405542536385768524961924163385688992219413634378491485461742565805029577841463988731646152529998324593808844168591471583803339618263598805953735475122657956281769312893454949926645940254128256557465114226944060161461953228886225339031338274101981533295783360527231515002894862467864646497737338179819788087703341403405433681670190568892577172952253449131318389289415066356130457759778203449662935757463427826125662629971876266803219884806321917171132270228595712225244211745614428265890837480168062754542306733087631169856393357285371974215640817255784026328613951604858520982359259577667321656221219848522033397187673552844674240535573836165581988808155299637595576888873587231302664643479167666497239186145896432597594112846711843861228170993926954291360764211241048222676954697953828417092716370285564119972286994768024722974561868469972692527207482851926035412396615245368534941058754841704072097412052366371987168209738471172241485094878202167826818224138974014590266615363373799371102064332203541469346294317483164319729061471531023667720130992371895255703647150732864992998168776034741118105935636400461196985873538172372446468936532186154648485611652391424767242289067379357460670223185623889224167076865579493049666535760471171898818794930591739612272804455963336863919914803530874680265815825322116728329595321904935210020691604189972332725532935971468177581543877275201904217487798206677921978996230299254500873423363896246423531411659735189835885058139960652133897979226661822417814477415393830857431174154421561939801220541077110414638898623034560365947481546277527939039726024063233275763417026212566818769072457273020374426629819214310399965729760845809921554671748262816309411897260876753416095617569973306774560275144615130867055651509453792847586672207352048153350872041036784903982894040099110781184141840383118209036969627690597312182644759629031730672797558947963057804729988771184648840633954575952919457782143952277191202909591810370709640277268182745426020603750069744216403797815556913018605708102851372863529531653737288345553096650093366442592890286928355875640637825941617880676757774959840133385481825320299164740831082969255476371291187775447998171618359393986695049868662529921732887054498214095386974853181298127414205710469065010598513107430838895935015249473606243018413910386158820930982138747785711535087175071627255193252653319853752857996841339470276957492876952737747879185795083535876406984031363309739510197973546168462874184270851590103622614048970477604721753007319320144735020978332283972997025678866468298716138080776983844572907782665354775126958344161104547271120783638790109504734632482480142317862106447744864539522971202783963259876575934342637853987802788171972949440401869751031854190365890196132631056517950109151760382506461385580770154647648677874231983429392478986904868791096729606761866632699204807433397177695487470732523057922685641982834593912234114651563465088690373530881239771849378388293643814337193835789415177561500152102852251390937534696814622440656233311501755790604314306381318556656296668822584927413738421566980394188278262827934247210988725404115827027731947206658187598695705857612600614444691752015016337654311969514999523971217585141675108521042256231811413052894079121957923916923706113106362855528194575858362271804722499968944937215774733706387787764020570693965444298286853598572617191288443923673892549542588628734002783062155235399906026324454963571983147685632181838308990860174118519362043648943249934965656462425937857281849526229627691178475470279225726766307529882465666625925745657102130798630411701157095151647205237797549705046707175252952394274078728115643975863545509825266717558373434528394531183047547690211314837524389703421012852162895729664400825546881059114487515299661666662074462912455176663025266099837616065100322811040863839219843926882310496919792851126414479578689534452007518585726061673319272764804608169906141725290848657987497507116642844471152212224134752701366986757625345440972828819486687694286631387996286115275119787080249852892977613643209848412908408573547210378710925504468548730027730639965654776596361499421144233422159607397865491754515819853271778239360751478841880108805710194618309109885617682178764485494005459299940771854635466193689027116103613368012410834173636547262491695747804779656427153247262052083258404896056863227488580608819762315772563067868777243079910022607837524684858554192349776527984230274678289024600942018173954035115675340131476353538760972158644082661775310320815767946795916849964381829238299151099955873104537422514002302794815725875882756780952206781206263648891618745527434463350136659571100054230738722820212550578352667192221585095275882624574513645636392434088364425473250759367982896569176657309891876107926809465404123648927636685804367565438371328385115555271766994628797968420968037635967463560055472824393577298968086000457775245156831187487072339061968254290175343419951818399574715829756980057202411956892588705187151673656295639966524343280946568888371971922447748968189570296712306296467253464835440657533843562195201098523480891768678777288412666846521628492898836293928483111982344128483497514509096096924957243023092138806439769294030397331517564979535911509299942882466433630509709795363936701684483827728935115193848542795116524353284674455942133544291776330418988687229818995930264683720689496514280429498513182604725508340196098897648926106962939112902209212867301236689611324793449152259091096147830587699307392555066118009405144007618422109067156538475393318689500323088303076331872387301285066648604752121173912645386296284082255889896662449563174254399352897147586086517969431865969759761905086994593037835912536983075490183209371332825517596786938503216816671567557221421576278582865871623595993839315589608763523839627145508226035582946245606563430898132131857549395995774001314519659441050376266390742796966024211751878119123424197446535674858415822493310947545797722698841700905185130840182797662557861572617556777110749080250467863123315277202346499308101174977350897455053330865757556163310655899427522451464691146487899334721340884066825559234926396229856962413153256643422496824274690956023470926563311376033128086932917436581095737975853470449807469234940765061736052131354567732159124167066464182679625099230179387003262553755239462828247823588060190817894724797629701289552913498256728031037389808550811089672957717579982719751921320508619089755763149671617013922289211840593033163922134014238579274309885130443907613444883513977288940511789072377133264392325488240996591177600969511651018239810034758944529186518148846937319605328247595429889587860539644527082843401913994318586928326551960968036780898041605866527304078946416233597881914896661838477715290496686586452217543689013417469235481838840929605058387140226321352436763537490251128936934747565104266971199737764561766821951495705089913814245273975005185236750982273444191532298538369157991663231426948871881135424903855317657808865937554637386876318230171957818634695030403544612655646059704545135343879964823592553549849076225898566780691061174533105799456299882901293377931744570522538374760302832042353613883319182887975747246846163190145924922397377043539028706150298735790572273491724071524750189359035496590436004369766891135836971754135202794493233707486074253464842078214674866253665162811773251743714256326020974746788364014337869116345766361922652058185839224870242129258667620770411218011466432658023888828625683477702795631792087383565218423283109165541365910762174680432956908970271690397885612404113965190588125192266414983923762849979617213308819850281927893160709777335207133275266477039316652722588617992205392808897724918845279579191797699283476404407093465208920211239432128593795530964844843208330813719123610223479549507432999467385726265129206593137395542068892958729793538718922399042845775302102365031705013750617246303731277243775750977484827088829142816165984549741353275418532819264858896344443832940990809943853682182988584003882255756377783370914990806662276810544187612358564193290281534963365552495296492238533937155931806454039979648119484913197634469427073070838438918073071158453062851192665582163873499936137624125671203815397387659141331177420281669631655472352100971748961157865586970599604222507482498057888141192380463638364801631994260093979357356594555511539256313208876915104965768446791000824777399878461739964752716363286492933031931627679584245739901362675837767080842663594307409962144745208454846042232496511913539564140399087421278163947793347426940993612456989423738995778382244668569092931826571349499139365278741216332636303447577947424434556275841649362962070712815901787640616353452134403821298414335934865647311766694665643457608508543789655524471996810475543584848193936175136396832508376424828660418834775240289900190782162232902295145780614135983187957149929778381234638898376240948440801117900345160983699862511460476506526470432660513256488500873469208589361578055639387750855568240472285573934535634975671385575745126812878242458361968161926491281363836266320528189369471433916338704358506953935675123555695389505162906914848007845416366477448707985089393981673675934653349334075484519954160267391835065544191009503015925915989770248872396033770313765299126758979349786741103594467756666087922432128654118114391519169449410680030366058981069418587059394855610649226670187313192545658060699011763176484280692753027108053583641597518177348497475039322611086635650930674486824013811224081968353244538619667486876554350296701126830884847492034982257623782638840822901122834993474194488356557632609059812953217575584412142717018995810730711049624229870218518567971011434322688671047258642452768385762713552487945953289938936042824740675238658856473200565577268798256039171873109151075186743423192148891745760671431222043997830492799382194475169892275641038059678287699651555207575267733671547759078961741213954589124081246544725473678160875277612596535373871935533404944102616554453819586481266475166988617258271430738737763827886144773990370142354377180900919987962481261724451851462990361983292135883104368395394091858180269905660553268691196227555889843471133268606381005298072586112719377421918981781584966555602866636730311214200899184182895540292483245366442927719910922850318636051407568005565787750565869999025812808117681410727237082490736594179239472689225511720196225984897471770689673155777727289244725768090773792508230021129291998770912083589972596113624196990774816247077254620565136666813226915677038710365971063887868031891006762931510166546917312162803308655394987861137573618875952615448418399299836399532707496662396678323491526044811684309164203930711318435608551745836432286876016848951119873876341263040624947536258383894276510328193339683660932218977230098948239026570950